
程序小白的我从安装mdk5.14搭建平台到更新至V5.25搭建平台,并配置相关参数,发现了一些问题,并查看一些博友的文章最终得以解决,以供以后如有类似情况可以查看解决。) K8 w; a6 H: Q4 U3 d: C . l* u" j+ d5 a+ a5 ?7 A, l. K 如图所示,建立相关文件夹。打开MDK,Project->New uVision Project " [ l b/ p) g w8 E( G5 _ ![]() j) t2 L1 t# f# M, m4 i ![]() ( Y6 g# }% D; B* U2 U+ o K % C; }. G7 M% i- l 此处注意的是需要选择相应的芯片,我们选择的是STM32F407ZGT6,一定要安装相应的pack安装包才可以建立工程文件。 接着,我们添加相应的启动代码(startup_stm32f40_41xxx.s)。1 n$ v( N/ x/ h& h8 t2 ] 启动代码的主要作用如下: 1.堆栈(SP)的初始化;! a: J9 O" b# c% k3 x5 ] : E0 J/ a5 o1 [; [ 2.初始化程序计算器(PC);; N: `0 a/ G& O3 B. J$ V 9 s& F& h- t; Y ] 3.设置向量表异常事件的入口地址;% R9 g9 L0 L& r1 b$ W3 a6 s$ `) L 4.调用main函数。% }, O8 n: ]! B 其中我们修改了启动文件的Reset_handler函数,该段代码主要加入了开启STM32F4硬件FPU的代码,以使能STM32F4的浮点运算单元。0 n F0 h9 S$ n' s( p, J0 r) v 其中的0xE000ED88为协处理器控制寄存器(CPACR)的地址,该寄存器的第20~23位用来控制是否支持浮点运算,此处全部设置为1,以支持浮点运算。 mdk的target Code Generation 选用Use FPU (V5.25 版本显示为 Single Precision) 。(mdk默认STM32F4外部晶振为12M,此处Xtal(Mhz)设置为8.0M) 5 E+ h5 y' x+ b' i$ q6 Z 然后在Target目录树打开Manage Project Items进行目录创建和文件添加。, n4 O& j% w. Y# `3 |# I/ N 接着就是设置OBJ输出目录,将生成的hex文件放置在OBJ目录里。Options for Target->Output->Create Hex File->Select Folder For Objects->找到OBJ文件夹->OK , k" F, d5 G8 z$ b6 e 头文件相关处理在Options for Target->C/C++选项中 Define : STM32F40_41xxx3 M6 X2 G9 d6 I3 W+ k% p5 y- e Optimization : -O0 8 X! R' h1 T2 X, e5 g Inlcude Paths 添加相应的头文件路径! i8 U2 r8 L7 s! Y" z7 B8 Q Jlink相关驱动建议调用以往支持的Segger目录。7 g4 W1 q1 _5 _' Z$ {% ~1 m # f8 C( n- X$ P+ R- `/ E . e+ H6 Q- w1 c' {2 g& n3 I* C |