forked from ChibiOS/ChibiOS
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathreadme.txt
More file actions
150 lines (147 loc) · 8.83 KB
/
readme.txt
File metadata and controls
150 lines (147 loc) · 8.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
*****************************************************************************
*** Files Organization ***
*****************************************************************************
--{root} - ChibiOS directory.
+--readme.txt - This file.
+--documentation.html - Shortcut to the web documentation page.
+--license.txt - GPL license text.
+--demos/ - Demo projects, one directory per platform.
+--docs/ - Documentation.
| +--common/ - Documentation common build resources.
| +--hal/ - Builders for HAL.
| +--nil/ - Builders for NIL.
| +--rt/ - Builders for RT.
+--ext/ - External libraries, not part of ChibiOS.
+--os/ - ChibiOS components.
| +--common/ - Shared OS modules.
| | +--abstractions/ - API emulator wrappers.
| | | +--cmsis_os/ - CMSIS OS emulation layer for RT.
| | | +--nasa_osal/ - NASA Operating System Abstraction Layer.
| | +--ext/ - Vendor files used by the OS.
| | +--oop/ - Object-oriented framework.
| | +--ports/ - RTOS ports usable by both RT and NIL.
| | +--startup/ - Startup support.
| | +--utils/ - Generic and portable C modules.
| +--ex/ - EX component.
| | +--dox/ - EX documentation resources.
| | +--include/ - EX header files.
| | +--devices / - EX complex drivers.
| +--hal/ - HAL component.
| | +--boards/ - HAL board support files.
| | +--dox/ - HAL documentation resources.
| | +--include/ - HAL high level headers.
| | +--lib/ - HAL libraries.
| | | +--complex/ - HAL collection of complex drivers.
| | | | +--mfs/ - HAL managed flash storage driver.
| | | | +--serial_nor/ - HAL legacy SNOR stack.
| | | | +--xsnor/ - HAL improved SNOR stack.
| | | +--fallback/ - HAL fall back software drivers.
| | | +--peripherals/ - HAL peripherals interfaces.
| | | +--streams/ - HAL streams.
| | +--osal/ - HAL OSAL implementations.
| | | +--lib/ - HAL OSAL common modules.
| | +--src/ - HAL high level source.
| | +--ports/ - HAL ports.
| | +--templates/ - HAL driver template files.
| | +--osal/ - HAL OSAL templates.
| +--oslib/ - RTOS modules usable by both RT and NIL.
| | +--include/ - OSLIB high level headers.
| | +--src/ - OSLIB high level source.
| | +--templates/ - OSLIB configuration template files.
| +--nil/ - NIL RTOS component.
| | +--dox/ - NIL documentation resources.
| | +--include/ - NIL high level headers.
| | +--src/ - NIL high level source.
| | +--templates/ - NIL configuration template files.
| +--rt/ - RT RTOS component.
| | +--dox/ - RT documentation resources.
| | +--include/ - RT high level headers.
| | +--src/ - RT high level source.
| | +--templates/ - RT configuration template files.
| +--various/ - Various portable support files.
+--test/ - Kernel test suite source code.
| +--lib/ - Portable test engine.
| +--hal/ - HAL test suites.
| | +--testbuild/ - HAL build test and MISRA check.
| +--nil/ - NIL test suites.
| | +--testbuild/ - NIL build test and MISRA check.
| +--rt/ - RT test suites.
| | +--testbuild/ - RT build test and MISRA check.
| | +--coverage/ - RT code coverage project.
+--testex/ - EX integration test demos.
+--testhal/ - HAL integration test demos.
*****************************************************************************
*** Releases and Change Log ***
*****************************************************************************
*** Next ***
- NEW: Function chSftIntegrityCheckI() rewritten to be much more efficient in
performing lists integrity checks.
- NEW: Added to RT a dedicated functional safety module, the function
chSysIntegrityCheckI() has been moved in this module and renamed to
chSftIntegrityCheckI().
- NEW: I2Cv4 support added to STM32C0xx, STM32G0xx, STM32G4xx families. This
driver only require one DMA channel vs two of the old implementations.
- NEW: Added multicore memory classes modifiers to RT in order to support
NUMA architectures and non-coherent cache architectures.
- NEW: Added MPU initialization settings in ARMv7-M, ARv7-M-ALT, ARMv8-ML-ALT
ports. Settings allow to statically initialize any region.
- NEW: Improved interrupts processing in ARMv7-M-ALT and ARMv8-M-ML-ALT
ports. Specifically, saved few cycles on the context switch code path.
- NEW: Added missing context switch hook in ARMv7-M-ALT and ARMv8-M-ML-ALT
ports.
- NEW: Added chRegGarbageCollect() function to registry for simplified
dynamic threads management.
- NEW: Added integration demos for VFS+LittleFS/FatFS+XSHELL.
- NEW: Added faster context switch modes to ARMv7-M and ARMv8-M ports. The
new modes allow to avoid saving FP context for threads that do not
use the FPU.
- NEW: Added new ARMv8-M port aligned with features of then ARMv7-M port for
sandboxing.
- NEW: Added XShell support for change prompt, multi-command per line, line
editing, user definable extra fields, init and execution hooks.
- NEW: Improved LFS support, now it is possible to make an LFS file system
at arbitrary positions in flash.
- NEW: New XShell specific for the new RT, it leverages the new thread
dispose feature.
- NEW: New RT threads spawning API decoupling the thread stack from the
thread_t structure as required in NUMA multicore devices. Old
"create" API is still present and supported, long term it could be
removed.
- NEW: Added capability to associate a "dispose" functions to threads,
dynamic API modified to use this mechanism.
- NEW: Recursive locks in RT and NIL made optional, only enabled if the
underlying port supports the capability.
- NEW: Now RT virtual timers can recalculate the value of CH_CFG_ST_TIMEDELTA
at runtime and continue using the recalculated value. This has two
consequences: 1) The value is recalculated once 2) it is possible
to use the new API chVTGetCurrentDelta() and update the static
setting in order to avoid recalculation.
- NEW: OSLIB release methods now return the value of the reference counter.
- NEW: Added a "waend" field to the thread structure in RT for debug
convenience.
- NEW: Added a para-virtualized XHAL port for use in sandboxes.
- NEW: Added a VIO subsystem to sandboxes supporting drivers
para-virtualization, PAL and SIO supported so far.
- NEW: Added and RT port for use in virtualized sandboxes.
- NEW: Added full virtualization support to sandboxes with a virtual IRQ
mechanism.
- NEW: Added __CH_OWNEROF() macro to RT.
- NEW: Added a Posix-favored shell named "msh" (Mini Shell). The shell is able
to run sub-apps inside the same sandbox. The shell can either be placed
statically in flash or loaded dynamically in RAM.
- NEW: Added runnable "apps" capability to SBs, apps available so far: msh, ls.
- NEW: Added ability to load ELF files to SBs.
- NEW: Enhanced Posix API for SBs leveraging the VFS integration.
- NEW: SBs and VFS integration. Each SB can see its own VFS instance.
- NEW: Added a new MEM_IS_VALID_FUNCTION() macro to RT and NIL.
- NEW: Changed SB configuration options names to be prefixed with SB_CFG_.
- NEW: Added a new CH_CFG_HARDENING_LEVEL option to RT.
- NEW: Added a chXXXDispose() function to all objects in NIL.
- NEW: Added a chXXXDispose() function to all objects in RT.
- NEW: Added MEM_NATURAL_ALIGN macro to RT and NIL.
- NEW: Added static initializer for virtual timers in RT.
- NEW: Added new function chHeapIntegrityCheck().
- NEW: Function chCoreGetStatusX() changed to return a memory region object
instead of a simple size.
- NEW: RT and NIL upgraded to support the enhanced OSLIB.
- NEW: Memory areas/pointers checker functions added to OSLIB.