系统架构
UniProton 系统由 Mem、Arch、Kernel、IPC、OM 五大子系统构成,Mem、Arch 是整个系统的基石。
各子系统的职责如下:
- Mem:实现内存分区的创建,内存块的申请和释放等功能。
- Arch:实现和芯片强相关的硬件特性功能,如硬中断、异常接管等。
- Kernel:实现任务、软中断、TICK中断、软件定时器等功能。
- IPC:实现事件、队列、信号量等功能。
- OM:实现 cpup、hook 等调测功能。
代码目录结构说明
| 一级目录 | 二级目录 | 三级目录 | 说明 |
|---|---|---|---|
| build | uniproton_ci_lib | 编译框架的公共脚本 | |
| uniproton_config | config_m4 | cortex_m4芯片的功能宏配置文件 | |
| cmake | common | build_auxiliary_script | 转换Kconfig文件为buildef.h脚本 |
| functions | cmake的公共功能函数 | ||
| tool_chain | 编译器和编译选项配置文件 | ||
| demos | helloworld | apps | 示例程序的main函数文件以及业务代码 |
| bsp | 板级驱动适配代码 | ||
| build | demo构建及链接脚本 | ||
| config | 用户配置文件,功能宏定制头文件 | ||
| include | src/include/uapi及posix目录下头文件拷贝目录 | ||
| libs | 源码编译静态库文件存放目录 | ||
| Hi3093 | 与helloworld demo类似,详见对应目录下的readme文件 | ||
| RASPI4 | 与helloworld demo类似,详见对应目录下的readme文件 | ||
| doc | 项目配置、规范、协议等文档 | ||
| design | UniProton系统架构和特性说明 | ||
| platform | libboundscheck使用说明 | ||
| libboundscheck | libboundscheck预留目录,用户将下载的源码放在此目录下 | ||
| src | arch | cpu | cpu对应架构的功能适配代码 |
| include | cpu对应架构的头文件 | ||
| config | 用户main函数入口 | ||
| config | 用户配置功能宏开关 | ||
| core | ipc | 事件、队列、信号量等功能 | |
| kernel | 任务、中断、异常、软件定时器等功能 | ||
| fs | littlefs | littlefs适配层代码,不包含完整littlefs代码 | |
| vfs | 文件系统vfs层接口代码 | ||
| include | uapi | 对外头文件 | |
| posix | posix接口头文件 | ||
| mem | 内存管理基本功能 | ||
| fsc | 内存管理FSC算法代码 | ||
| include | 内存管理头文件 | ||
| net | lwip-2.1 | lwip适配层代码,不包含完整lwip代码 | |
| om | cpup | cpu占用率统计功能 | |
| err | 错误处理功能 | ||
| hook | 钩子函数功能 | ||
| include | 系统管理头文件 | ||
| kal | posix功能适配中间层 | ||
| libc | posix功能实现源码 | ||
| litelibc | musl接口适配UniProton源码 | ||
| musl | musl 1.2.3源码,不包含litelibc重复源码 | ||
| osal | cxx | 支持c++接口 | |
| linux | 支持linux接口 | ||
| drivers | 驱动相关实现 | ||
| security | rnd | 随机化功能 | |
| utility | lib | 公共库函数 | |
| testsuites | 测试用例 | ||
| bsp | 板级驱动适配代码(m4) | ||
| build | 构建及链接脚本(仅适用于m4) | ||
| config | 用户配置文件,功能宏定制头文件 | ||
| drivers | 驱动框架测试用例 | ||
| libc-test | 开源musl libc-test适配的测试用例,用于测试部分posix接口 | ||
| posixtestsuite | 开源posixtestsuite适配的测试用例,用于测试部分posix接口 | ||
| rhealstone | m4性能测试适配用例 | ||
| shell-test | shell测试用例 | ||
| support | 测试main入口 |