an operating system designed for use in real time systems
play

An operating system designed for use in real-time systems, which is - PowerPoint PPT Presentation

An operating system designed for use in real-time systems, which is Any computer system, embedded or otherwise, that has timeliness requirements. HIT BRAKES!!! Antivirus scanning Print spool emptying Email coming in


  1.  An operating system designed for use in real-time systems, which is…  Any computer system, embedded or otherwise, that has timeliness requirements.

  2. • HIT BRAKES!!! • Antivirus scanning • Print spool emptying • Email coming in • Start brake function

  3. • HIT BRAKES!!! • Start brake function

  4. A combination of computer hardware and software, and perhaps additional mechanical or other parts, designed to perform a dedicated function.

  5. Motor controller Print driver Timer Interrupt Serial port Light sensor User Interface

  6.  It is NOT an RTOS  It is a tool that creates an RTOS (ASOS)  One that requires no RTOS knowledge  One that is optimized for your project  One that is secure  It is NOT an RTOS

  7. source code SYNTHESIZE + source code RTOS primitives Configuration file

  8. TASK1 TASK1 TASK2 TASK2 RTOS RTOS TASK3 TASK3 kernel kernel TASK4 TASK4 TASK5 TASK5 KEY: Task management code User code

  9. System Initialization Library 1 ASOS Init Init Init System Library 2 Task 1 Task 2 Task N Management (SynthOS Loop Loop Loop Generated) Task Task Task Library N 1 1 1 ISR ISR ISR Call Call Call 1 2 N Task 1 Task 1 Task 1 System Hardware and Sensors

  10.  Init Task  Runs once when system is initialized  Loop Task  Run by the RTOS at regular intervals  Call Task  Run by another task

  11.  SynthOS_call()  SynthOS_check()  SynthOS_sleep()  SynthOS_start()  SynthOS_wait()

  12. Used to begin execution of another task while suspending execution of the current task until the called task has completed.

  13. Checks whether a task is currently executing.

  14. Gives control back to the RTOS to resume execution at a later time as determined by the RTOS.

  15. Used to begin execution of another task without suspending execution of the current task.

  16. Suspends execution of the current task and waits for another task to finish executing.

  17. Suspends execution of the current task and waits for a condition to be true. The condition can be any legal C condition such as (x == i*j + 5).

  18. # SynthOS Project File # The compiler directives [tool] compiler_directives = $explicit version = 1.00 \ $base10 \ # This is the start of the $xyz project section. [project] # The source code files project_name = Project X [source] target = 68HC05 file = ConfirmDialog.c processor_size = 32 language = C file = AboutDialog.c scheduler = round_robin file = ../BigTask.c contact = Vladimir Nabokov file = company = PaleFire Corporation F:/SynthOS/Dev/SmallTask.c website = www.palefire.com email = vlad@palefire.com # The library object files [lib] # Description of the project file = iolib.o description = Mobile Phone file = ../lib/mathlib.o Prototype file = C:/Zeidman/libraries/TCPIP.o

  19. // This is code in file "hello.c" // Do not have to declare extern for sync // because SynthOS does it for you //extern int sync_variable ; void helloTask () { while (1) { printf ("Hello task, "); //SynthOS_sleep(); // You can use sleep // to release the CPU // use SynthOS_wait for synchronization // with other tasks and ISR SynthOS_wait (sync_variable < 3); } }

  20. // This is code in file "world.c" int sync_variable; void worldTask () { while (1) { sync_variable = 3; printf (" World Task\n"); // Call the synchronizaion task // SynthOS_call forces task context switch SynthOS_call ( syncTask (sync_variable)); } }

  21. // This is code in file "world.c" void syncTask ( int cnt_limit) { int count; printf ("sync task: "); for (count = 0; count < cnt_limit; count ++ ) { printf ("waiting %d... ", count); } sync_variable = 0; }

  22. [source] file = hello.c file = world.c [task] entry = helloTask period = 1 type = loop [task] entry = worldTask period = 1 type = loop [task] entry = syncTask type = call

  23.  Synthesize  Compile  Run

  24.  Altera NIOS 32-bit Soft processor  Cyclone EP1C20 FPGA  Took the Altera web server code  Added functionality  Turned single task into multitask system  Kernel size: ~ 3K bytes

  25.  Xilinx Vertex-II Pro FPGA  Xilinx MicroBlaze 32-bit soft processor  PowerPC 32-bit hard processor  MicroBlaze kernel size < 0.9 Kbytes  PowerPC kernel size ~ 2.3 Kbytes  Development time ~ 3 days

  26.  Total RAM = 26K  Lego RTOS = 22K  BrickOS = 11K  SynthOS = 2K

  27.  Self directed robot  Arduino Uno (Atmel ATmega328p)  32K flash  2K RAM  16Mhz clock  Resources used  13K flash  less than 1k RAM

  28.  Time to Market  Security  Cost of goods sold  Development costs  Power consumption  Portability

  29. Bob Zeidman VP Product Management bob@zeidman.biz www.zeidman.biz Try it out completely free at www.SynthOSonline.com

Recommend


More recommend