由于KEIL V5版本会出现诸多bug,所以在这里介绍一个很顺畅的步骤,防止bug出现。
1. 创建工程
首先,需要自己定义文件夹,注意:一定需要是英文的的路径,否则会显示文件找不到并显示以下错误信息:
.\Objects\main.axf: error: L6002U: Could not open file .\objects\startup_stm32f10x_hd.o: No such file or directory
如果更改完,还是显示这个错误,这个时候你需要去看一下你的环境变量是否设置的是对的,这里可以看一下这篇博客有这个错误的详细解析。https://www.cnblogs.com/zhongxingji/p/17697224.html
说回正题,创建过程也是老生常谈的问题,首先选择New uVision Project,之后一定一定要再次确认自己的路径是否是中文,如果没错接着下一步了可以。
接下来也有一个小雷点,大家需要注意!!一定要选择第一种,第二种应该是由于我自己安装的pack包,在写实验一时候出现了很多错误。
之后勾选yes,至于为什么,是因为后续我们要对启动文件进行修改不然运行不了。
随后创建ASM文件,也是要英文命名。
到这里如果按照这个流程应该都一切顺利
2. 复制代码
因为汇编他对缩进也是有要求的所以大家一定要注意这个具体缩进要求,具体的可以看下面这篇文章。汇编语言编程规范(草稿)_汇编的缩进-CSDN博客
如果一切顺利就来到了这里,接下来就需要debug了。
3.错误解决
不出意外,报错了,这里如何解决呢?
首先对于第一条报错:很清晰可以看到他的意思是说我们有未定义的SystemInit在startup中,那么这里,我们就需要去找启动.s文件看看了,CONTROL+F找到特定代码段,
给他注释掉。
对于第二条报错主要是因为,启动文件去寻找之前的.c文件了这里可以进行修改。
修改成这样之后,拐回程序,添加main函数,导出my_main这些,相当于主函数声明
当然你也可以把上面的my_main直接改为start,也是可以运行的,主要还是声明。
再次运行就没事儿了应该。
4. debug
打开仙女棒 ,找的debug把use Simulator打开。
接下来就可以开始debug了,切记单步运行。之后左边就是register的结果,填写进入实验报告即可。
查看存储器值也不难,如图操作,点开memory窗口,输入地址,我这里定义的堆栈0x20002000,故我直接输入查看,
能看到是0x00。
实验A
上述代码为实验A代码,实验A整体结果如下:
实验B
还是小问题,注意缩进等。结果如下