程序小白的我从安装mdk5.14搭建平台到更新至V5.25搭建平台,并配置相关参数,发现了一些问题,并查看一些博友的文章最终得以解决,以供以后如有类似情况可以查看解决。
如图所示,建立相关文件夹。打开MDK,Project->New uVision Project
此处注意的是需要选择相应的芯片,我们选择的是STM32F407ZGT6,一定要安装相应的pack安装包才可以建立工程文件。 接着,我们添加相应的启动代码(startup_stm32f40_41xxx.s)。
启动代码的主要作用如下:
1.堆栈(SP)的初始化;
2.初始化程序计算器(PC);
3.设置向量表异常事件的入口地址;
4.调用main函数。
其中我们修改了启动文件的Reset_handler函数,该段代码主要加入了开启STM32F4硬件FPU的代码,以使能STM32F4的浮点运算单元。
其中的0xE000ED88为协处理器控制寄存器(CPACR)的地址,该寄存器的第20~23位用来控制是否支持浮点运算,此处全部设置为1,以支持浮点运算。
mdk的target Code Generation 选用Use FPU (V5.25 版本显示为 Single Precision) 。(mdk默认STM32F4外部晶振为12M,此处Xtal(Mhz)设置为8.0M)
然后在Target目录树打开Manage Project Items进行目录创建和文件添加。
接着就是设置OBJ输出目录,将生成的hex文件放置在OBJ目录里。Options for Target->Output->Create Hex File->Select Folder For Objects->找到OBJ文件夹->OK
头文件相关处理在Options for Target->C/C++选项中
Define : STM32F40_41xxx
Optimization : -O0
Inlcude Paths 添加相应的头文件路径
Jlink相关驱动建议调用以往支持的Segger目录。