程序小白的我从安装mdk5.14搭建平台到更新至V5.25搭建平台,并配置相关参数,发现了一些问题,并查看一些博友的文章最终得以解决,以供以后如有类似情况可以查看解决。' U. R `: Z) w 如图所示,建立相关文件夹。打开MDK,Project->New uVision Project' L! Z: P; ?9 ]7 s0 T) Q; ]' h 8 S# f3 f7 `' e3 m/ J % ^6 S- `, v, n" U3 P. q/ P& S 此处注意的是需要选择相应的芯片,我们选择的是STM32F407ZGT6,一定要安装相应的pack安装包才可以建立工程文件。 接着,我们添加相应的启动代码(startup_stm32f40_41xxx.s)。 ! X: D% K9 o! d8 n; }7 V4 r6 K 启动代码的主要作用如下: # u8 j0 {( P) Z) ]- A1 `7 j' Z : | M' Q0 `+ }- M* n6 y. c' A 1.堆栈(SP)的初始化; c: k2 i# s/ h; P7 h; f; m 1 i; M5 X6 U0 V2 { 2.初始化程序计算器(PC); 2 p1 f% L2 V# ^, o+ h 3.设置向量表异常事件的入口地址; 4.调用main函数。 7 t. Y9 ]0 a' q$ m7 @ 其中我们修改了启动文件的Reset_handler函数,该段代码主要加入了开启STM32F4硬件FPU的代码,以使能STM32F4的浮点运算单元。2 r$ |8 A: B, t5 T2 q7 n$ d# m$ p' q 其中的0xE000ED88为协处理器控制寄存器(CPACR)的地址,该寄存器的第20~23位用来控制是否支持浮点运算,此处全部设置为1,以支持浮点运算。 mdk的target Code Generation 选用Use FPU (V5.25 版本显示为 Single Precision) 。(mdk默认STM32F4外部晶振为12M,此处Xtal(Mhz)设置为8.0M)9 x& X8 v- U* K9 Q; N& R 然后在Target目录树打开Manage Project Items进行目录创建和文件添加。6 s7 v1 e7 h0 K . M( z6 V- [; ?' v1 U1 D 接着就是设置OBJ输出目录,将生成的hex文件放置在OBJ目录里。Options for Target->Output->Create Hex File->Select Folder For Objects->找到OBJ文件夹->OK6 R. }# R4 P. Q+ X 头文件相关处理在Options for Target->C/C++选项中 Define : STM32F40_41xxx' k, N+ m, f. c3 ` , [& e1 p: r* s; [% ]! v1 g+ u: d Optimization : -O0 + x ^! E8 l) U/ z2 W1 J0 d Inlcude Paths 添加相应的头文件路径 Jlink相关驱动建议调用以往支持的Segger目录。 ) ^4 `; K, `+ y# a + \4 _8 l3 a5 q S9 J# {8 R |
STM32固件库分享,超全系列整理
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)
基于STM32F407的FreeRTOS任务的挂起与恢复(3)
基于STM32F407的FreeRTOS任务的创建与删除经验分享(2)
基于STM32F407的FreeRTOS环境搭建经验分享(1)