与FLAT构建不同,在PROTECTED和KERNEL构建中,用户空间发出的系统调用按以下步骤处理。 应用程序代码发出的系统调用由系统调用代理(由 mksyscall 自动生成)处理。 系统调用代理发出管理调用指令进入内核空间。 内核空间中的系统调用处理程序调用系统调用存根(由mksyscall自动生成)。 系统调用存根调用 NuttX 内核中的 API 实现.
对于大多数 MCU,NuttX 都是以平面的单一可执行映像构建的,其中包含 NuttX RTOS 以及所有应用程序代码。RTOS 代码和应用程序在相同的地址空间中以相同的内核模式权限运行。为了利用某些处理器的安全功能,还支持另一种构建模型:NuttX 可以单独构建为单片内核模式模块,而应用程序可以作为单独构建的用户模式模块添加。
https://nuttx.apache.org/docs/latest/guides/tasktraceinternal.html
https://nuttx.incubator.apache.org/docs/12.4.0/components/syscall.html
|