赞
踩
手中项目基于Keil MDK 5.26版本的平台建立,突然想更新平台、编译器版本,毕竟AC6在2015年就推出了,编译速度的提升、代码量的优化是有目共睹的,另外想要更新的一个重要原因是据说AC6对于浮点数运算有优化,刚好目前项目下位机驱动中存在大量浮点运算。于是进行了尝试。
然而更新到AC6后,程序始终存在死机问题,运行后就进入HardFault_Handler中断函数,导致死机。排查了堆栈溢出或其他内存相关问题,暂时没解决,项目比较紧,没在这上面死抠,于是简单更新了下位机软件、CMSIS、DSP、标准库函数文件等版本,这些文件版本从不同地方下载的话使用起来容易存在版本不兼容等问题,较为凌乱,于是在此简单记录。
首先更新Keil MDK软件版本为5.40 (可保持更新),官网下载地址:https://www.keil.com/download/product/
安装破解方法不再赘述,使用时需注意:
1、Keil安装目录\Keil\STM32F4xx_DFP\2.17.1\CMSIS\SVD
该版本的MDK不再在上述目录中生成SFR文件,会导致Debug时无法显示外设寄存器,解决方法:keil无法查看外设寄存器(生成SFR文件)
2、打开以前写的程序,若出现注释中文乱码、无法修改程序字体等问题,需在记事本中打开该文件,另存为UFT-8格式即可解决。
3、需单独安装AC5编译器,方法:Keil MDK5.37以上版本自行添加AC5(ARMCC)编译器的方法
1、CMSIS ( Cortex Microcontroller Software Interface Standard ),翻译过来是ARM Cortex™ 微控制器软件接口标准 。
2、CMSIS使用5.9.0版本==(6.0.0版本开始不再支持AC5编译器,若非要使用AC6,不要更新CMSIS文件)==,官方下载地址:https://www.keil.arm.com/packs/cmsis-arm/versions/
3、CMSIS文件位于:Keil安装目录\ARM\CMSIS\5.9.0\CMSIS\Core\Include,将Include文件夹直接拷贝到自己的工程中即可。
4、DSP库函数使用CMSIS 5.9.0版本==(需跟随CMSIS的版本使用)==,会包含在2给出的下载包中。
文件目录:Keil安装目录\ARM\CMSIS\5.9.0\CMSIS\DSP,主要使用其中的Include、Source两个文件夹。
STM32标准外设库使用1.9.0版本==(可保持更新)==,官方下载地址:https://www.st.com.cn/zh/embedded-software/stsw-stm32065.html
其中需修改:
1、STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
该目录下的stm32f4xx.h文件,屏蔽11581-11585行,这些在1.8.0版本中并不存在且不影响使用,若不屏蔽会有很多警告;
2、STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\STM32F4xx_StdPeriph_Templates
该目录下的stm32f4xx_it.c文件,屏蔽137行,用不到。
3、STM32F4xx_DFP芯片包使用2.17.1版本==(可保持更新)==,下载地址:https://www.keil.arm.com/packs/stm32f4xx_dfp-keil/
安装在Keil的安装目录即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。