Bare metal embedded software development with & without an RTOS
Using StarterWare for Bare Metal DevelopmentThe "demo" application included with TI’s OMAP-L138 DSP+ARM processor release of StarterWare is a bare metal application that showcases most of the features StarterWare has to offer on that device.
This application makes extensive use of the components listed in the previous section: DAL for peripheral access (including UART, McASP, LCDC, and more) and interrupt support, the USB and EMAC protocol stacks, the graphics library for rendering text and icons, and even a simple utility library that provides UART console support.
The end result, as shown in Figure 2 below, is a bare metal application featuring a simple graphical user interface reminiscent of an application running under a full OS.

Figure 2: Screenshot of OMAP-L138 StarterWare “demo” application
The application entry point jumps directly to the main function; there are no hidden layers or initialization beyond the application source code itself and the standard runtime support library provided by the compiler.
Simple StarterWare APIs register ISRs and handle all peripheral I/O as well as performing more complicated tasks, such as negotiating an IP address on the local network.
Because of this, the complete embedded system is very easy to understand just by looking at the application source code. The overall application flow is illustrated by Figure 3 below.

Obviously, by foregoing the use of an OS, this application also foregoes some of the conveniences afforded by a more high-level approach. There is no local filesystem, so all necessary binary data—including image files and HTML content served by an embedded web server—are "baked in" to the application source and header files.
Additionally, there is no scheduler overseeing the application during execution; instead, there is only a main loop periodically interrupted by calls to various ISRs. This approach is perfect for some embedded systems, but other systems may need these additional features. For that reason, we will consider another application that uses StarterWare in conjunction with an OS.


Loading comments... Write a comment