Generally, programming also referred to as computer programming, is the process of solving a computing problem through the development of executable computer programs. The process involves analyzing the said problem, trying to understand the problem, generating algorithms and finally coding. Coding is done using various programming languages like python, ruby, java script and many more. The main purpose for programming is automating a specific task. In this blog we are going to look at some of the similarities and differences between In System Programming (ISP) and In Application Programming (IAP).
In-System Programming(ISP) can be defined as a technique used in which a programmable device is programmed after installation of the device to the circuit board, other than the devices being programmed prior to installing it to the system. The device can be a micro chip or a micro controllers or other embedded devices. ISP is also referred to as in-circuit programming. In In-System programming we require a programming adapter, a special programming interface e.g. Serial Programming Interface(SPI) and a software tool which will manage the programming interface through any port.In-Application Programming(IAP) on the other hand is the ability of an application to erase and program codes in the memory of an end user application. A good example is when an application requires to download new code parts. In-Application Programming therefore means that the app will re-program parts of the on chip Flash-ROM. Let us now look at some of the differences between In-System Programming and In-Application Programming.
In both In-System Programming and In Application programming, the main device involved are the micro controllers. In System Programming memory requires that the micro controller (MCU) is off line. This means that it is not involved when the memory is being programmed. Whereas In Application Programming, the micro controller (MCU) always is involved when programming the memory. Therefore, it is always important to have the systems online so as to update the application memory.
In System Programming is mainly applicable for manufacturing. It is preferred in manufacturing as it allows the manufacturers to program chips in their systems instead of buying other pre-programmed chips from other distributors. This helps them apply any design or code changes while still in the production run. While IAP is more designed for field updates. Always note that for In System Programming, one can erase or programme the whole controller, while for In Application Programming only some of the memory sections of the controller can be programmed and not the logic portions.
In conclusion, we can say that ISP is very important as it enables systems to be upgraded. The upgrade is done without the need of disassembling the main system or to remove the memory physically. Another advantage of ISP is that it allows manufacturers of major electronic devices to integrate programming phase and testing phase into one phase of production. This is very important as it leads to cycle cost reduction as no disassembling of the application is required compared to In Application Programming as it will require programming a computer logic devices while at the same time they are being operated by the system.