具体的移植步骤如下。
3.2.1 修改工程文件夹和工程文件设置
1. 在USER文件夹下新建includes.h头文件。
2. 在工程的根目录下建立BSP文件夹、APP文件夹和uCOS-II文件夹。
其中: BSP文件夹用来存放外设硬件驱动程序;
APP文件夹用来存放应用软件任务;
uCOS-II文件夹存放uC/OS-II的相关代码。
3. 把USER文件夹下的led.h 和led.c文件剪切到BSP文件夹里。并在BSP文件夹里新建BSP.c和BSP.h文件。
4. 在APP文件夹下建立app.h、app.c和app_cfg.h文件。并拷贝uC/OS-II源代码里的Micrium\Software\EvalBoards\ST \STM32F103ZE-SK\IAR\OS-Probe-LCD\os_cfg.h到此目录。
5. 在uCOS-II文件夹下新建Source文件夹,把uC/OS-II源代码\Micrium\Software\uCOS-II\Source下的所有文件复制到该文件夹里。
6. 在uCOS-II文件夹下新建Ports文件夹,把uC/OS-II源代码Micrium\Software\uCOS-II\Ports\arm-cortex-m3\Generic\IAR下的所有文件复制到该文件夹里。复制后,选中全部文件,右键——属性——去掉只读属性——确定。
至此,工程的目录结构建立好了。然后打开工程文件。
建立BSP、APP、uCOS-II\Source、uCOS-II\Ports四个组,并添加进相应的.c文件。与工程目录中的结构相同。并在uCOS-II\Ports 中添加汇编文件os_cpu_a.asm。
工程文件的结构如图 3.2所示。
图 3.2 工程文件结构图
7. 右击该工程项目,打开工程选项对话框,选择“c/c++”选项卡,在“include paths”中添加“..\CMSIS;..\FWlib\inc;..\USER;..\APP;..\BSP;..\uCOS-II\Ports;..\uCOS-II\Source”这四个文件。如图 3.3所示。
图 3.3 设置编译路径
至此,完成全部工程的设置,需要开始移植修改代码。
3.2.2 操作系统代码的移植
1. os_cfg.h
该文件是用来配置系统功能的。在本系统中,并没有用到uC/OS-II的所有功能,所以需要通过裁剪内核以避免浪费系统的宝贵资源。
打开os_cfg.h,禁用信号量、互斥信号量、邮箱、队列、信号量集、定时器、内存管理,关闭调试模式。修改代码如下所示。
#define OS_DEBUG_EN 0
#define OS_FLAG_EN 0
#define OS_MBOX_EN 0
#define OS_MEM_EN 0
#define OS_MUTEX_EN 0
#define OS_Q_EN 0
#define OS_SEM_EN 0
#define OS_TMR_EN 0
由于用不着应用软件的钩子函数,所以将它们也禁掉;多重事件控制也禁掉。修改后的代码如下所示。
#define OS_APP_HOOKS_EN 0
#define OS_EVENT_MULTI_EN 0
2. 打开os_cpu.h,将以下三行代码注释掉:
void OS_CPU_SysTickHandler(void);
void OS_CPU_SysTickInit(void);
INT32U OS_CPU_SysTickClkFreq(void);
3. 打开os_cpu_c.c,把 GPRS家庭防盗报警系统的设计+流程图(7):http://www.youerw.com/zidonghua/lunwen_3457.html