自制国产实时内核——vnRTOS 所有文档: vnRTOS 文档
本节主要是讲下如何使用 vnRTOS
代码框架目前源码使用的是STM32F407芯片。整个代码的框架如下:
其中, n_os 是整个内核的源码部分。打开可以看到如下文件:
chip —— 是和具体芯片相关的代码,如果要移植,主要移植这个文件。其中有三个文件:
chip / cpu_sys.c —— 该文件主要是实现系统心跳定时的功能,对于 STM32 架构来说,主要是 sys_tick_init 函数
chip / os_cpu.c —— 实现 初始化任务栈 的功能
chip / os_cpu_a.asm —— 整个 芯片最重要的文件,里面都是一个 汇编指令,主要实现任务切换,压栈出栈等操作,与具体芯片相关。目前这个文件是 cotex-M4 的。对于 STM32F103 的芯片可能要稍微修改一下。不过这个文件是 ucOS兼容的。大家可以参考移植。
drive —— 这个是驱动,主要是实现 uart 功能,当然如果大家不需要串口打印,可以注释掉里面的内容即可。
include —— 里面存放各类头文件
sys —— 这个就是内核的核心了。里面有如下文件:
command.c —— 实现一些简单的命令行功能
my_list.c —— 内核链表实现
os_cmd.c —— 内核串口交互 主函数
os_malloc.c —— 内存管理 ,实现 malloc free 等函数
os_mem.c —— 暂时没用,后面要删了
os_signal.c —— 内核信号量的功能,目前支持 资源获取释放、信号量唤醒功能
os_timer.c —— 内核定时器管理功能,主要实现时间片切换
task.c —— 最核心的代码部分,用于创建任务、删除任务,任务调度算法等。