从零开始创建uCosIII项目(一):建立IAR工程

准备工作:

一、IAR的下载及破解

http://blog.sina.com.cn/s/blog_6ad165790101dryx.html

二、STM32F10x_StdPeriph_Lib_V3.5.0

项目中用的是F103

三、uCosIII文件

这里不用官方的内核源文件,需要另外两个模板工程

AN-IAR-Cortex-M3-OS3.zip(网页链接名是‘µC/OS-III Project Template for Cortex-M3 on IAR Embedded Workbench’):

http://micrium.com/downloadcenter/download-results/?searchterm=ft-application-note&supported=true

和‘uCOS-III V3.03.01 uCOS-II V2.92.07在STM32F1移植.zip’中的Micrium_uC-Eval-STM32F107_uCOS-III.zip

http://pan.baidu.com/share/home?uk=286563520#category/type=0(这里下载)


建立IAR工程

现在的IDE都有workspace概念,在IAR中的工程肯定在一个workspace下,一个workspace下可以有多个工程。

新建项目时,可以先建项目也可以先建workspace,保存时需要各保存一次。选择建立一个空项目。

项目文件的归类一定要有规范,方便自己也方便他人。比如我的项目文件排放如下:

从零开始创建uCosIII项目(一):建立IAR工程_第1张图片

Doc:存放项目文档。比如芯片资料,uCos移植手册。

History:存放项目更新版本,遇到问题时,可以对比查找原因。

Libraries:STM32标准库。

Project:工程文件。如果用不同IDE管理源文件,那多一级文件目录还是很有必要的。ewp和eww文件就是保存在Project\EWARMv5文件夹下。

Sample:参考的工程。比如上面提到的两个模板工程。

User:自己编写的文件。

uCOS-III:操作系统。


接下来着重讲述uCOS-III中的文件

从零开始创建uCosIII项目(一):建立IAR工程_第2张图片

1、将Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software下的三个文件夹拷贝过来。uC-CPU\ARM-Cortex-M3改成uC-CPU\Ports,c和h文件放在Source文件夹内。另外两个uC-LIB和uCOS-III内的文件照此排放。拷贝Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\uCOS-III下的cpu_cfg.h和lib_cfg.h两个文件放到对应Cfg文件夹下。拷贝Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\BSP\IAR下的STM32_FLASH.icf文件到Project\EWARMv5下。

2、将AN-IAR-Cortex-M3-OS3\Micrium\Software\uCOS-III\Templates\IAR\Micrium\uCOS-III-Cortex-M3下的app.c、app_cfg.h和includes.h放到User目录下,os_app_hooks.c、os_app_hooks.h、os_cfg.h、os_cfg_app.h四个文件放到uCOS-III\Cfg文件夹下。关于AN-IAR-Cortex-M3-OS3\Micrium\Software\uCOS-III下的TLS文件可以不用拷贝。


文件的物理位置放好后,其在IAR中对应的排放参照下图所示:

从零开始创建uCosIII项目(一):建立IAR工程_第3张图片

接下来是工程设置
从零开始创建uCosIII项目(一):建立IAR工程_第4张图片
从零开始创建uCosIII项目(一):建立IAR工程_第5张图片
从零开始创建uCosIII项目(一):建立IAR工程_第6张图片
从零开始创建uCosIII项目(一):建立IAR工程_第7张图片
$PROJ_DIR$\..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
$PROJ_DIR$\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc
$PROJ_DIR$\..\..\User
$PROJ_DIR$\..\..\User\BSP
$PROJ_DIR$\..\..\μCOS-III\uC-CPU\Cfg
$PROJ_DIR$\..\..\μCOS-III\uC-CPU\Ports\IAR
$PROJ_DIR$\..\..\μCOS-III\uC-CPU\Source
$PROJ_DIR$\..\..\μCOS-III\uC-LIB\Cfg
$PROJ_DIR$\..\..\μCOS-III\uC-LIB\Ports\ARM-Cortex-M3\IAR
$PROJ_DIR$\..\..\μCOS-III\uC-LIB\Source
$PROJ_DIR$\..\..\μCOS-III\uCOS-III\Cfg
$PROJ_DIR$\..\..\μCOS-III\uCOS-III\Ports\ARM-Cortex-M3\Generic\IAR
$PROJ_DIR$\..\..\μCOS-III\uCOS-III\Source
注意不能将Libraries\CMSIS\CM3\CoreSupport\core_cm3.h文件包含进来
从零开始创建uCosIII项目(一):建立IAR工程_第8张图片
icf文件的作用及设置请自行查阅
从零开始创建uCosIII项目(一):建立IAR工程_第9张图片
从零开始创建uCosIII项目(一):建立IAR工程_第10张图片
从零开始创建uCosIII项目(一):建立IAR工程_第11张图片

现在可以编译一遍了。最后会报5个错误如下
从零开始创建uCosIII项目(一):建立IAR工程_第12张图片
下一篇将讲解如何顺利编译完成。

看我大招
工程源码点击打开链接


你可能感兴趣的:(嵌入式开发)