Upload
others
View
31
Download
4
Embed Size (px)
Citation preview
FreeRTOS and LPC Microcontrollers
Richard Barry Design West, San Jose, 2013
Copyright 2013 Real Time Engineers Ltd.
Introductions
Real Time Engineers Ltd. – FreeRTOS™
– FreeRTOS+™
WITTENSTEIN high integrity systems – OpenRTOS®
– SafeRTOS®
Richard Barry Director, Real Time Engineers Ltd
Founder, the FreeRTOS project
Copyright 2013 Real Time Engineers Ltd.
Agenda
Why would I want an RTOS?
What is FreeRTOS? What is FreeRTOS+?
The FreeRTOS value proposition
Using FreeRTOS
FreeRTOS running on LPC
LPCOpen, a complete embedded solution from NXP
April 25, 2013 3
Copyright 2013 Real Time Engineers Ltd.
HOW CAN AN RTOS HELP ME? Why Would I Want an RTOS?
4
Copyright 2013 Real Time Engineers Ltd.
Super Loop Designs
5
Copyright 2013 Real Time Engineers Ltd.
Super Loop Designs
6
Will it scale?
Copyright 2013 Real Time Engineers Ltd.
Scaling and Maintenance
Integration of COTS components
Code re-use
Mixed processing requirements
Concurrent team development
Testability
Mix of hard and soft real time
Scalable (not susceptible to application change)
Tolerant of hardware change
7
Copyright 2013 Real Time Engineers Ltd.
Scaling and Maintenance
Integration of COTS components
Code re-use
Mixed processing requirements
Concurrent team development
Testability
Mix of hard and soft real time
Scalable (not susceptible to application change)
Tolerant of hardware change
8
Interdependency between timing and functionality
Copyright 2013 Real Time Engineers Ltd.
The RTOS Alternative
Task #1
Delay (wait) until it is time to start the next
control cycle
Perform control function
Output results
9
Task #2
Wait for interrupt
Process data
Task #3
Wait for a message from another task
Process message
Send a message to another task
Task #4
Background processing
Copyright 2013 Real Time Engineers Ltd.
The RTOS Alternative
Task #1
Delay (wait) until it is time to start the next
control cycle
Perform control function
Output results
10
Task #2
Wait for interrupt
Process data
Task #3
Wait for a message from another task
Process message
Send a message to another task
Task #4
Background processing
Autonomous sequential tasks, RTOS takes care of signaling, communication and timing
Copyright 2013 Real Time Engineers Ltd.
Scaling and Maintenance
Integration of COTS components
Code re-use
Mixed processing requirements
Concurrent team development
Testability
Mix of hard and soft real time
Scalable (not susceptible to application change)
Tolerant of hardware change
11
Copyright 2013 Real Time Engineers Ltd.
Integration of COTS components
Code re-use
Mixed processing requirements
Concurrent team development
Testability
Mix of hard and soft real time
Scalable (not susceptible to application change)
Tolerant of hardware change
Scaling and Maintenance
12
Decoupled, functionally cohesive code
Copyright 2013 Real Time Engineers Ltd.
Agenda
Why would I want an RTOS?
What is FreeRTOS? What is FreeRTOS+?
The FreeRTOS value proposition
Using FreeRTOS
FreeRTOS running on LPC
LPCOpen, a complete embedded solution from NXP
April 25, 2013 13
Copyright 2013 Real Time Engineers Ltd.
WHAT IS FREERTOS?
14
Copyright 2013 Real Time Engineers Ltd.
RTOS
RTOS, Kernel or Scheduler?
Executive
Scheduler
15
Copyright 2013 Real Time Engineers Ltd.
The RT In RTOS
16
Task2 (med, periodic)
Task3 (low, event)
Task1 (high, event)
Idle task
T2 preempts T3 T1 preempts T2
t1 t3t2 t4 t5 t6 t7 t8t10
t11t12
t13t9
Deterministic – Hard real time – “it absolutely must” – Soft real time – “it should”
Copyright 2013 Real Time Engineers Ltd.
For Microcontrollers
33 architectures and 18 tool chains
Real Time Linux
Processor power
μCLinux, eCOS
No Scheduler FreeRTOS
App
licab
ility
17
Copyright 2013 Real Time Engineers Ltd.
Moderated Open Source Real Time Kernel
Professionally developed, quality controlled, robust and supported
Downloaded more than 103,000 times in 2012
Polled top in class for the questions “which kernel are you currently using?” and “which kernel are you most likely to use in your next project” in the 2011, 2012 and 2013 EETimes Embedded Market Surveys
is everywhere ....
18
Copyright 2013 Real Time Engineers Ltd.
FreeRTOS Value Proposition
19
FreeRTOS offers lower project risks and a lower total cost of ownership than commercial alternatives because:
It is fully supported and documented
Most people take products to market without ever contacting us, but with the complete peace of mind that they could opt to switch to a fully indemnified commercial license (with dedicated supports) at any time.
Copyright 2013 Real Time Engineers Ltd.
Is It Free, Even For Commercial Use?
Yes – Moderated open source – Proprietary code remains proprietary
FreeRTOS API
FreeRTOS Source
Application Source
Driver Source
Middleware Source
Closed Source Open Source
20
Copyright 2013 Real Time Engineers Ltd.
Under Constant Development
Latest features include – Tick suppression for low power applications – Queue sets – Port optimised task selection
21
TaskIdle Task
SchedulerInterrupt
Without Tick Suppression
Copyright 2013 Real Time Engineers Ltd.
Under Constant Development
Latest features include – Tick suppression for low power applications – Queue sets – Port optimised task selection
22
TaskIdle Task
SchedulerInterrupt
With Tick Suppression
Copyright 2013 Real Time Engineers Ltd.
FreeRTOS+
IO Add an open(), read(), write(), ioctl()
peripheral interface to your application
CLI Enable your application to efficiently
process command line input
Safety & Certification A pre-certified kernel for
microcontrollers, with a similar usage model to FreeRTOS
Trace Get 15 graphically interlinked views of the trace, providing an unprecedented
level of insight
Your Product Here?
Nabto Exciting new technology that re-
defines the web device
SSL and TLS State of the art networking security
for embedded systems
RTOS Training Expert instructor led RTOS training to
maximise productivity – delivered online or on site
FreeRTOS+ Ecosystem
23
UDP/IP Thread aware, Berkeley sockets
based, efficient UDP/IP stack
TCP/IP Pre-built libraries for easy integration of TCP/IP and related protocols into
cost-sensitive applications
Copyright 2013 Real Time Engineers Ltd.
FreeRTOS+Trace
October 2012 24
Copyright 2013 Real Time Engineers Ltd.
Agenda
Why would I want an RTOS?
What is FreeRTOS? What is FreeRTOS+?
The FreeRTOS value proposition
Using FreeRTOS
FreeRTOS running on LPC
LPCOpen, a complete embedded solution from NXP
25
Copyright 2013 Real Time Engineers Ltd.
www.FreeRTOS.org
26
Copyright 2013 Real Time Engineers Ltd.
Source Files
27
Copyright 2013 Real Time Engineers Ltd.
FAQ
28
Copyright 2013 Real Time Engineers Ltd.
Task Example #1 /* Tasks always have the same prototype. */ void vProcessMessages( void *pvParameters ) { for( ;; ) { xQueueReceive( xQueue, &xMessage, portMAX_DELAY ); ProcessMessage( &xMessage ); } /* A task cannot exit without first deleting itself. */ vTaskDelete( NULL ); }
29
Copyright 2013 Real Time Engineers Ltd.
Task Example #2 /* Tasks always have the same prototype. */ void vProcessMessages( void *pvParameters ) { portTickType xLastWakeTime; const portTickType xFrequency = 10; /* Initialise the xLastWakeTime variable with the current time. */ xLastWakeTime = xTaskGetTickCount(); for( ;; ) { /* Wait for the next cycle. */ vTaskDelayUntil( &xLastWakeTime, xFrequency ); vPeriodicProcessingDoneHere(); } }
30
Copyright 2013 Real Time Engineers Ltd.
Create a Task – Start the Scheduler xTaskCreate( /* A pointer to the task function. */ aTask,
/* Textual name. */ "LED",
/* Dimensions of the task stack. */ configMINIMAL_STACK_DEPTH,
/* Parameters passed into the task. */ (void *) 0,
/* The priority of the task. */ 2,
/* A handle for the task. */ NULL ); vTaskStartScheduler();
31
Copyright 2013 Real Time Engineers Ltd.
Agenda
Why would I want an RTOS?
What is FreeRTOS? What is FreeRTOS+?
The FreeRTOS value proposition
Using FreeRTOS
FreeRTOS running on LPC
LPCOpen, a complete embedded solution from NXP
32
Copyright 2013 Real Time Engineers Ltd.
Featured Demo #1
33
Copyright 2013 Real Time Engineers Ltd.
Featured Demo #2
April 25, 2013 34
Copyright 2013 Real Time Engineers Ltd.
LPCOpen is free software from NXP for use with NXP MCUs – Peripheral drivers – LPCUSBlib, with support for many classes – SWIM (NXP‘s lightweight graphics library) – Examples
Includes pre-ported third party open source and licensed software – Support and examples for FreeRTOS – LwIP network stack – emWin (binary graphics library licensed from Segger for NXP customers) – ChaN FatFs – Cortex-M CMSIS DSP library
LPCOpen is available for download on www.lpcware.com
LPCOpen from NXP
Copyright 2013 Real Time Engineers Ltd.
Benefits of LPCOpen
Supports all NXP Cortex-M based MCUs
Similar APIs across processor families
Available for Keil’s µVision, IAR’s EWARM, LPCXpresso
Supports hardware from Embedded Artists, NGX, Keil, Hitex, and more
Thoroughly tested, maintained, and documented code
Meaningful application examples using multiple peripherals, running stand-alone or under an RTOS
Steadily increasing number of example applications, including USB audio, HID, Web Server, etc
Copyright 2013 Real Time Engineers Ltd.
The LPCOpen platform structure
Core Library
LwIP
LPCUSBlib
emWin SWIM
LPCOpen Platform
FreeRTOS
Board layer
Chip layer
IP layer
LPCUSBlib examples
HID, CDC
Mass Storage Audio Host
: :
LwIP examples
Webserver TCP/IP echo
Internet radio : :
Peripheral examples
Power Save Dual Core
CAN SCT
SGPIO :
emWin examples
Touchscreen Animation
: :
OS examples
Dual Core OS Tickless OS
: :
Copyright 2013 Real Time Engineers Ltd.
Importing LPCOpen Stacks and Drivers
38
Copyright 2013 Real Time Engineers Ltd.
TAKING IT FURTHER There is a lot more!
Copyright 2013 Real Time Engineers Ltd.
Thanks For Attending!
40