|About the Book|
The first motivation for writing this book is to teach my colleagues about RTOS (Real-Time Operating System) concepts and the proprietary RTOS developed for our project by me. I realized that the same material with some extension can be useful toMoreThe first motivation for writing this book is to teach my colleagues about RTOS (Real-Time Operating System) concepts and the proprietary RTOS developed for our project by me. I realized that the same material with some extension can be useful to most embedded engineers who are beginners in learning about RTOS. I came across many embedded engineers who are not comfortable to use real-time operating system. A significant fraction of these people have taken operating systems course during their undergraduate or graduate studies The unease obviously even more aggravated for those embedded engineers who do not take operating systems course during their college level studies. I think this is the main reason that some companies still use tricky, messy workarounds to solve their scheduling problems in their simple and moderately complex projects. The operating systems course the engineers studied during their undergraduation is too broad which only cover theoretical aspects of all kinds of systems, and mostly devoid of practical training that students can not gain the ability to develop oneRTOS market share surveys show a significant fraction of companies use their proprietary operating systems. The proprietary RTOS has the advantages of leanness, higher efficiency and much more configurability as it is entirely open. Even though the market share for proprietary RTOS is slowly declining, the fraction of the companies that use proprietary RTOSes will be significant for many more years. This book can be a great resource for the engineers who are developing and maintaining a proprietary RTOS for his/her company.This book address the needs of the people who want to learn about RTOSand also those who want to develop one. This book gives in-depth understanding of RTOS, make the reader comfortable in understanding a code written using RTOS, make the reader comfortable using RTOS to develop a new piece of code. This book explains all basic RTOS concepts starting from scratch in detail. So a beginner or a person only with little experience with RTOS can significantly benefit from this book. This book discusses most of the RTOS concepts and implements them in a piece of code and develops one simple RTOS kernel, named as SROS (Simple Real-time Operating System). All the features for SROS kernel are developed one at a time in an evolutionary manner. So this book can also benefit an experienced person who wants to know more about RTOS kernel. As this book develop feature by feature in a piece meal fashion, this book can greatly benefit the people who want to develop a proprietary RTOS for their projects. As this book covers the kernel of RTOS and point out some short term projects a reader can do, this book can also be used by students who want to know about the kernel of RTOS and want to do some short term projects on RTOS.This book introduces the RTOS concepts one by one and shows their implementations in C code, or pseudo C code together with ARM assembly code when C implementation is not possible (i.e. in case of Hardware Abstraction Layer functions). Every piece of code shown as example in this book has either C code or pseudo C code so readers with out the knowledge of ARM architecture and instruction set can also understand the functionality of the code easily. (The ARM code given in this book and CDROM is developed for ARM architecture V5 and tested on ARM9platform). Allover the book when we mention ARM processor, it means we are referring to an ARM core that implement ARM V5 architecture. The RTOS code developed in the book is named as SROS (Simple Real-time Operating System). The SROS kernel implementation is on similar lines to many commercially available RTOSes. The SROS kernel features are added chapter after chapter. At any level of development, SROS code available in the accompanied CDROM can be readily used in an ARM based system and can be ported easily to other processor platforms. SROS features are implemented incrementally so that user has the choice of using it at any level of complexity. SROS with minimal features provide minimum code, execution time overheads and vice versa. The code size and execution complexity of SROS is less in the initial version compared to the later version even after unused functions are removed by linker. The accompanied CD-ROM provides 2 versions of SROS which were incrementally developed and finished by the end of 2nd and 3rd chapters.The author assumes that the reader is familiar with C programming, and simple data structure - linked lists. No knowledge about assembly programming of ARM processor is assumed, even though the accompanying CDROM provide the SROS implementation on ARM platform, which is auxiliary.The readers of this book after reading it can have the comfort of working/evaluating any RTOS, can have the comfort of knowing the internals of RTOS, can use highly simple and optimal SROS without any royalties with the flexibility of customizations, or can develop a simple proprietary real-time operating system in a few days.