步骤如下:
步骤1、从Micrium官方下载相关型号的UCOS-II源代码;
步骤2、新建工程,然后除了添加日常的工程文件外,还需要在工程组里添加四个文件
由这个关系图可知,我们需要在工程里新建的文件夹有
2.1 APP: 用户的外设硬件驱动程序;里面有四个文件:
① app.c //新建的,用户自己编写
②app.h //新建的,用户自己编写
③app_cfg.h //新建的,用户自己编写,用来配置应用软件,主要是任务的优先级、中断优先级和堆栈大小等;
④os_cfg.h // OS本身的对应用软件的配置
2.2 uCOS-II\Source: OS源文件,里面有11个文件,10个C 和1个头文件,来自于Micrium\Software\Ucos-II
2.3 uCOS-II\Ports: OS的CPU端口配置文件,里面有4个文件,两个C,一个头文件,一个汇编文件,来自
2.4 BSP: 用户外设具体的驱动程序,比如说led.c,lcd.c等;至少有两个
①BSP.c
②BSP.h
注意1:从Micrium中拷贝文件过来后,对于PORTS文件夹,去掉只读属性;
注意2:在target 里添加这四个文件夹的编译路径;
步骤3、修改uC/OS-II
3.1 os_cfg.h
用来配置系统功能的,也就是使能或禁用各个功能模块,以及设置相关最小最大值;
①禁用 : 信号量、互斥信号量、邮箱、队列、信号量集、定时器、内存管理,关闭调试模式
②禁用: 应用软件的钩子函数和多重事件控制,如果用不着的话;
#define OS_APP_HOOKS_EN 0
#define OS_EVENT_MULTI_EN 0
3.2 修改os_cpu.h
void OS_CPU_SysTickHandler(void);
void OS_CPU_SysTickInit(void);
INT32U OS_CPU_SysTickClkFreq(void);
注释掉前面这三个函数
3.3 修改os_cpu_c.c
用#if 0 … #endif 注释掉三个地方:
①
#define OS_CPU_CM3_NVIC_ST_CTRL (*((volatile INT32U *)0xE000E010))
#define OS_CPU_CM3_NVIC_ST_RELOAD (*((volatile INT32U *)0xE000E014))
#define OS_CPU_CM3_NVIC_ST_CURRENT (*((volatile INT32U *)0xE000E018))
#define OS_CPU_CM3_NVIC_ST_CAL (*((volatile INT32U *)0xE000E01C))
#define OS_CPU_CM3_NVIC_PRIO_ST (*((volatile INT8U *)0xE000ED23))
#define OS_CPU_CM3_NVIC_ST_CTRL_COUNT 0x00010000
#define OS_CPU_CM3_NVIC_ST_CTRL_CLK_SRC 0x00000004
#define OS_CPU_CM3_NVIC_ST_CTRL_INTEN 0x00000002
#define OS_CPU_CM3_NVIC_ST_CTRL_ENABLE 0x00000001
#define OS_CPU_CM3_NVIC_PRIO_MIN 0xFF
②void OS_CPU_SysTickHandler (void)函数
③void OS_CPU_SysTickInit (void) 函数
用户1001249 2013-10-26 10:32