1、MDK使用MDK5.26及其以上版本。
2、IAR使用IAR8.30及其以上版本。
3、由于Mircium当前仅提供了IAR的底层移植文件,参考修改制作了个MDK版本的。
4、新版的底层移植文件比较好用,支持M3,M4和M7,含浮点支持。
5、制作了一个滴答定时器和PendSV中断入口汇编文件os_cpu_isr.asm,以后不用繁琐的修改启动文件的中断入口函数名,直接添加此贴文件即可。
6、新版的中断管理分为Kernel Aware和Non-Kernel Aware
(1)Kernel Aware 表示受到uCOS-II管理的中断服务程序。
(2)Non-Kernel Aware 表示不受管理的中断服务程序,中断使用跟裸机一样,但不可调用uCOS-II的API。
/*
*********************************************************************************************************
*
* 模块名称 : uCOS-II
* 文件名称 : main.c
* 版 本 : V1.0
* 说 明 : uCOS-II程序模板
* 实验目的:
* 1. 学习MDK和IAR的uCOS-II程序模板创建。
* 实验内容:
* 1. 共创建了如下几个任务,通过按下按键K1可以通过串口打印任务堆栈使用情况
* ==================================================
* 优先级 使用栈 剩余栈 百分比 任务名
* Prio Used Free Per Taskname
* 63 53 75 41% uC/OS-II Idle
* 62 57 71 44% uC/OS-II Stat
* 4 61 67 47% uC/OS-II Tmr
* 0 144 368 28% App Task Start
* 1 137 375 26% App Task MspPro
* 2 139 373 27% App Task UserIF
* 3 163 349 31% App Task COM
* 串口软件建议使用SecureCRT(V7光盘里面有此软件)查看打印信息。
* App Task Start任务 :启动任务,这里用作BSP驱动包处理。
* App Task MspPro任务 :消息处理,这里用作浮点数串口打印。
* App Task UserIF任务 :按键消息处理。
* App Task COM任务 :浮点数串口打印。
* 2. (1) 凡是用到printf函数的全部通过函数App_Printf实现。
* (2) App_Printf函数做了信号量的互斥操作,解决资源共享问题。
* 注意事项:
* 1. 为了支持uC/Probe调试组件:
* (1).MDK要勾选option->output -> Debug Infomation选项,选择优化等级0
* (2).IAR要选择选择优化等级low,其中如下两个地方比勾选
* a. option->C/C++ Compiler->Output选项中勾选Generate debug information。
* b. option->linker->Output选项中勾选Include Generate debug information in output。
* (3).使能uCOS-II宏定义
* #define OS_DEBUG_EN 1u
* #define OS_TASK_STAT_EN 1u 同时初始化统计任务
* #define CPU_CFG_INT_DIS_MEAS_EN 1u
* (4).为了方便调试,参数OS_APP_HOOKS_EN,OS_ARG_CHK_EN和OS_CPU_HOOKS_EN都使能。
* 2. 本实验推荐使用串口软件SecureCRT,要不串口打印效果不整齐。此软件在
* V7开发板光盘里面有。
* 3. 务必将编辑器的缩进参数和TAB设置为4来阅读本文件,要不代码显示不整齐。
*
* 修改记录 :
* 版本号 日期 作者 说明
* V1.0 2019-05-01 Eric2013 1. ST固件库1.3.0版本
* 2. BSP驱动包V1.2
* 3. uCOS-II版本V2.92.16
* 4. uC/CPU版本V1.31.04
* 5. uC/LIB版本V1.38.03
*
* Copyright (C), 2019-2030, 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/ |