BOOS Core API 3.1
- api::Collection<Type>
- api::Heap
- api::IllegalValue<Type>
- api::Interrupt
- api::Iterable<Type>
- api::Iterator<Type>
- api::Kernel
- api::List<Type>
- api::ListIterator<Type>
- api::Mutex
- api::Object
- api::ProcessorInterrupt
- api::ProcessorPll
- api::ProcessorRegisters
- api::ProcessorTimer
- api::Queue<Type>
- api::Resource
- api::Runtime
- api::Scheduler
- api::Semaphore
- api::Stack<Type>
- api::String<Char>
- api::Synchronizable
- api::System
- api::Task
- api::Thread
- api::Timer
- api::Toggle
- api::Value<Type>
- library::AbstractBuffer<Type,Alloc>
- library::AbstractLinkedList<Type,Alloc>
- library::Align<Type,SIZEOF,Alloc>
- library::Buffer<Type,COUNT,Alloc>
- library::CircularList<Type,Alloc>
- library::Heap
- library::LinkedList<Type,Alloc>
- library::LinkedNode<Type,Alloc>
- library::Memory
- library::Stack<Type,Alloc>
- library::String<Char,Alloc>
- library::Toggle<Alloc>
BOOS Core for Texas Instruments AM18x ARM Microprocessors family is released
Baigudin Software project has represented the BOOS Core operating kernel for AM18x ARM Microprocessors family of Texas Instruments Company.
Introduction to BOOS Core
Which will operating system be used? Perhaps, this question was asked by every developer of embedded systems. Today, to find up an embedded system with out operating system is big rarity. Only the simplest solutions might be built with out it. Let’s understand possible ways by a chart of processors complexity against software complexity.
The first scheme on the picture above has been divided into four blocks. Top right block assigns high-end processor and complexity software. This usually is implied one of operating systems using for implementing user programs. A less powerful CPU can execute some complex software, which is using simple kernel, if the software is adapted for some target hardware architecture. Occasionally, powerful processors are being used for executing enough simple software, for example, if developers need to get execution speed and also save some flexibility and maintenance of executing programs by using simple kernel. And only in case of simple software, which is running on low-end processor, using some operating systems is mostly not necessary.
The BOOS Core operating system allows to implement high-quality software for any powerful CPU and provides itself functionality for creating multi-threads applications, which is working in real-time. Also, the system helps to save strong flexibility and gives effective capabilities for applications to be enhanced.
Decided to use BOOS Core, you will forget about compromises in developing of embedded software!
The architecture of the operating system
The BOOS Core operating system provides self resources to a user program for accessing hardware environment.
Figure above shows user program which can get direct access to uncontrolled hardware resources by the system. This allows writing new flexible algorithms as well as using implemented designs.
Build of user program
The BOOS Core operating system has been built by using objects. All objects are divided by groups. Each group is program library, which implements some logical or hardware functionality.
User program and BOOS Core are generated to executable file, which is being executed by target processor. This approach, when only necessary components are included, allows reducing a size of final program largely.
Execution of user program
When power is upped, a processor begins to execute a source code of the system. The system initializes some needful hardware resources and data of a program.
On the figure above, when initialization has been completed, the system passes full control to a user program and creates the singular thread in a system for this program. While a program is being executed, it can create new threads, lock system interrupts and some other resources of the system. Thus, a program entirely controls the processor time. When user program has been completed, the system deinitializes a system and terminates an execution.
The simplest user program
An executing of user program always starts from the main method. The simplest user program example is putted below.
/**
* User main class.
*/
#include "boos.Main.hpp"
/**
* User main method.
*/
int Main::main(int argc, char* argv[])
{
// The simplest program does something and does nothing
return argc > 0 && argv != NULL ? 1 : 0;
}
The main method, which is created by BOOS Core, is the primary and always singular thread in a system at the start. When the method has been created, the system does not intervene in an execution of user program anymore, and only provides self resources for it. This allows for developers to implement predicted programs, which execute exceptionally required operations.