iar8.1不能选择使用use cmsis

iar8.1不能选择使用use cmsis,第1张

可以的,你是不是在已经打开一个工程的基础上,直接双击另一个工程文件*.eww呢,这样的确是会关闭掉前面一个工程,打开现在的工程。解决方法是,先双击桌面上的软件图标打开另一个IAR界面,然后在界面上点击“打开工程”来打开另一个工程。你试试吧,祝你成功!

第一步:下载标准外设固件库。

打到STM32F2xx Standard Peripherals library,目前最新的版本是V1.1.0,但建议下V1.0.0版本的,因为官网最新版本V1.1.0版本缺少cm3.c文件。

第二步:整理工程目录

在你电脑任何地方新建一目录,如APP,然后在APP目录下新建Project和User两目录。

接下来将之前下载并解压出来的标准外设固件库下的Libaries目录拷贝到APP目录下。

然后在Project目录下新建Obj和List两目录。

最后从之前解压的文件中选择一模板源文件复制到User目录下,这里举例为将.\STM32F2xx_StdPeriph_Lib_V1.0.0\Project\STM32F2xx_StdPeriph_Examples\GPIO

目录下的源文件代码复制到Usr目录下。

准备好这些后就可以进行下一步了。

第三步:创建MDK工程

打开MDK,点击Project->New uVision Project...,然后d出一对话框,要你选择工程目录,这里选择到APP/Project,并且将工程取名为Demo。点击Save后将d出一对话框,选择MCU类型,这里从STMicroeletronics下选择STM32F207VC。单击OK后d出一对话框,选择是否让MDK自动生成启动文件startup_stm32f2xx.s到工程,这里因为之前的目前下已有启动文件,因此这里选否。

第四步:添加工程文件

首先将工程将改名为Demo,然后再点击工具栏上的Manage Conponents...按键

接下来就是为工程添加组和源文件了,首先添加四个组:Lib,User,CMSIS,StartUp.

然后为各个组添加源文件:

Lib->添加APP\Libraries\STM32F2xx_StdPeriph_Driver\src下所有源文件,当然后也可以根据需要只选择部分文件。

User->添加APP\User目录下所有源文件,但system_stm32f2xx.c除外,因为此文件在接下来的CMSIS组中将会添加到。

CMSIS->添加APP\Libraries\CMSIS\CM3\CoreSupport目录下的core_cm3.c文件

添加APP\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx目录下的system_stm32f2xx.c文件。

StartUp->添加APP\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx\startup\arm目录下的startup_stm32f2xx.s文件.

这样一来就添加完所有文件了.

第五步:添加头文件

点击工具栏上的Target Options..按钮

Symbols下的Define:栏中加入USE_STDPERIPH_DRIVER宏,在Include Paths下添加包含路径,

注:宏USE_STDPERIPH_DRIVER在头文件stm32f2xx.h中可以找到,它的含义是打开标准外设固件库,当然后也可以在stm32f2xx.h修改使此宏打开,但不推荐这么做.                                    

然后设置输出目录与列表清单目录.

在Output选项卡下点击Select Folder for Objects..按扭,然后选择APP\Project\Obj目录做为输出目录.

在Listing选项卡下点击Select Folder for Listings...按扭,然后选择APP\Project\List目录做为列表清单目录.

到此时,所有工程设置基本设置完毕,接下来就是编译烧录了.

第六步:编译工程

点击编译,发现有错误,在main.c文件中注释掉#include "stm32_eval.h"就可以了.

1、集成在keil中,没有所谓移植概念。针对任何MCU都可以一键添加(试想一下,如果你将来用的不是STM32,那么移植OS是不是还是那么容易);

2、占用资源极小。大约5kB,而且针对cortex系列ARM官方优化,效率不言自明;

3、组件丰富。常用中间件USB/network/GUI/文件系统等,ARM官方已经准备好,只需要在keil中一键添加,同样没有移植概念;

4、仿真非常方便。在keil的debug模式中,轻松查看任务的CPU、内存占用,还有各任务的运行时间、运行状态,各任务之间如何抢占,非常直观,不需要像其他RTOS那样调用专用的查看函数;

5、CMSIS RTOS是ARM现在热推的物联网 *** 作系统mbedOS的基础,搞懂这个RTOS API,mbedOS更容易上手,物联网是大势所趋,ARM的在这个浪潮中的地位众所周知(软银收购ARM的核心原因),物联网以后估计会产生大量的相关工作机会;

6、使用极简单。再次提醒,CMSIS RTOS只是一套API,有兴趣的可以去研究它封装OS源码,没兴趣的,看看API拿来就用;

7、免费!这点和freeRTOS一样,比uc/oS更有潜力,不过freeRTOS是个人开源项目,后续升级维护缺乏商业模式,而ARM刚从软银那里搞来大笔钱,估计后续发展推广更为强劲,话说回来,如果freeRTOS真的非常优秀,ARM也可以对它进行封装。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11334127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存