logo资料库

UCOS-III在STM32F10X的移植步骤.pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
uCos-III STM32F10x uCos-III STM32F10x uCos-III 移植到 STM32F10x uCos-III STM32F10x 最近在百度上看了 uCOS-III 的介绍后,诸多功能有很大的提升和改进,感觉有必要升级一下开发环境。百 度介绍:http://baike.baidu.com/view/8531313.htm 环境: 1 2 3 STM32F10x 3.5固件库。 MDK4.23 编译器 uCos-III v3.03 1. uCos-III 源文件 KRN-K3XX-000000.zip 官网 http://micrium.com/page/downloads/source_code 我的网盘:http://115.com/file/anr4r6a8# 2.uCos-III 官网 移植程序 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO.zip 官网 http://micrium.com/download/Micrium-Book-uCOS-III-STM32F107.exe 网盘 http://115.com/file/dpuyusej# 一、第一步新建工程(在上一篇文章中有详解) 二、新建文件夹 uCOS_III。在此文件下新建四个文件夹 uC-CPU,uC-LIB, uCOS-III。 1.uCOS-III 下新建三个文件 Source, Ports, Cfg 复制 KRN-K3XX-000000\Micrium\Software\uCOS-III\Source 下所有文件到 Source; 复制 KRN-K3XX-000000\Micrium\Software\uCOS-III\Cfg\Template 下所有文件到 Cfg; 复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\uCOS-III\Ports\ARM-Cortex -M3\Generic\RealVie 下所有文件到 Ports。 2. uC-LIB 下新建三个文件 Source, Ports, Cfg 复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\uC-LIB 文本文件到 Source 复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\uC-LIB\Cfg\Template 下 lib_cfg.h 到 Cfg 复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\uC-LIB\Ports\ARM-Cortex-M 3\RealView 下 lib_mem_a.asm 到 Ports 3. uC-CPU 下新建三个文件 Source, Ports,Cfg 复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\uC-CPU 下三个文本文件到 Source
复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\uC-CPU\ARM-Cortex-M3\GN U 下三个文件到 Ports 复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\EvalBoards\Micrium\uC-Eva l-STM32F107\Atollic\uCOS-III\APP 下 cpu_cfg.h 到 Cfg 4.复制 Micrium_uCOS-III-STM32F107-Eval-Atollic-TrueSTUDIO\Micrium\Software\EvalBoards\Micrium\uC-Eva l-STM32F107\Atollic\uCOS-III\APP 下 app_cfg.h 到 Main 中。 好了, 到这里工程文件以复制完了。 1.把工程引用文件路径指定 参图: 2.添加工程文件:
Main.c, Kernel.c,Kernel.h,Config.c,Config.h 代码如下提供。 Main.c Kernel.c Kernel.h Config.c Config.h
app_cfg.h 追加代码 后如下: app_cfg.h 下面对 Project\App\uCOS_III\uC-CPU\Ports 下 cpu_a.s 进行修改, 因为这是 GNU 的汇编代码。 如下替换: ‘@’ 换为‘;’ .global 换为 EXPORT 以下代码 .text .align 2 .thumb .syntax unified 换为 PRESERVE8 AREA |.text|, CODE, READONLY THUMB 把函数名上的.thumb_func 在前后添加 ‘;’注释掉; 并把函数 名后紧跟的‘:’删除。 修改后如下: cpu_a.s 修改 os_cfg.h OS_CFG_TS_EN 宏定义改为0u OS_CFG_SCHED_LOCK_TIME_MEAS_EN 宏定义改为0u OS_CFG_TASK_DEL_EN 宏定义改为 1u 其它可根据自己的功能需要 先1u 或 ou。 这里 Project\App\uCOS_III\uC-LIB\Source 中 lib_str.c 的 Str_FmtNbr_Int32 函数 的函数体内局部变量没有赋 初值,不够严谨 这里赋初值如下: CPU_CHAR CPU_DATA CPU_INT32U CPU_INT32U CPU_INT08U *pstr_fmt = (CPU_CHAR *)0; i = 0u; nbr_fmt = 0u; nbr_log = 0u; nbr_dig_max = 0u;
CPU_INT08U CPU_INT08U CPU_INT08U CPU_INT08U CPU_INT08U CPU_INT08U CPU_INT08U CPU_BOOLEAN CPU_BOOLEAN CPU_BOOLEAN CPU_BOOLEAN CPU_BOOLEAN nbr_dig_min = 0u; nbr_dig_fmtd = 0u; nbr_neg_sign = 0u; nbr_lead_char = 0u; dig_val = 0u; lead_char_delta_0 = 0u; lead_char_delta_a = 0u; lead_char_dig = 0u; lead_char_0 = 0u; fmt_invalid = 0u; print_char = 0u; nbr_neg_fmtd = 0u; 最后修改启动文件 startup_stm32f10x_hd.s ,加载不同的启动文件 时不用怕,修改的内容都是一样的: OS_CPU_PendSVHandler 替换所有的 PendSV_Handler OS_CPU_SysTickHandler 替换所有的 SysTick_Handler 使中断执行 uCos 的中断函数。 到这里就全部 OK 了。 仿真查看端口变化
编程结果过于臃肿: 开启3级优化:
分享到:
收藏