MDK-ARM(Keil uVision V4.72)上STM32开发环境配置

以前我都是在Eclipse上面和arm-none-eabi交叉编译环境来开发STM32应用程序的。

现在改用MDK-ARM比较专业的工具搭建一个开发环境。

新建一个指定STM32微控制器型号的工程:

MDK-ARM(Keil uVision V4.72)上STM32开发环境配置_第1张图片


为了生成编译文件,勾选如下复选框:

MDK-ARM(Keil uVision V4.72)上STM32开发环境配置_第2张图片


配置编译项:

STM32F4XX, USE_STDPERIPH_DRIVER

添加库编译符号,和语言/代码生成级别

MDK-ARM(Keil uVision V4.72)上STM32开发环境配置_第3张图片


其中最关键的头文件包含目录:

MDK-ARM(Keil uVision V4.72)上STM32开发环境配置_第4张图片

首先要添加包含工程目录,因为固件库会查找 stm32f4xx_conf.h 配置头文件,中断服务例程实现文件可能也会调用main.h中的函数。

再添加包含 xxxy\STM32F4_Lib\Libraries\CMSIS\Include 目录,CMSIS Core Support and CMSIS DSP Include Files.

再添加包含 xxxy\STM32F4_Lib\Libraries\CMSIS\Device\ST\STM32F4xx\Include 目录,包含STM32F4xx系列处理器的设备描述系统函数。

最后添加包含 xxxy\STM32F4_Lib\Libraries\STM32F4xx_StdPeriph_Driver\inc 目录,包含所有STM32F4xx系列处理器的标准外设驱动。


接下来配置连接器,在Misc controls中输入  --entry Reset_Handler --first __Vectors    如下图:

MDK-ARM(Keil uVision V4.72)上STM32开发环境配置_第5张图片

如果省略此步,会在应用程序编译完后链接时发生错误:

Error: L6967E: Entry point (0x08000000) points to a Thumb instruction but is not a valid Thumb code pointer.


//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在工程中创建如下文件组:

MDK-ARM(Keil uVision V4.72)上STM32开发环境配置_第6张图片

CMSIS文件组下面“生成”STM32的系统时钟配置等体系结构设置文件。

MSK-ARM文件组下面“添加”STM32的中断向量配置等系统初始化信息。

STM32F4xx_StdPeriph_Driver文件组下面“引用”当前应用程序需要用到的外设所依赖的驱动。

User文件组下面“编写”当前应用程序具体实现,包括应用程序所占用的中断服务例程。


实际需要关注和编写的文件只有如下几个:

system_stm32f4xx.c 系统时钟配置文件,可以通过 STM32F4xx_Clock_Configuration_V1.0.1.xls 生成。

stm32f4xx_conf.h  应用程序配置文件,固件库通过其找到应用程序需要调用的外设驱动函数。

main.h 应用程序的功能函数定义,其定义的函数可能在中断实现stm32f4xx_it中被调用。

main.c 应用程序的功能函数实现,包括整个应用系统的入口函数。

stm32f4xx_it.h 应用程序的中断函数声明,其中断函数原型的声明可以在 startup_stm32f40xx.s 中找到。

stm32f4xx_it.c 应用程序的中断函数的具体实现。

startup_stm32f40xx.s 中断向量表、堆栈指针、系统时钟、外部SRAM等基础配置,

该文件为汇编文件,在固件库 xxx\STM32F4_Lib\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 目录下可以找到。


OK,接下来程序就可以正常编译并调试了。但是还有一个警告目前搞不明白是什么原因。

MDK-ARM(Keil uVision V4.72)上STM32开发环境配置_第7张图片


你可能感兴趣的:(MCU/ARM)