本帖最后由 zhixiaoyuhong 于 2016-4-27 15:49 编辑
上回说到收到 开发板之后的评测,一块板子在手里就是用来玩的。这回来说一说玩之前的准备工作:MDK & IAR开发环境搭建。 自从上次电设结束再也没有写过一条m3的代码,甚至连mdk都没有打开过。一直在搞linux呢,这次用了m0的板子,又得用回mdk了,打开keil mdk4,发现里面的器件没有m0核的 STM32f030系列片子,要想开发m0,又想用ide,就要么用IAR,要么用mdk5了。这篇我会试着在两种环境下建立工程模板。请听讲解。。。 大半年没有用mdk建立过cortex-mx的工程了,话说st的cortex-mx系列由于内部寄存器量太多,用寄存器开发稍有难度,所以st提供了完善的固件库,也正因为这固件库,建立工程时,就不能像用寄存器开发那样只包含一个头文件就ok了,固件库里的源文件不少,项目里要用到那些外设,就包含哪些外设源文件就可以了,为了方便,我们还是在工程模板中将所有源文件、头文件都包含了吧。本篇所介绍的软件版本分别为:mdk5.18、IAR for ARM7.40。文章会附上相关软件下载链接,仅作为学习交流之用,请勿作他用。 keil5的器件管理和以往版本的keil都不同,keil5采用元器件库的形式进行元件管理。
安装好mdk5.18之后,可以通过软件的
Pack Installer 联网下载相关元件库,也可以导入已经下好的离线元件库,最新版本的元件库可以通过如下链接下载:http://www.keil.com/dd2/Pack/#/eula-container
目前为止,关于stm32f0系列的最新器件库为:Keil.STM32F0xx_DFP.1.5.0.pack 安装完成之后,如果采用st的固件库进行开发,还需要下载st关于f0系列芯片的固件库,目前最新版本的固件库为:STM32F0xx_StdPeriph_Lib_V1.5.0 打开mdk软件,跟着图走:
然后选择需要保存工程的目录,然后:
按照图中选择芯片型号然后OK。然后keil5居然会弹出一个对话框,内有详细的芯片配置信息,如下:
为了以后拓展工程方便,使用1.5的固件库版本,所以此处不使用mdk默认创建的一切文件,所有工程需要的文件,我们都使用1.5版本固件库中带的。此处取消,略过。 进入到mdk之后,点击这个图标
,进入到工程目录管理对话框,使用这个对话框,可以分类管理工程的文件,在这里插一句,mdk的工程文件管理不如IAR的好,IAR不但可以分类,而且还可以分层。以后介绍。在对话框里创建如下目录:
然后回到存放工程的文件夹下分别创建上面这三个文件夹,如下:
图中其它文件和文件夹为mdk创建。。。这不需要我说吧。。。
从固件库的如下目录中STM32F0xx_StdPeriph_Lib_V1.5.0LibrariesSTM32F0xx_StdPeriph_Driver,将inc和src两个目录拷到FWLib文件夹下,这个文件夹我们就用来放固件库的源文件,这些文件一般不需要修改。从固件库中,将一下文件拷贝到CMSIS文件夹中
,这些文件的分布可能比较乱,需要从固件库中搜索才能找得到。在这里向大家推荐一款灰常快速搜索文件的软件,Everything,具体使用方法自己摸索,这个软件的搜索速度甩windows自带搜索几十条街,甚至可以和linux下的find或grep相比,扯远了,回归正题。。。 注意啊,这里的启动文件也就是 .s 文件不要从iar的目录中拷贝,要从arm的目录下拷贝!。。。 在User文件夹下创建一个文件main.c,添加到mdk的User目录下,至此,mdk的工程窗口应该是这样:
在main.c中随便输入点东西,为了方便测试编译:
完成之后,还有2个地方需要设置一下:
第一处设置的是2个编译开关,用来说明使用的是stm32f030芯片,使用了固件库编程。第二个地方是指定编译器的头文件寻找目录,因为我们在FWLib和CMSIS中有很多工程要用的头文件嘛,而且,以后肯定也会在User下创建很多头文件。所以这里也是很重要的。 以上搞定之后就可以点编译按钮试一试了。。。 由于大半年没有搞过stm32了,所以用mdk创建这个工程时遇到好多问题,最后还没有解决,一会是头文件不对,一会是启动文件不对,有一会是找不到变量和函数,花了接近两个小时还没有解决,宿舍也没有网,也没法查问题,眼瞅着一晚上就要这么没了。实在没有办法,就换成了IAR平台中建立工程,IAR中一次就搞定了。然后就又退回到mdk中重新搞,搞了两次,也搞定了,也不知道之前遇到的问题怎么没了。。。好奇怪。。。。哈哈。。。。对了,以前用keil好像路径中有中文没问题,用mdk5好像就不行,没仔细研究,这个大家伙在mdk报错的时候注意考虑下,以后我再建立个工程看看。。。 其实写到这里,一篇帖子应该也已经挺长的了,可以结束了,但由于前篇预告了,要使用MDK和IAR两种软件建立工程,咱也不能食言。下面介绍IAR创建工程:
打开iar,这里使用的是iar for arm7.4,下载请去iar官网,注册机链接为:http://download.csdn.net/detail/zhixiaoyuhong/9171245。这个注册机可以破解iar for arm7.6。跟着照片走:
建立工作空间之后就在project菜单下建立工程,然后也创建如图所示的目录结构,这里说下,iar支持分层管理,看看FWLib下的inc和src可以分层,mdk中就不行。。。
完事之后将文件像mdk那样将从固件库拷贝的文件加入到各个文件夹下,注意这时候的启动文件,就需要拷贝固件库中iar目录下的,而不能从arm目录拷贝了。
右击上图中加粗的黑色标题。选择op tions,如图设置:
注意将第一个Ceneral Options选项卡中的器件选择成STM32F030x8。要不然编译时候报错。。。
搞定之后,就创建一个main.c,写点内容:
点击编译,看看效果吧。由于加入了所有的固件库源文件,编译起来可以看出mdk和iar的速度差距还是挺大的,不过将mdk的浏览信息选项勾掉可以大幅度提高mdk的编译速度,但就不利于分析代码了。从编译速度上来说,iar直接拍飞mdk了。。。 唉,好久不搞 单片机了,手生得很,建个工程都花了两个半小时多,看来有些东西你再熟悉,也会忘啊。。。
至此,MDK & IAR建立工程篇结束。下一篇:永远的排头兵:LED—我要亮起来。。。
|