Skip to content

Commit 94ddf60

Browse files
author
Deepika
authored
Update Rtos.md - DO NOT MERGE (before mbed-os 5.7 release)
Removed all RTX mention and added reference to importer script
1 parent bce1540 commit 94ddf60

File tree

1 file changed

+3
-46
lines changed
  • docs/reference/contributing/target

1 file changed

+3
-46
lines changed
Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### RTOS
22

3-
CMSIS/RTX code is imported from <a href="https://github.com/ARM-software/CMSIS_5/" target="_blank">the original CMSIS repository</a>.
3+
CMSIS/RTX code is imported from <a href="https://github.com/ARM-software/CMSIS_5/" target="_blank">the original CMSIS repository</a> with the help of python script in mbed-os repository `mbed-os\tools\importer\importer.py`.
44

55
#### Memory considerations
66

@@ -25,51 +25,8 @@ Option | Value | Description |
2525

2626
#### Code structure
2727

28-
Due to differences in how the Mbed OS and CMSIS directory structures look, you can't import the original code directly. Some directory changes are necessary:
29-
30-
CMSIS5 | Mbed OS | Explanation |
31-
-------|---------|-------------|
32-
`CMSIS_5/CMSIS/Core/Include/core_*.h` | `mbed-os/cmsis/` | Core specific code |
33-
`CMSIS_5/CMSIS/Core/Include/tz_context.h` | `mbed-os/cmsis/` | TrustZone code |
34-
`CMSIS_5/CMSIS/Core/Include/cmsis_compiler.h` | `mbed-os/cmsis/` | Toolchain generic code |
35-
`CMSIS_5/CMSIS/Core/Include/cmsis_{armcc,armclang,gcc}.h` | `mbed-os/cmsis/TOOLCHAIN_{ARM,GCC}/` | Toolchain specific code |
36-
`CMSIS_5/CMSIS/RTOS2/Include/cmsis_os2.h` | `mbed-os/rtos/TARGET_CORTEX/rtx5/` | RTX main header |
37-
`CMSIS_5/CMSIS/RTOS2/RTX/Config/` | `mbed-os/rtos/TARGET_CORTEX/rtx5` | RTX configuration files |
38-
`CMSIS_5/CMSIS/RTOS2/RTX/Include1/` | `mbed-os/rtos/TARGET_CORTEX/rtx4` | RTOS1 compatibility layer |
39-
`CMSIS_5/CMSIS/RTOS2/RTX/Include/` | `mbed-os/rtos/TARGET_CORTEX/rtx5` | RTX definitions |
40-
`CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_*` | `mbed-os/rtos/TARGET_CORTEX/rtx5` | RTX sources |
41-
`CMSIS_5/CMSIS/RTOS2/RTX/Source/svc_user.c` | `mbed-os/rtos/rtx2/TARGET_CORTEX_M/` | RTX SVC user table |
42-
`CMSIS_5/CMSIS/RTOS2/RTX/Source/{ARM,GCC,IAR}/` | `mbed-os/rtos/TARGET_CORTEX/rtx5/TARGET_{M0,M0P,M3,RTOS_M4_M7,M23,M33}/TOOLCHAIN_{ARM,GCC,IAR}` | Toolchain and core specific exception handlers |
28+
Due to differences in how the Mbed OS and CMSIS directory structures look, you can't import the original code directly using `importer.py` and configuration file `cmsis_importer.json`.
4329

4430
#### Modification
4531

46-
Due to different use cases between Mbed OS and CMSIS, we had to make some modifications to the source code. We've tried to upstream our changes to the CMSIS repository, but in cases where they aren't compatible with CMSIS requirements, we are forced to maintain a small set of changes.
47-
48-
##### CMSIS
49-
50-
Filename | Description |
51-
---------|-------------|
52-
`cmsis_compiler.h` | Added IAR missing __ALIGNED attribute for earlier (less than 7.8.4) versions |
53-
`cmain.S` | custom IAR non-RTOS boot sequence for Mbed |
54-
55-
##### RTX
56-
57-
Filename | Description |
58-
---------|-------------|
59-
`cmsis_os2.h` | Doxygen added; added per-thread uVisor context |
60-
`cmsis_os1.h` | Change `osThreadDef` to accept 3 parameters rather than 4 and be not static as expected by Mbed OS |
61-
`core_cm.h` | Doxygen added; included headers changed to match Mbed OS core selection; deferred priority setting of SVCall to uVisor when uVisor is enabled |
62-
`RTX_Config.h` | Doxygen added; Mbed OS RTX config included |
63-
`rtx_evr.c` | CMSIS component definition include removed |
64-
`rtx_evr.h` | Doxygen added |
65-
`rtx_thread.c` | Added per-thread uVisor context; notify uVisor of OS events |
66-
`rtx_kernel.c` | Added per-thread uVisor context; notify uVisor of OS events |
67-
`rtx_lib.h` | Doxygen added; added per-thread uVisor context |
68-
`rtx_os.h` | Doxygen added; added per-thread uVisor context |
69-
`irq_cm4.s` | For all toolchains: added case for Cortex M4 cores without VFP |
70-
`svc_user.c` | Removed as its template file and should not be in our code base |
71-
`rt_OsEventObserver.{c,h}` | Added an interface for uVisor to be notified about certain events from privileged code |
72-
`irq_armv8mbl.S` | IAR toolchain: added file for Cortex M23 core |
73-
`irq_armv8mml.S` | IAR toolchain: added file for Cortex M33 core |
74-
75-
<span class="notes">**Note:** For all toolchains, Mbed OS uses `irq_cm0.s` for both M0 and M0P cores.</span>
32+
Due to different use cases between Mbed OS and CMSIS, we had to make some modifications to the source code. We've tried to upstream our changes to the CMSIS repository, but in cases where they aren't compatible with CMSIS requirements, we are forced to maintain a small set of changes. Changes are maintained as separate commits in mbed-os, and SHA's are listed in `commit_sha` section of `cmsis_importer.json` file.

0 commit comments

Comments
 (0)