第七章 在51单片机上移植uc/os-2
来源:互联网 发布:软件开发规范文档 编辑:程序博客网 时间:2024/05/17 22:42
第七章 在51单片机上移植uc/os-2
7.1 uc/os-2移植的一般性问题
7.1.1可重入函数
(1)多个任务调用同一个函数,其中的全局变量丢失产生错误。
(2)一般来说,一个可重入函数只使用局部变量,局部变量存储在堆栈中,如果一定要用,必须做保护。
7.1.2时钟节拍的产生
uc/os-2是通过硬件中断来实现系统时钟,并在时钟中断服务程序中来处理与时间相关的问题的。
7.1.3任务堆栈的设计:处理器支持一定数量的硬件堆栈,能够读写操作。
(1)堆栈的格式,因为生长方式不同。
(2)系统堆栈与任务堆栈的关系。堆栈必须设置在一个特定区域内:51要求堆栈必须在片内RAM,只能把应用程序中的任务堆栈的内容存放在片外RAM中,片内PAM中设置一个公用的堆栈
(3)片外RAM中用来存放任务堆栈内容的区域叫做任务堆栈映像,而片内PAM中的公用堆栈叫做系统堆栈。
7.2在51系列单片机上移植uc/os-2
一般用C语言编写。
7.2.1改写文件OS_CPU.H
(1)堆栈的增长方向:51是从低地址向高地址增长->OS_STK_GROWTH为1
(2)定义临界段的宏
(3)定义任务切换宏
(4)定义数据类型
7.2.2任务堆栈的设计
(1)51堆栈指针SP总是先加1再存数据,所以用的时候先减一。
(2)任务切换时,计算任务堆栈映像的最低地址空间用来存放用户堆栈的长度。
7.2.3文件OS_CPU_C.C的改写
改写任务堆栈初始化函数OSTaskStkInit(),使用西永设置时钟中断,添加定时器的初始化程序。
(1)改写任务堆栈初始化程序
(2)系统时钟初始化
7.2.4注意事项
(1)不要多修改。
(2)Keil中 重入函数有标注reentrant关键字
7.3一些应用
- 第七章 在51单片机上移植uc/os-2
- uC/OS-II在51单片机上的移植
- uC/OS-II在51单片机上的移植
- [UC/OS-II原理及应用]在51单片机上移植μC/OS-Ⅱ
- [UC/OS-II原理及应用]在51单片机上移植μC/OS-Ⅱ
- uC/OS-II在C8051F020单片机上的移植
- uC/OS-II在C8051F020单片机上的移植
- 第八章在ARM7上移植uc/os-2
- 移植uC/OS-II到51单片机的菜鸟问题
- 第八章 在51单片机上移植μC/OS-Ⅱ
- uc/os-II在ARM7上的移植探索
- 关于uc/os-II在C51上移植的笔记
- uC/OS-II在ARM微处理器上的移植
- uc/os-II在STC89C52RC上的移植
- uC/OS II在Microchip MCU上的移植
- uC/OS--II在STM32F103ZET6上的移植
- 关于uc/os-ii在c51上的移植总结
- [UC/OS-II原理及应用]在ARM7上移植μC/OS-Ⅱ
- 《精通javascript》里的一些函数(一)
- 基于Zynq的RT3070 WIFI + hostapd 实现Wifi和WifiAP
- 第六章内存的动态分配
- AIDL实现远程调用的小例子
- Xcode 加载提示NSUnknownKeyException 异常原因 处理方法
- 第七章 在51单片机上移植uc/os-2
- 两个成员的类模板
- C++之二叉树的创建、查找、四种次序的周游遍历方法以及内存的释放
- Android烧录的固件都是怎么生成的
- 几种排序算法JAVA代码
- [Unity3D]使用右键菜单打开工程
- 算法竞赛入门第七章:习题
- eclipse中不能找到dubbo.xsd解决方法
- java初级之31三大特性之封装