MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第1张图片

目前很多初学STM32的朋友都还是在使用“STM32xxx_StdPeriph_Lib”标准外设库,但很多朋友打开库提供的工程之后,都不理解工程里各Targets及其配置。

1

写在前面

ST官方提供的“标准外设库”里面project下面提供了【例程源代码】和【工程模板】,如下图:

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第2张图片

其实,很多朋友都知道,在工程模板(Template)里面有建好的工程,如下图:

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第3张图片

但很多朋友直接双击打开工程,看到工程文件有时*,又是红色的乱七八糟”,就不知所措了。

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第4张图片

提示:可能安装MDK-ARM V5版本打开某些库(如STM32F),会出现如下图消息,点击"Migrate to...",再“确定”即可。

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第5张图片

2

如何使用例程

只需要拷贝例程(Examples)里面的源代码,替换掉Template)里面的源代码文件,选择对应芯片,编译、下载即可

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第6张图片

一般有这么几个源文件:

main.c

stm32fxxx_conf.h

stm32fxxx_it.c

stm32fxxx_it.h

system_stm32fxxx.c

选择对应工程Target(目标):

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第7张图片

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第8张图片

至于上面那些工程文件带“*”,带“钥匙”等各种图标的,实际它都有它的意思,可以参看Keil帮助文档,或者查看我的另一篇文章【Keil综合(02)_工程窗口各项图标描述】,里面有描述各个图标的意思。

3

什么是工程目标(Target)

这个问题其实我在Keil系列教程里面有提及,估计很多人到现在也没明白。在我的【Keil(MDK-ARM)系列教程(三)_工程目标选项配置(Ⅰ)】中有讲述“工作空间、工程、目标”,它们的各级关系如下图:

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第9张图片

 Project -> Manage -> Project Items:会出现如下图:

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第10张图片

像上面STM32100E-EVAL、STM3210E-EVAL_XL、STM32100B-EVAL等就是一个一个的目标。

4

什么是工程目标选项(Option)

Project -> Options for Target ···如下图:

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第11张图片

上图就是目标“STM32100E-EVAL”的配置选项,一般我们工程中重要的配置就集中在这里。

5

回归主题

上面说了这么多,其实回到主题,我们选择不同的目标,打开对应目标的选项,会发现其实里面有些配置是不一样的。

除了目标选项配置的不一样,还有就是前面的图标,也就是说,有些文件是没有在工程目标中编译,或者说没有包含在工程目标中,具体看我文章【Keil综合(02)_工程窗口各项图标描述】,里面各图标的含义。

至此,细心看过的朋友应该能明白什么是目标,及选项了吧。

6

最后

关于MDK-ARM的内容还有很多,比如:如何新建多个工程目标,如何新建多个工程(工作空间)等等,或许我在后面还应该会提及,看是否有朋友需要了解,可以留言。


微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,查看更多精彩内容。

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第12张图片

长按识别二维码 关注

0?wx_fmt=png

原创不易,如果内容对你有帮助,点个赞也是对我的支持和鼓励!

MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?_第13张图片

你可能感兴趣的:(MDK-ARM工程中各目标(Targets)之间选项(Option)配置有什么区别?)