背景
前面介绍了如何安装stlink驱动,这里继续介绍如何配置keil的工程属性,使用stlink进行下载和调试。
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文件,增加了一个psot build操作,下图中的命令会在工程编译生成的axf文件的基础上生成bin文件。
这个bin文件是存粹的可加载的代码和数据,一般对外发布的都是二进制bin文件,或者其他格式的,针对flash的二进制文件;
c/c++
这个页面保持的默认值,没有做修改;
注意:这里有优化等级的选项,在调试阶段可以设置-O0,即关闭优化,这样方便使用仿真器进行单步调试,功能调试好了之后,可以提高优化等级。
Asm
这个页面保持默认值,没有做修改;
Linker
这个页面保持默认值,没有做修改;
Debug
使用stlink进行调试,需要正确安装驱动,且连接好仿真器与cpu的管脚,这里才会有ST-Link Debugger的选项可供选择;
Run to main:这个选项是否勾选不影响调试,如果勾选这个,在加载完成之后,cpu会从entrypoint开始运行,在main函数处停止下来;如果你想调试观察启动代码,就不要选择这个选项;
点击Settings,会弹出高级设置选项,如下图所示;
Erase full Chip:在用仿真器下载的时候,会先擦除整个flash;
Program & Verify:在点击下载的时候,会下载工程的可加载代码和数据;
RAM for Algorith:指定了ram区间;
Programing Algorith:这个指定了你要操作(擦查和变成的flash区间)的flash区间,可以和你的工程的可加载代码和数据保持一致;大家可以自己调整这个区间,看看点击下载按钮的时候stlink会有什么反映;
总结
这里的设置属性较多,大部分都不需要修改;需要修改的大部分集中在指定ram和flash区间的参数,大家可以尝试修改成不同的值,观察工程的编译结果,观察下载的时候,仿真器的行为有什么变化。后面会给大家介绍如何使用仿真器进行加载和调试。