From the course: IoT Foundations: Operating System Applications

Workflow of building an IoT application

From the course: IoT Foundations: Operating System Applications

Start my 1-month free trial

Workflow of building an IoT application

- [Instructor] Now, let's look at the general workflow of how an OS-based application is done. Usually, it is part of the software development process, and there are several models that can used in such process. Here, let's follow the typical waterfall development model for the software development and assume that we have completed the product requirements and the design phases so we can focus on the implementation phase, which usually involves some testing or unit testing afterwards on the software we develop. Suppose we have selected an OS running on your target IoT device platform, where an OS can be chosen, among the embedded OS's or general purpose OS's. First, you'll need to set up the development environment on your host computer, such as a PC, the environment allows you to develop the software programs for the target platform including the hardware and OS. If your target platform is similar to a host, you can just set up that on your host, if not you'll need to set up a cross platform environment on your host, for example, if you use your PC running a Windows OS as the host computer to develop the program for the (mumbles) running a Linux OS, this is a cross platform software development environment, where we need to basically make sure the Linux cross platform environment tools are set up on your host. A development environment typically includes the compiler and debugger tools, as well as an IDE or a source code editor that facilitates your software environment. You may need an SDK containing the OS kernel with the drivers and the software libraries. Depending on your needs, sometimes the SDK may contain everything you need to start with. But sometimes you have to add things manually. These things include software libraries and the drivers that are well supported by manufacturers or user communities. If you work on a board without out of the box support from OS render, you'll need to port OS for (mumbles) if a board has custom hardware modules, the porting is a necessary step to make sure the OS can boot and run on such custom board. You'll also need to make sure the required software components such as the additional software libraries, for example, communication protocol stacks or cryptographic libraries are in place and can work with the OS you've chosen. Once that's ready we can start writing the software programs using the API's from an OS and the software libraries. After you've written the programs, you'll need to do some testing and debugging with your target boards. Before moving to the next phase, use software development process, speaking of the debugging alone, there are various ways of debugging software. If you connect your board to the host computer for debugging, you need to make sure there's a physical connection for you to do the debugging out of execution on the target board. You can use a real time operating system for your embedded devices even if your application does not require the strict timing guarantees for tasks, but if timing guarantees are required, especially for safety critical systems, together with the testing and debugging, a far off code analysis may be required.

Contents