Lines Matching full:for

1     FreeRTOS Port for Xtensa Configurable and Diamond Processors
10 This document describes the Xtensa port for FreeRTOS multitasking RTOS.
11 For an introduction to FreeRTOS itself, please refer to FreeRTOS
24 your application for your Xtensa configuration. The port uses the Xtensa
27 xtensa-linux tools provided you have the correct overlay for your Xtensa
31 This port includes optional reentrancy support for the 'newlib' and
33 thread-safety on a per task basis (for use in tasks only, not interrupt
37 for thread safety. The 'uclibc' library is not reentrant and does not
46 FreeRTOS for Xtensa configurable processors requires the following minimum
55 Minimal support for certain evaluation boards is provided via a board
58 polled drivers for the display and console device. Note that XTBSP
63 and drivers for any on-board devices you want to use.
81 All source is provided along with a Makefile that works for any host
83 are written for Windows users, but can easily be understood and adapted
113 Building FreeRTOS for Xtensa
122 By default, you will build for the Xtensa instruction set simulator. If
125 good starting point for supporting your own target platform. Cadence
131 for your Xtensa configuration and platform (ISS, board, etc.). There
135 The build for each Xtensa configuration and target platform is placed in
158 which by default builds for the simulator (TARGET=sim), or:
162 which builds for a supported board. Note that the board type does not
165 If you are building for an Xtensa processor configuration that is not the
188 To build the examples for the default platform (simulator):
213 options via CFLAGS. For example:
218 libfreertos.a and the appropriate linker-support package (LSP) for your
227 without interference with other tasks (it is not safe for interrupt
238 Then, you must also make sure to allocate extra space on the stack for
246 saving the context for the C library as well as the coprocessors if any.
248 (2000 + XT_STACK_EXTRA_CLIB) bytes for the stack.
255 includes <reent.h> if thread safety for the C libraries is enabled. For
289 to provide low level I/O drivers (eg. inbyte() and outbyte() for character
295 with the gdbio LSP. Refer to Xtensa tools documentation for details.
301 The application must ensure that every task has enough space for its
302 stack. Each task needs enough space for its own use, its own interrupt
308 sizes for your application.
311 size for tasks that do and do not use the C library. Use these as the
312 basis for each task's stack size. They are minimum requirements taking
318 defines the minimum stack size for any task. Be very careful if you try
324 careful in using it. Optionally you can use the 'libxtutil' library for
334 for handling interrupts. Thus, it is no longer necessary for each task to
346 CFLAGS variable in the make command line, for example:
360 See the compiler / linker documentation for a full list of switches and
366 XT_USE_THREAD_SAFE_CLIB Enable support for the reentrancy to provide
367 thread-safety for the newlib and xclib libraries
380 XT_BOARD Set this if building for a supported board.
381 Be sure to specify the correct LSP for the
382 board. See the example makefile for usage.
389 Default for simulator provides more acceptable
401 XT_TIMER_INDEX=n Specifies which timer to use for periodic tick.
417 numbers at the same level. This works only for
428 more conventional Call0 ABI (required for Xtensa configurations without
433 of ABI. See Xtensa documentation for more details.
442 a8-a15 = available for use as temporaries.
461 a12-a15 = callee-save (a function must preserve these for its caller).
486 The saved context stack frames for context switches that occur as
498 By default FreeRTOS for Xtensa is built with debug (-g) and without
506 manual for details.
508 Minimal footprint is achieved by optimizing for space with -Os, at the
509 cost of some performance. See the compiler manual for details.
527 and linker (see the assembler and linker manuals for details).
551 The handlers provided for low and medium priority interrupts are just
553 See the files xtensa_vectors.S and xtensa_api.h for more details of how
555 Similarly, user-defined handlers can be installed for exceptions (other
573 bounds on interrupt latency (for a given priority) and stack depth.
576 by the definition of XT_USE_SWPRI. See above for a description of this
612 saving the task context. It then sets up the environment for C code
613 and then calls the handler (found in the handler table) for the
617 If the interrupt is for the system timer, it calls a special interrupt
618 handler for the system timer tick, which calls _frxt_timer_int then
650 and are described here only for the sake of completeness. They must
652 used for handling extremely high frequency hardware events that need
657 There is a separate vector and a few special registers for each high
658 priority interrupt, providing for fast dispatch and efficient nesting
660 only for the vectors that exist in your Xtensa processor configuration.
661 These templates are written for only one interrupt per high priority
670 exceptions should not happen. A stub is provided for the vector that
707 of a running task is a fatal error and FreeRTOS for Xtensa will panic.
736 Window overflow and underflow handlers are required for use of the
738 code that is independent of OS. See Xtensa documentation for details.
740 Hooks for Dynamic Installation of Handlers:
754 of interrupts works only with this method. See xtensa_api.h for details.
758 Code overlays are currently not supported for FreeRTOS. This will be