Lines Matching refs:a

20 The Xtensa configurable architecture supports a vast space of processor
33 thread-safety on a per task basis (for use in tasks only, not interrupt
41 This port also includes a simple example application that may run on
42 a supported board or the Xtensa instruction set simulator (ISS). There
43 are also a couple of test programs used in maintaining the port, which
55 Minimal support for certain evaluation boards is provided via a board
56 independent XTBSP API implemented by a board specific library distributed
59 is not a tradtional RTOS "board support package" with RTOS specific
62 (a "raw" platform), but you will have to provide the clock frequency
81 All source is provided along with a Makefile that works for any host
86 First install the FreeRTOS common package in a directory of your choosing.
108 The Xtensa Tools are available from Cadence as part of a processor
123 you have a supported emulation board, you can build to run on that. You
124 can also build to run on a raw Xtensa core with no board support, a
127 is easier to debug with, then move to a board if/when you need to test
136 a subdirectory so several core and platform builds can co-exist even with
154 Now build the FreeRTOS RTOS as a library (libfreertos.a) as follows:
162 which builds for a supported board. Note that the board type does not
185 simulator (ISS) or a supported evaluation board programmed with your
207 To build in a location other than the default, specify the new location
218 libfreertos.a and the appropriate linker-support package (LSP) for your
234 to a nonzero value either in xtensa_config.h or on the compiler's command
254 The header file FreeRTOS.h, which is a part of the core FreeRTOS sources,
259 use a different build process, then you must make sure to copy this file
260 to a location that is included in the list of include paths. This can be
281 To execute on a supported evaluation board, download example.exe per
284 a downloaded program! Optionally you may connect a terminal or terminal
288 To obtain I/O on a "raw" platform such as an unsupported board, you need
293 stopping simulation at end of program). You can, while debugging, use a
306 Calls to standard output functions such as printf() can use up a lot of
319 to use a stack size smaller than this minimum. Stack overruns can cause
323 WARNING: The newlib printf() function uses a lot of stack space. Be very
325 output - it implements a subset of printf() that has smaller code size
333 Beginning with port version 1.2, the port uses a separate interrupt stack
357 -Dmacro Define a preprocessor macro with no value.
358 -Dmacro=value Define a preprocessor macro with a value.
360 See the compiler / linker documentation for a full list of switches and
376 of periodic tick to provide a more acceptable
380 XT_BOARD Set this if building for a supported board.
410 XT_USE_OVLY Enable code overlay support. It uses a mutex,
429 a windowed register file).
444 saves registers a0-a3 on a call4, a0-a8 on a call8, a0-a12 on a call12,
452 on a fixed set of 16 registers without window rotation.
461 a12-a15 = callee-save (a function must preserve these for its caller).
462 On a FreeRTOS API call, callee-save registers are saved only when a task
465 registers might only be saved and restored when a task context-switch
472 However it does NOT preserve these over a solicited context-switch during
473 a FreeRTOS API call. This bears some explanation. These special registers
475 that if kept "live" over a function call (ie. need to be preserved)
477 FreeRTOS is always made by a function call, FreeRTOS assumes the caller
478 has saved any of these registers that are "live". FreeRTOS avoids a lot
482 As a consequence, the application developer should NOT assume that special
483 registers are preserved over a FreeRTOS API call such as vTaskDelay().
484 If multiple tasks use a register, the caller must save and restore it.
487 a result of interrupt handling (interrupt frame) or from task-level
502 optimizations or set a predefined optimization level (-O<level>) .
513 ".L"). This allows a profiler to accurately associate an address with a
519 - You cannot set a breakpoint on a local label inside a function.
533 FreeRTOS provides a complete set of efficient exception and first-level
536 classes of exceptions and interrupts. Being a configurable architecture,
556 than a few which are always handled by the OS).
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
587 special register (level 1 interrupts are one particular cause of a
590 indicate a kernel or application bug.
593 and are dispatched to a dedicated handler. Then, syscall and alloca
601 saves the current task state and sets up a C environment and enables
604 into a table of user-specified handlers. The correct handler is then
610 If the cause is a level 1 (low-priority) or medium-priority interrupt,
614 interrupt number. If the user has not specified a handler, then the
617 If the interrupt is for the system timer, it calls a special interrupt
628 one, before calling the user handler. This allows a higher priority
634 a configuration-specific maximum interrupt level affected by the global
638 to be a special case of high-priority interrupts, but from a software
647 a configuration-specific maximum interrupt level affected by the
653 to be handled in only a few cycles. A high priority interrupt handler
654 may trigger a software interrupt at a medium or low priority level to
657 There is a separate vector and a few special registers for each high
672 processor should a kernel exception occur.
682 frame or entering FreeRTOS, by emulating a register underflow and
687 Syscall exceptions are generated by a 'syscall' instruction.
689 a value of zero in register a2 must spill any unsaved registers
697 A co-processor exception is generated when a task accesses a
700 context-switched "lazily" (on demand) only when a non-owning task
701 uses a co-processor instruction, otherwise a task retains ownership
705 Co-processors may not be used by any code outside the context of a
707 of a running task is a fatal error and FreeRTOS for Xtensa will panic.
714 A debug exception is caused as a result of running code, such as by
715 a 'break' instruction or hardware breakpoints and watchpoints, or
716 as a result of an external debug interrupt, such as from an OCD based
728 A double exception is a general exception that happens while the
729 processor is in exception mode (PS.EXCM set), and thus indicates a
744 to dynamically install a handler function (which may be coded in C,
745 unless in a high-priority interrupt handler). These hooks are enabled
746 and used by automatic regression tests, they are not part of a normal
759 supported in a future release. Make sure that the option XT_USE_OVLY is