目录
前言
该文档主要讲解内容有:
- 在Keil环境下新建工程——基于寄存器版本
- 程序下载方法1——ISP串口下载
- 程序下载方法2——JLINK程序下载
- JLINK在线调试+软件调试方法
一、新建工程
- 建立存放工程的文件夹:包含三部分

- 打开keil软件(MDK5),点击新建工程:

- 保存新建工程
找到刚才建立的工程文件种的USER文件,选中并保存:

- 选择芯片型号
这里本人使用的信号型号为:STM32F407ZGT6,找到点击ok选择即可。
如果没有找到相应的芯片请安装支持包:安装Keil.STM32F4xx_DFP.1.0.8.pack 资源链接:

- 添加功能组件
这里会提示你是否添加功能组件,由于这里是建立工程,先不需要添加直接关闭即可。

- 建立好的工程目录

- 启动文件设置
关于启动文件详细介绍推荐大家看一下链接里的介绍,非常细致极力推荐:
启动代码是一段和硬件相关的汇编代码,主要作用:1、堆栈(SP)初始化;2、初始化程序计数器(PC);3、设置向量表异常事件的入口地址;4、调用函数main函数。
ST公司对于STM32F40X和STM32F41X系列统一使用:startup_stm32f40_41xxx.s启动文件。
由于使用STM32F407ZGT6开发板因此上述启动文件正常使用,但是需要对启动文件做一下修改,这里将寄存器版本代码用不到的代码屏蔽掉,主要是Reset_Handler函数修改。
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
;IMPORT SystemInit ;寄存器代码,不需要在这里调用 SystemInit 函数,
;故屏蔽掉,库函数版本代码,可以留下
;不过需要在外部实现 SystemInit 函数,否则会报错.
IMPORT __main
LDR R0, =0xE000ED88 ;使能浮点运算 CP10,CP11
LDR R1,[R0]
ORR R1,R1,#(0xF << 20)
STR R1,[R0]
;LDR R0, =SystemInit ;寄存器代码,未用到,屏蔽
;BLX R0 ;寄存器代码,未用到,屏蔽
LDR R0, =__main
BX R0
ENDP
上述代码:
1、开启了STM32F4硬件FPU的代码,以使能浮点运算单元。其中0xE000ED88就是协处理器控制寄存器(CPACR),该寄存器第20~23位用来控制是否支持浮点运算,这里全部设置为1。
2、由于使用的是寄存器版本的代码,这里屏蔽了SystemInit函数。
由于使能了FPU,在MDK里也需要对FPU进行设置,否则代码无法运行,设置方式:打开Options for Target,如图进行设置
由于开发板上晶振为8MHz所以这里将其改为8

- 添加启动文件
将启动文件startup_stm32f40_41xxx.s启动文件拷贝到刚刚新建立的USER文件里面。

- 编译启动代码
1、目标编译,只编译打开的文件;2、全部编译,编译整个工程文件(事件较长)

本文档详细介绍了在Keil环境下新建STM32F407ZGT6工程的步骤,包括ISP串口和JTAG/SWD程序下载方法。内容涵盖新建工程、设置启动文件、系统代码添加、编译与下载配置,以及串口下载软件FlyMcu的使用。此外,还解析了JTAG/SWD调试原理,讲解了硬件连接、模式配置、程序下载及在线调试过程。
https://download.youkuaiyun.com/download/ARM_qiao/85498259
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



