使用ST-Link和Keil进行嵌入式系统下载调试
使用ST-Link和Keil进行嵌入式系统下载调试
本文详细介绍了如何使用ST-Link和Keil进行嵌入式系统的下载和调试。从设备配置、目标设置到调试选项的设置,文章通过图文并茂的方式,为读者提供了全面的技术指导。
背景
前面介绍了如何安装ST-Link驱动,这里继续介绍如何配置Keil的工程属性,使用ST-Link进行下载和调试。
Device
前面介绍了如何在Keil下安装Py32(冉普)的BSP驱动,安装完之后,在Device列表下面就有Py32器件,我们这里使用的是PY32F040XB型号的CPU。
Target
这个页面有3个选项需要关注:
- Use MicroLib:这个选项使工程在链接的时候,使用精简的lib库,减少程序版本的大小;
- IROM:这个指定了Flash区间,告诉链接器将可加载的代码和数据链接到哪里;
- IRAM:这个指定了RAM区间,告诉链接器将可读写的数据段,包括堆和栈,应该链接到哪里;
IROM和IRAM指定的是当前这个工程需要占用的Flash和RAM大小,不需要指定到整个Flash和RAM区间。
Output
这个页面的属性没有修改,保持的默认值;
Listing
这个页面也保持默认值,没有做修改;
User
为了生成bin文件,增加了一个post build操作,下图中的命令会在工程编译生成的axf文件的基础上生成bin文件。
这个bin文件是纯粹的可加载的代码和数据,一般对外发布的都是二进制bin文件,或者其他格式的,针对Flash的二进制文件;
C/C++
这个页面保持的默认值,没有做修改;
注意:这里有优化等级的选项,在调试阶段可以设置-O0,即关闭优化,这样方便使用仿真器进行单步调试,功能调试好了之后,可以提高优化等级。
Asm
这个页面保持默认值,没有做修改;
Linker
这个页面保持默认值,没有做修改;
Debug
使用ST-Link进行调试,需要正确安装驱动,且连接好仿真器与CPU的管脚,这里才会有ST-Link Debugger的选项可供选择;
Run to main:这个选项是否勾选不影响调试,如果勾选这个,在加载完成之后,CPU会从entrypoint开始运行,在main函数处停止下来;如果你想调试观察启动代码,就不要选择这个选项;
点击Settings,会弹出高级设置选项,如下图所示;
- Erase full Chip:在用仿真器下载的时候,会先擦除整个Flash;
- Program & Verify:在点击下载的时候,会下载工程的可加载代码和数据;
- RAM for Algorithm:指定了RAM区间;
- Programming Algorithm:这个指定了你要操作(擦除和编程)的Flash区间,可以和你的工程的可加载代码和数据保持一致;大家可以自己调整这个区间,看看点击下载按钮的时候ST-Link会有什么反映;
总结
这里的设置属性较多,大部分都不需要修改;需要修改的大部分集中在指定RAM和Flash区间的参数,大家可以尝试修改成不同的值,观察工程的编译结果,观察下载的时候,仿真器的行为有什么变化。后面会给大家介绍如何使用仿真器进行加载和调试。