build/cmake: add initial KERNEL mode support

Currently only FLAT mode development can enjoy cmake build system. This
patch tries to add initial kernel mode support. It can build NuttX kernel
and libproxies.a, the latter will be further checked though.

This can already help to build an AMP remote node image as it can share
userland apps living in the AMP master node.

Major changes:

- in top folder:
  - CMakeLists.txt    adjust for KERNEL mode, separate from PROTECTED mode.
- in `syscall`:
  - CMakeLists.txt    add mksyscall target for stubs/proxies generation
- in `syscall/stubs`:
  - CMakeLists.txt    use dependency to mksyscall
- in `syscall/proxies`:
  - CMakeLists.txt    use dependency to mksyscall
- in `arch`:
  - CMakeLists.txt    separate KERNEL from PROTECTED mode.
- in `arch/risc-v/src`:
  - CMakeLists.txt    separate from PROTECTED mode, add sub folders.
- in `arch/risc-v/common`:
  - CMakeLists.txt    add sources and sub-folders for KERNEL mode.
- in `arch/risc-v/k230`:
  - CMakeLists.txt    add sources for KERNEL mode.
- in `boards/risc-v/k230/canmv230/src`:
  - CMakeLists.txt    adjust k230 specific scripts for kernel mode.

New additions:

- in `arch/risc-v/src/nuttsbi/`           add CMakeLists.txt
- in `arch/risc-v/src/common/supervisor/` add CMakeLists.txt

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
This commit is contained in:
Yanfeng Liu
2024-03-14 15:00:46 +08:00
committed by archer
parent 8bf6b17cc0
commit ea8682572c
11 changed files with 118 additions and 25 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ add_custom_command(
COMMAND ${CMAKE_BINARY_DIR}/bin/mksyscall -p
${CMAKE_CURRENT_LIST_DIR}/../syscall.csv
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS nuttx_host_tools)
DEPENDS mksyscall)
# add sources to target
target_sources(proxies PRIVATE ${SYSCALLS})