自制国产精简内核 vnRTOS 第 2 节 代码结构

自制国产实时内核——vnRTOS 所有文档: vnRTOS 文档

 

本节主要是讲下如何使用 vnRTOS

代码框架

目前源码使用的是STM32F407芯片。整个代码的框架如下:

自制国产精简内核 vnRTOS 第 2 节 代码结构

其中, n_os 是整个内核的源码部分。打开可以看到如下文件:

自制国产精简内核 vnRTOS 第 2 节 代码结构

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 —— 最核心的代码部分,用于创建任务、删除任务,任务调度算法等。

 

上一篇:Compile Python 3.10 for M1 Chip MacBook Pro


下一篇:VS Code 与 ESP32 官方SDK配置