- 29
- 0
- 约4.48千字
- 约 16页
- 2021-03-18 发布于河北
- 举报
ucosIII 移植教程
作者 :毕晨光
QQ:448251593
背景和环境 2
一、获取源文件 2
二、建立一个最简单的 gpio 工程 2
三、移植 ucosIII 9
四、测试 OS 14
1
背景和 境
工作很久了 ,一直在用 ucosIII, 以前移植 ucosII, 也看 人写的教程移植 ucosIII, 但是
一直想自己移植一下 ucosIII, 然后把自己的移植体会写出来 .供大家一起学 .
境 :iar6.0, stm32lib_v3.5, ucosIII.
一、 取源文件
取 stm32 文件 v3.5.地址 : http://448251593./down_6273773.html
取 ucosIII 的源 . 地址 : http://448251593./down_6273751.html
是一个 .exe 的文件 .需要运行解 到指定的目 .(我解 到 C 盘 ,默 ),如下 :
以上文件若你都有就不必下
二、建立一个最 的 gpio 工程
在 D 盘( 可按需 )建立一个 stm32_ucosIII 的目 ,然后在其里面建立一个 App 目 ,将
STM32 v3.5 固件
? \STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\IOTo
ggle 下面的文件都拷 到 App 下面
然后把 stm32 的 拷 到 stm32_ucosIII 目
2
打开 IAR 软件 Project-Create New Project
然后按照下图建立分组
然后添加源文件如下图
3
下面就是设置 IAR 工程参数了 .我一开始接触 iar 也是很不习惯 ,永久了才感觉熟悉了些,iar 的设置比较多下面开始了
右击红色的部分 (一定要是红色的地方 )选择 Option 然后出现下图按照箭头指示部分选择对应的芯片
(我的是 stm32107xC)
4
然后切换到下图 :选中箭头指示的 Use CMSIS( 告诉 iar 我们用 stm32 库)
接着切换到下图 :这里的 Level 是 iar 对代码的优化等级 ,你可以默认 (我选择的最高优化等级优化大小 )
5
在切换到下图 :
图中 ”1”这里设置头文件的路径 ,把工程相关的文件夹只要包含 .h 的文件 的文件夹 的 路径都添加
上,$PROJ_DIR$ 这个符号的意思是你的工程保存的路径 ,你可以直接把英文翻译过来就是这个意思了 PROJ
和 DIR 分别是 project 、directory 的前几个字母组合起来的 ,” ”表示是从工程目录的转到上一级目录
$PROJ_DIR$\
$PROJ_DIR$\App
$PROJ_DIR$\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
$PROJ_DIR$\Libraries\STM32F10x_StdPeriph_Driver\inc
图中 “2”的地方预定义一个宏 USE_STDPERIPH_DRIVER 这个宏是 stm32 库的开关也可以在其它地
方定义
接着切换到下图 :调试选择 j-link/j-trace
6
现在所有的设置都已完成
现在打开 main.c 文件找到 #include stm32_eval.h 然后删除
然后在点击 main.c 前面的加号 ”+”找到 stm32f10.h 双击进入文件 65 行选择一个芯片容量 (行号可通过
菜单 Tools-option-Editor-show line numbers)
此时终于可以点击编译按钮了矩形框里标识的 或者
在菜单选择 project-rebuild all 在或者用下图方法 :
弹窗保存窗口
7
这里可能会出现错误 , 这个错误说的是没有指定一款芯片
双击错误定位到错误的位置 ,然后找到第 65 行.你会发现有芯片定义但是全部是注释状态根据你的芯片的容量打开一个注释 .我的是 STM32F10X_CL
在编译一次 OK. 一个错误都没有 . 进入 main.c 文件主函数吧里面的内容都删除掉 ,只剩下一个 while(1),
以备后面移植 ucosIII 使用 ,如下图 :
此时其实我挺纠结是开始 ucos 移植还是先把个内核定时器配置好吧 .这个是 ucos的心跳 . 我们在定时具体的寄存器请参照 stm32 的数据手册
stm32 的 systick 中断配置好 . 想来想去还是先把 systick 这
main 函数里面加上两句程序用于初始化 systick 的 .systick
8
SysTick_CLKSourceCo
原创力文档

文档评论(0)