Open At Os

History

Open AT OS Introduction

Wavecom first introduced the Open AT V1.0 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 one 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 major improvement: the DOTA feature.

In 2003 Wavecom introduced the V2.0 that was supporting the ability 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 providing the ability to upgrade over a GSM network the application that was executed aside the GSM Stack.

In 2005 the V3.0 extended the OTA feature to the GSM firmware. The concept remains the 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 through direct functions. It was in deed much suitable or an application to directly call a function rather than sending an AT command on a fake internal UART.

The second major improvement: Real-Time.

In 2006, the V4.0 was introduced to cope with guaranteed response time to interrupts. Real-Time as a feature was introduced well before Wavecom even existed but an interesting point out of the v4.0 is that it allows fixed response time to interrupts even during GSM activities of the GSM Modem or CPU. Thus one can benefit from both guaranteed response time to interrupt and at the same time benefit from the GSM related services of the OS such as place a GSM call, look for the network or start 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 without 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 basically provide the highest priority to the GSM related interrupts rather that to the application one

Technology

Event Based. The programming scheme to be used in programs to be executed on Open AT OS is event based. It means that oppositely to batch programming in the main() one 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 done 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 different 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 allows the application to start 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 starting the upgrade process, the Open AT built-in upgrade agent would perform the install and reboot the product when done.

Software architecture

Embedded Software architecture

The Embedded software architecture of the platform is the following (from highest priority to lowest):

GSM Interrupt handler

Open AT Low Level Interrupt handler

GSM Stack Tasks

Open AT High Level Interrupt handler

GSM AT Parser

Open AT Tasks

Idle Task

The GSM Interrupt handler performs all necessary 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 designed to perform asynchronous time critical operations. Its code would start being executed within 1 ms) upon interrupt detection. It is design to perform very short operations such as value acquisition and storage in RAM (for ex in a circular buffer)

The GSM Stack Tasks are performing all necessary actions to be performed to carry out GSM Calls, data transfer, network synchronisation, roaming, base-station switch

The Open AT High Level Interrupt Handler or sometime called the Open AT interrupt task has been designed to perform long 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 task 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 quick 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 good behaviour of the GSM stack. Much in the 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 interruption

Memory Access Protection To prevent rogue memory access between the GSM firmware and the application, a specific RAM / Flash area is allocated to the application tasks on one 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 trying to access a not authorized memory area, an exception occurs reseting the processor or the modem.

Plug-Ins to Open AT OS

What is a Plug-In to the Open AT OS? A plug-in is a C library provided either by Wavecom or by other M2M actors to provide additional features to the OS. By doing so the size of the OS doesn’t grow as fast as new plug-ins are launched. Third parties can also provide their own plug-ins to M2M players. The other interesting point of providing some feature in a C library is that when building the final application only the code related to the function called in the application is included when linking the final binary code.

What kind of Plug-Ins can I find on top of Open AT OS? Several are available, some of which are: TCP/IP Plug-in providing an IPv4 TCP/IP stack. Internet Protocol Plug-in providing a suite of Internet Protocols such as FTP, HTTP, SMTP, POP3, DHCP and SNMP. C-GPS Plug-in to provide the CPU with GPS positioning technology. M2M Developer Suite Plug-in to allow rapid creation of end to end M2M services.

Development Environment

The Open AT Development Environment is built on Eclipse and provides the following elements:

Target Monitoring Tool (called TMT): used to display the traces coming from the CPU when executing the application. It also allows to interpret the “back-traces” for post-mortem debugging when the CPU has crashed.

Terminal Emulator provides a console to control the CPU.

Remote Task Environment: used to execute the application on a PC for easier debugging.

References

Wavecom Open AT Page

Open AT v1.0 Press Release

Open AT v2.0 Press Release

Open AT v3.0 Press Release

Open AT v6.0 Press Release

External links

Open AT OS for Industrial Wireless Products

Publication on Open AT OS in the embedded world

Publication on Open AT

Link to Internet Plug-In

Link to C-GPS Plug-In

Link to Open AT LUA Plug-In Official Page

Link to Open AT LUA Wiki

Anyware Technologies M2M Developer Suite

Whitepaper

White paper on Open AT usage in the M2M and Automotive market

v  d  e

Real-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 2008 | All articles with a promotional tone | Articles that need to be wikified from July 2008 | All articles that need to be wikified

I am a professional writer from China Hardware Suppliers, which contains a great deal of information about copper fire bowls , cast iron door mats, welcome to visit!

Processing your request, Please wait....

Leave a Reply