Wednesday, February 11, 2009

Question: What are the building blocks of BIG Embedded Systems from a programmer's perspective?

Question: What are the building blocks of BIG Embedded Systems from a programmer's perspective?

From a programmer's perspective there are four building blocks for any system namely
Boot-loader,
Operating system,
Device drivers
and Networking subsystem apart from the device's main functionality.

When the system gets powered up, the boot-loader is the first program that gets activated from the non-volatile memory or NVM. This boot loader will vary from one system to another, because it mainly depends on the way system is configured. This boot loader will in turn revoke the operating system by calling its entry point, which in-turn initializes various operating system services (memory, tasks, scheduler etc...).

Once the operating system services are initialized, all the low level device drivers followed by other subsystems (like networking) are brought up. At this point we can say that the platform is built for the system. After this initialization is complete, the system would be in a position to perform its expected functionality. This functionality will vary from device to device as each system is built for a different purpose. Say for example a router's main functionality would be to route the packets but a microcontroller's functionality may be measuring the temperature using a sensor. Finally functionality programming is the main core of embedded system which requires a powerful programming skill.

No comments: