µC/OS-II版本升级指南
IDE: MDK V4+
MCU: LPC17xx(Cortex-M3)
RTOS: µC/OS-II
升级顺序:V2.52->V2.62->V2.76->V2.86->V2.91
V2.52
一、startup*.s (startup_lpc17xx.s)
1. 更改两个中断服务函数名称
注: 名字能够使用其他。
2. 定义两个中断服务函数
1). OS_CPU_PendSVHandler
位置
定义: OS_CPU_A.ASM
声明: OS_CPU.H
2). OS_CPU_SysTickHandler
位置: OS_CPU_C.C
二、应用主文件 (app.c)
1. 定义开、关中断函数(汇编)
位置: OS_CPU_A.ASM
1). CPU_IntDis
关中断
2). CPU_IntEn
开中断
此函数首次调用者为main()。而且为main()函数中的第一行。
2. SysTick_Config函数
位置: core_cm3.h
此函数的调用者为App_TaskStart(守护任务)
在调用之前。要进行板子的初始化。
三、临界函数
声明都在os_cpu.h
1. 进入临界函数
OS_ENTER_CRITICAL()
2. 退出临界函数
OS_EXIT_CRITICAL()
V2.62
一、更改ucos全部文件名称为小写字母
1. 删除Source目录全部文件
2. 拷贝V2.62的Source目录下全部文件到Source目录下
3. 重命名OS_CPU_A.asm、OS_CPU_C.c、OS_CPU.h为os_cpu_a.asm、os_cpu_c.c、os_cpu.h
二、添加文件
1) 拷贝os_debug.c到Ports目录
2) 更改引用文件
由原来的#include "includes.h" -> #include <ucos_ii.h>
三、覆盖文件
1) 拷贝os_cfg.h到App目录,并覆盖之!
2) 添加引用文件"os_cpu.h"
#include <os_cpu.h>
3) 改动OS_TICKS_PER_SEC的值为1730
V2.76
一、覆盖ucos全部文件
1. 拷贝V2.76的Source目录下全部文件到Source目录下
二、添加文件
1) 拷贝os_dbg_r.c到Ports目录,变更名称为os_dbg.c
删除原来的os_debug.c文件
2) 拷贝os_cfg_r.h到App目录,变更名称为os_cfg.h
3) 改动OS_TICKS_PER_SEC的值为800
三、multiply defined 解决的方法
1) ucos_ii.c
凝视掉"#include <ucos_ii.h>"
四、os_core.c 错误解决的方法
凝视掉ucos_ii.c中的全部*.c文件
V2.86
一、步骤同前
二、差异
1) identifier "OS_TASK_TMR_PRIO" undefined.
在app_cfg.h添加其定义
2)不使用application hook
设置OS_APP_HOOKS_EN为0;
V2.91
一、步骤同前
二、差异
1)不使用application hook
设置OS_APP_HOOKS_EN为0;
版权声明:本文博客原创文章,博客,未经同意,不得转载。
µC/OS-II版本升级指南的更多相关文章
- uC/OS II原理分析及源码阅读(一)
uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...
- 【原创】uC/OS II 任务切换原理
今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...
- 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II
SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...
- 【独家】React Native 版本升级指南
前言 React Native 作为一款跨端框架,有一个最让人头疼的问题,那就是版本更新.尤其是遇到大版本更新,JavaScript.iOS 和 Android 三端的配置构建文件都有非常大的变动,有 ...
- MAC OS VPN使用指南
L2TP/IPSec VPN - Mac OS 使用指南 一.打开Mac的联网设置. 二.然后点左边的加号,添加新的连接. 三.选择VPN(L2TP),点击创建(Create). 四.输入你购买的VP ...
- Mac OS 踩坑指南
前言 其实mac os本身还是很不错的,软硬结合使得其性能.效率.续航得到了很好的优化. 但是毕竟是一个"小众"操作系统,很多在Win上已经用习惯的东西在这里都没有,或者完全不一样 ...
- BUAA OS实验调试指南:从看懂到看开
一般的调试流程其实很简单:发现问题,稳定复现,确定临界条件,定位问题,修复问题,核查结果.迭代这个过程,形成一个闭环 老实说,OS的实验代码,开箱体验极差,程序跳来跳去,进了Lab4后还要考虑内核态切 ...
- uC/OS II 函数说明 之–OSTaskCreate()与OSTaskCreateExt()
1. OSTaskCreate() OSTaskCreate()建立一个新任务,能够在多任务环境启动之前,或者执行任务中建立任务.注意,ISR中禁止建立任务,一个任务必须为无限循环结构. ...
- FreeRTOS操作系统最全面使用指南
FreeRTOS操作系统最全面使用指南 1 FreeRTOS操作系统功能 作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理.时间管理.信号量.消息队列.内存管理.记录功能等,可基本满 ...
随机推荐
- IT第六天 - eclipse快捷操作、万年历项目的编写、菱形的打印输出、代码简化
IT第六天 上午 小项目 1.程序提前结束的退出标志 2.登录用户的模拟,给出适当的提示信息 3.根据要求,寻找规律,然后编写程序 Eclipse的使用 1.快捷键的使用 下午 中小项目 1.九九乘法 ...
- java学习之tcp与udp的实现
package com.gh.socket; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...
- [置顶] android AIDL 进程间通信
1.定义aidl文件 a.ITestService.aidl package com.open.aidl.service; import com.open.aidl.service.ITestServ ...
- Android 一个绚丽的loading动效分析与实现!
http://blog.csdn.net/tianjian4592/article/details/44538605 前两天我们这边的头儿给我说,有个 gif 动效很不错,可以考虑用来做项目里的loa ...
- Jquery 实现动态加入table tr 和删除tr 以及checkbox的全选 和 获取加入TR删除TR后的数据
关于jquery实现动态加入table tr的问题我也不多说了 上面代码非常多地方都有凝视的 关于返回的 编辑后的table 数据 我这里想说的是我直接把他保存成一个连接起来的字符串了 格式 str= ...
- arduino电子琴(2015-11-04)
前言 这是论坛上一个坛友问的问题,想做一个可变音调的电子琴,想着正好练练手,就顺手做一下. 接线图
- ViewPager,模仿慕课网
源码:http://pan.baidu.com/s/1DhM14 使用fragment实现的:http://pan.baidu.com/s/1mgzWlM4 SecondActivity.java p ...
- Oracle 游标疑问
procedure1: CREATE OR REPLACE PROCEDURE UPDATE_AC02_AAE140_WYL(PI_AAB001 IN NUMBER, PO_FHZ OUT VARCH ...
- 解决Spring中singleton的Bean依赖于prototype的Bean的问题
在spring bean的配置的时候,可能会出现一个singleton的bean依赖一个prototype的bean.因为singleton的bean只有一次初始化的机会,所以他们的依赖关系页只有在初 ...
- 0.关于TCP协议的一些总结
接触unix网络编程一年多了,偶尔用户态进程表现出一些不能理解的现象,因此将<TCP/IP协议卷1>TCP协议相关的章节通读了一遍,总结了一下相关的知识点. 1.TCP数据报格式 TCP封 ...