最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255
本章教程为大家介绍如何创建MDK5工程,配置方法以及经常用到的一些配置项。
目录
第4章 STM32F407工程模板建立(MDK5)
4.1 初学者重要提示
4.2 第1步,创建工程文件夹
4.3 第2步,创建新工程
4.4 第3步,设置工程名和工程分组名
4.5 第4步,添加工程文件
4.6 第5步,Target Options配置
4.6.1 Device选项
4.6.2 Target选项
4.6.3 Output选项
4.6.4 Listing选项
4.6.5 User选项
4.6.6 C/C++选项
4.6.7 Asm选项
4.6.8 Linker选项
4.6.9 Debug选项
4.6.10 Utilities选项
4.7 第6步,最后一步验证是否创建成功
4.8 MDK的字体,多核并行编译,语法提示等设置
4.8.1 Tab Size设置
4.8.2 使能多核并行编译
4.8.3 字体设置
4.8.4 语法提示和语法检测功能
4.9 总结
创建一个文件夹,里面包含如下文件(直接将跑马灯例子的Project文件里面内容全部删除,然后整个工程复制进来即可)。
用于记录例程的修改记录和例子简介。
在第一章详细介绍从官网的下载方法。
这个是本章的重点,在这个文件夹里面再建立两个文件夹,MDK-ARM(uV5)文件夹里面用于存放MDK工程,EWARMv8文件夹用于存放IAR工程,方便以后创建IAR的工程。
这个是要用户提供的,开发板已经都提供好,bsp文件夹里面是开发板各个外设的驱动,segger文件夹是硬件异常分析代码。
这个是批处理文件,用于删除MDK和IAR工程编译后生成的obj和list临时文件。
打开MDK,选择Project ->New uVision Project:
工程名设置为project:
选择器件:STM32F407IGTx
点击OK后弹出如下界面,点击Cancel取消,当前我们还不使用RTE环境创建。
默认新建的工程是下面这样的:
打开Manage Project Items,双击Targer1修改名字为Flash,或者任何其它方便自己管理的名称,设置完毕后点击OK。
可以看到已经修改为Flash:
再次打开Manage Project Items,添加如下分组内容:
可以看到左侧工程列表已经更新:
添加方法跟第2步,第3步一样,可以通过Manage Project Items添加:
也可以直接双击工程列表里面的分组添加(注意文件类型里面推荐设置为ALL files所有文件):
main.c文件位于文件夹User,实现了一个简单的跑马灯效果。
bsp.c 位于路径\User\bsp,主要用于时钟和外设初始化。
bsp.h位于路径\User\bsp,此文件是各种头文件的集中汇总贴,方便管理。
bsp_led.c位于路径\User\bsp\src,用于LED驱动。
bsp_key.c位于路径\User\bsp\src,用于按键驱动。
bsp_timer.c位于路径\User\bsp\src,用于软件定时器组和微妙级单次延迟。
bsp_fmc_io.c位于路径\User\bsp\src,用于IO扩展,这里LED要用到。
bsp_uart_fifo.c位于路径\User\bsp\src,用于8串口FIFO驱动。
stm32f4xx_it.c位于路径User\bsp,用于部分系统中断服务程序。
startup_stm32f407xx.s 位于路径\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm,主要用于堆和栈空间设置,中断向量表也在这个文件。
stm32hf4xx_hal_conf.h位于路径\User\bsp,主要用于HAL库的配置。
其它文件路径:\Libraries\STM32F4xx_HAL_Driver\Src,用到什么外设添加什么驱动文件即可,有些外设驱动跟DMA也有关联,直接添加进来即可。
system_stm32f4xx.c位于路径\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates,主要用于复位RCC相关寄存器和中断向量表位置设置。
这两个文件位于路径:\User\segger\HardFaultHandlerMDK,主要用于硬件异常分析。
这两个文件位于Doc文件夹,主要用于说明例程的功能和更新记录。
MDK的配置基本都集中在Target Options对话框里面:
这个选项不用管,因为我们在创建的时候已经选择了STM32F407IGTx
这个选项基本用不上,可以不用管,主要是用来指定编译之前和编译之后执行的用户程序。对于本教程配套的例子来说在这里添加了一个批处理功能,用来实现Objects文件夹里面的hex文件复制到路径Project\MDK-ARM(uV5)里面,方便查找。
1、预定义宏
USE_HAL_DRIVER 表示使用HAL库。
STM32F407xx 表示使用F407系列。
USE_FULL_LL_DRIVER表示使用LL库。
2、选择0级优化,优化等级低,方便调试。
MDK之前做的应用笔记:http://www.armbbs.cn/forum.php?mod=viewthread&tid=1794 。
选项One ELF Section per Function用于删除工程中没有用到的冗余函数。
3、使用C99规范,在第9章有介绍。
4、添加路径,把用到的头文件路径包含进来,点击最右侧的小按钮,弹出如下界面进行添加即可:
这个选项用不到,不用管。
这个选项用不到,不用管。
具体的调试设置在下一章有详细说明,本章主要是保证创建的工程能够正常编译。
这个选项主要用于编程工具选择,大家根据自己用的那种下载器选择相应型号即可。
Update Target before Debugging表示调试前更新芯片的程序。
点击全编译:
编译结果:0错误,0警告,编译成功。
这里将MDK经常用到的设置做个说明。
教程配套例子的Tab size要设置为4,否则代码显示不整齐:
选择此图标:
弹出的窗口里面设置Tab size为4:
电脑有几个核,都选上,加快编译速度。
选择此图标:
我这里是四核:
推荐大家用下微软雅黑,而且可以防止复制粘贴的时候出现乱码问题,字体下载在此贴:http://www.armbbs.cn/forum.php?mod=viewthread&tid=2293 。
安装微软雅黑的时候要注意,电脑端默认自带了一个微软雅黑,安装的时候会出现字体是躺着的。
选择此图标:
选择中文简体:
选择安装微软雅黑字体:
效果如下:
选择此图标:
MDK的语法提示和语法检测功能还行,大家可以根据需要开启:
对于初学者来说,务必要实际动手操作一遍,以后移植其它程序代码大有裨益。