FreeRTOS内核学习
前言
RTOS, Real Time Operating System实时操作系统
- FreeRTOS的原理实现
- FreeRTOS的移植
当项目需求要实现的功能越来越多时,引入RTOS可以更好地管理。
1. 初识FreeRTOS
FreeRTOS由美国的Richard Barry于2003年发布;于2018年被亚马逊收购,改名为AWS FreeRTOS,版本号升为V10,开源协议由原来的GPLv2+修改为MIT;V10版本相比于V9加入了一些物联网相关的组件,内核基本不变。
FreeRTOS的编程风格:
数据类型
①针对不同的处理器,对标准C的数据类型又进行了重定义,比如为char重新定义了一个名字portCHAR,port表示接口。FreeRTOS中详细的数据类型重定义在portmacro.h头文件中。
②在FreeRTOS中,int型从不使用,只使用short型和long型。在Cortex-M内核的MCU中,short为16位,long为32位。
③我们需要指定变量char是有符号的还是无符号的。在KEIL中,默认char是无符号的,但是也可以配置为有符号的,
变量名
定义变量时往往会把变量的类型当作前缀加在变量上,一看就知道该变量的类型。
函数名
函数名包含了函数返回值的类型、函数所在的文件名和函数的功能;如果是私有的函数,会加一个prv(private)的前缀。
宏
①宏均由大写字母表示,并配有小写字母的前缀,前缀表示该宏在哪个头文件定义。
②注意的是信号量的函数都是一个宏定义,但是其函数的命名方法是遵循函数的命名方法而不是宏定义的方法。
③还有几个通用的都是表示0和1的宏定义。
格式
1个Tab键等于4个空格键,编程时最好使用空格键;当两个编译器的Tab键大小设置不一样时,移植代码时格式就会变乱。
2. 堆内存管理
从FreeRTOS V9.0.0版本开始,可以完全静态分配FreeRTOS应用程序,不再需要包含堆内存管理器。
芯片内核简介
Cortex-M3内核是ARM公司开发的CPU内核。完整的MCU芯片集成了Cortex-M3内核以及其它组件。
·32位RISC处理器 ·哈佛结构 ·3级流水线 ·内嵌中断向量控制器和SysTick定时器
工作模式及权限级别
·特权级:不受任何限制,可访问CPU所有资源,执行所有指令
·用户级:受限,不分CPU系统资源不可访问,少量指令无权执行
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)