Article by jekky
Sponsored Links
HistoryOpen AT OS IntroductionWavecom first introduced the Open AT V1. in 2001. It allowed a developer to directly embed his application on a GSM modem. As such it only allowed an application to send AT commands to the GSM firmware, not on the UART as 1 would do when using a micro-controller connected to a modem, but internally between the application binary and the GSM Firmware Binary. At that time the Open AT OS was only known as Open AT.The first key improvement: the DOTA feature.In 2003 Wavecom introduced the V2. that was supporting the capability for a developer to download over the air an update of his application and install it instead of the existing application. This was revolutionary by that time as none was supplying the capacity to upgrade over a GSM network the application that was executed aside the GSM Stack.In 2005 the V3. extended the OTA feature to the GSM firmware. The concept remains the exact same but then the application had the capability to trigger the upgrade of the GSM Firmware over the GSM Network. It also introduced the Application Developer Layer (ADL) allowing the access to GSM related services not only through AT commands but also via direct functions. It was in deed a lot suitable or an application to directly call a function rather than sending an AT command on a fake internal UART.The second main improvement: Real-Time.In 2006, the V4. was introduced to cope with guaranteed response time to interrupts. Real-Time as a feature was introduced well before Wavecom even existed but an fascinating point out of the v4. is that it makes it possible for fixed response time to interrupts even throughout GSM activities of the GSM Modem or CPU. Thus 1 can benefit from both guaranteed response time to interrupt and at the exact same time benefit from the GSM related services of the OS such as location a GSM call, look for the network or commence a GPRS data transfer. The interest of the move is that it permits to a developer to cope with time critical request on a CPU together with successfully being able to initiate GSM calls and data transfer with out having to be an expert in GSM: any embedded software developer would be able to do it. The drawback is that the guaranteed response time (though is depends on the underlying processor) would rather be mesurable in milliseconds than micros. In deed the OS would essentially provide the highest priority to the GSM related interrupts rather that to the application one TechnologyEvent Based. The programming scheme to be utilized in programs to be executed on Open AT OS is event based. It means that oppositely to batch programming in the principal() 1 would only subscribe to events that would trigger the execution of some code that would be located in the all-back function of the event.Multitasked. Open AT OS supports static multitasking. A developer is able to define statically at the init of the application the number of tasks it would be using. The communication between tasks are made through fairly well known mechanism such as mail boxes, message queues, shared memory areas and their synchronisation can be performed through semaphores.Pre-emptive. The scheduling policy of the OS is fully pre-emptive. One has to define a level of priority for each defined tasks. It is not possible to define the same level of priority for various tasks.Real-Time. The response time to interruption is guaranteed what ever the state of the GSM firmware. It allows an embedded developer to design and execute time critical processes and to benefit from GSM services.DOTA enables the application to commence its own upgrade or initiate the upgrade of the GSM Firmware. This implies both have been downloaded on the processor’s memory (usually over the air). Once beginning the upgrade procedure, the Open AT built-in upgrade agent would perform the install and reboot the product when done. Software architectureEmbedded Software architectureThe Embedded software architecture of the platform is the following (from highest priority to lowest):GSM Interrupt handlerOpen AT Low Level Interrupt handlerGSM Stack TasksOpen AT High Level Interrupt handlerGSM AT ParserOpen AT TasksIdle TaskThe GSM Interrupt handler performs all required action to be executed by the processor or the modem when receiving an interrupt from the GSM Radio.The Open AT Low Level Interrupt Handler is the second highest priority process on the platform. It is developed to perform asynchronous time critical operations. Its code would commence being executed within 1 ms) upon interrupt detection. It is design to perform really short operations such as value acquisition and storage in RAM (for ex in a circular buffer)The GSM Stack Tasks are performing all needed actions to be performed to carry out GSM Calls, data transfer, network synchronisation, roaming, base-station switchThe Open AT High Level Interrupt Handler or sometime known as the Open AT interrupt task has been designed to perform lengthy or resources demanding operation such as complex calculation or value acquisition report creation and storage in Flash Memory. This operations would have to be performed asynchronously and would not be time critical.The AT Parser job is managing the parsing of AT commands received either from external CPU or from the embedded Application.The Open AT Application tasksis the core of the application. It is design to execute high level processes that are not time critical.Constraints on time critical application: This software architecture implies that the processing performed in the low level handler shall be as fast as possible (for example flash writing will not be allowed by the OS in the low level handler. Yet acquiring / incrementing a value and storing it in a circular buffer in RAM is a typical use case to be performed in the low level handler). The Open AT OS creates an exception when detecting a rogue function calls in the Low level handler as it would endanger the excellent behaviour of the GSM stack. Much in the exact same way, loops, cases memory allocation are not allowed either in the low level handler.Managed interrupts The Open AT Low level interrupt handler can launch code execution associated to HW Timer / DSP / SPI / External interruptionMemory Access Protection To stop rogue memory access between the GSM firmware and the application, a specific RAM / Flash area is allocated to the application tasks on 1 side and to the Firmware on the other side. Depending on the platform the mechanism protecting the memory areas is either software or hardware (MPU). All new processors from Wavecom are coming with at least MPU. If the code is attempting to access a not authorized memory region, an exception occurs reseting the processor or the modem. Plug-Ins to Open AT OSWhat is a Plug-In to the Open AT OS? A plug-in is a C library supplied either by Wavecom or by other M2M actors to supply extra features to the OS. By performing so the size of the OS doesn’t grow as quick as new plug-ins are launched. Third parties can also provide their own plug-ins to M2M players. The other fascinating point of supplying some feature in a C library is that when building the final application only the code related to the function referred to as in the application is included when linking the final binary code.What type of Plug-Ins can I discover on top of Open AT OS? Several are available, some of which are: TCP/IP Plug-in supplying an IPv4 TCP/IP stack. Web Protocol Plug-in providing a suite of Internet Protocols such as FTP, HTTP, SMTP, POP3, DHCP and SNMP. C-GPS Plug-in to supply the CPU with GPS positioning technology. M2M Developer Suite Plug-in to enable rapid creation of end to end M2M services. Development EnvironmentThe Open AT Development Environment is built on Eclipse and gives the following elements:Target Monitoring Tool (referred to as TMT): used to display the traces coming from the CPU when executing the application. It also makes it possible for to interpret the “back-traces” for post-mortem debugging when the CPU has crashed.Terminal Emulator provides a console to control the CPU.Remote Job Environment: employed to execute the application on a PC for easier debugging. ReferencesWavecom Open AT PageOpen AT v1. Press ReleaseOpen AT v2. Press ReleaseOpen AT v3. Press ReleaseOpen AT v6. Press Release External linksOpen AT OS for Industrial Wireless ProductsPublication on Open AT OS in the embedded worldPublication on Open ATLink to World wide web Plug-InLink to C-GPS Plug-InLink to Open AT LUA Plug-In Official PageLink to Open AT LUA WikiAnyware Technologies M2M Developer Suite WhitepaperWhite paper on Open AT usage in the M2M and Automotive marketv  d  eReal-time operating systems (RTOS)BeRTOS ChibiOS/RT Contiki DNIX DSOS eCos Embedded Linux EROS FreeRTOS FunkOS Integrity Junos LynxOS MenuetOS MERT Nano-RK Nucleus RTOS Open AT OS OS-9 OSE PikeOS pSOS Prex QNX RMX RSX-11 RT-11 RTEMS RTLinux SINTRAN III Symbian Talon DSP RTOS THEOS ThreadX TNKernel TPF TRON C/OS-II VRTX VxWorks Windows CE Categories: Real-time operating systems | Lua-scriptable softwareHidden categories: Articles with a promotional tone from May possibly 2008 | All articles with a promotional tone | Articles that want to be wikified from July 2008 | All articles that will need to be wikified
About the Author
I am an expert from China Hardware Suppliers, typically analyzes all type of industries scenario, such as lapis lazuli jewelry, italy charm bracelet.
RSS Feed
Posted in