EasyTasks is a real-time operating system (RTOS) developed by ConectaIP at the end of the year 2008. The reason for creating this new RTOS was to give solution a new microcontrollers family with the Ethernet controller embedded, getting profit of these new devices and taking advantadge of its simplicity in design and low price. EasyTasks is a RTOS Real-Time Operating System designed optimizing the use of dynamic memory that it can work with very little RAM memory. The tasks are processed in different way than other RTOS's because its objective is to release the dynamic memory as soon as possible. It is composed of six functional modules: eTasks, eSockets, eFile, eConfig, eCommand and eUtils. All together gives a complete solution for the development of smart devices. Like the rest of the other RTOS's, it can be ported to any CPU, nevertheless it is intended to be used in the microcontrollers market. The kernel eTasks This module enables the creation, control and reporting of application processes and the dynamic memory management. The resources available to the programmer are: # Tasks. They are small pieces of code that are executed in a coordinated way. You can create, destroy, suspend, resume, sleep or wake tasks using only the reference to the task. # Timers. Enable you to execute actions on a periodic or sporadic way. You can create, destroy, restart or shoot. # Messages. You can send messages to tasks directly without having to create mail boxes, just create them and send them to the task. You can create, destroy, send, receive, verify, and count messages. # Mailboxes. They are not essential but are designed to facilitate potential imports of POSIX code. One or more tasks can access to get messages from a mailbox. These can be created, destroyed, sent or picked up. # Semaphores. They are not essential but are designed to facilitate potential imports of POSIX code. You can create, destroy, put or get. # Events. When creating a task that can keep waiting for events directly to signal sufficient to indicate on which task we want to signal the event. However there are global events, independent of the tasks and system events, designed primarily for synchronization of the tasks in the boot process. It can be expected, rebooted or signaled. When a task is waiting for events, sending a message causes it to signpost and it emerges from the wait. # Memory. Controls the system memory resources. It has a special allocation algorithm that minimizes fragmentation, thus providing maximum availability of memory. The protocol stack TCP/IP eSockets eSockets is not BSD compliant. Its API is designed to use as few memory as possible. So, it implements a new branch of functions designed to avoid the use of temporal buffers. All the outgoing information is written directly over the outgoing packets and, all the incomming information is read from the incomming packets. The eFile file system eFile maintains a standard and familiar interface for managing files, but also enables the implementation of appropriate algorithms for each medium. In the media table we have different implementations of each API function resources such as RAM, Flash, ROM, Serial Flash, HDD and others. For ROM, it is possible to incorporate permanent read-only files in the source code (for logos, factory settings, etc.) using the tool of fossilization (p.e. "fossilize logo.bmp)", which generates a file in C that is incorporated into the project. This file can be accessed in the "rom / logo.bmp” path. The configuration system econfig eConfig provides a way to publish settings as standard without having to perform additional tasks on the system. Simply declare configuration parameters in a data structure and they will be published in the configuration files, the configuration for Web pages and the console commands. The shell eCommand eCommands allows you to write commands for the console or Telnet. Also it is possible to create traces.There are available functions like TerminalPrintf, TerminalPuts, conversion functions, and so on. There is a system of traces which can be used from any task. The "TracePrintf (TRACE_FLAG ulFlag, szFormat LPCTSTR, ...)" brings up this information when the user activates the corresponding traces. The tool box eUtils This module includes a set of string handling functions and conversion of variables, specifically designed to unify the different existing libraries. IP Services EasyTasks has a number of IP services that are implemented by default: # DHCP. You can get the IP network configuration from a DHCP server. # SNTP. Synchronize your system clock through the IP network. # DNS. You can resolve domain name. # Discover. Through a proprietary encryption protocol can discover computers connected on the same LAN. # Telnet. It integrates with modules and econfig eCommand. # FTP. It integrates with eFile and allows uploading and downloading files. # Web Server. It integrates with econfig and eFile. It also has an interface for CGI's proprietary implementations.
|
|
|