1.汇编文件编译报错:start.s:13: 错误: no such instruction: `mrs r0,cpsr//读取cpsr’
解决方法:将汇编后缀 .s 更改为大写 .S 即可解决,Linux下严格区分大小写,windows 下不区分 2021.03.27 22:07
2.在bsp工程管理实验中出现编译不通过的报警。
问题原因:Makefile中误将$用作%使用。
解决方法:修改后正常。同时.json文件中,如果用到VScode编译的话就需要添加头文件路径,如果不需要的话就不用。2021.04.09 21:59
3.裸机程序中,增加清除BSS段程序就不会运行的问题。
问题原因:bss_start = 0x87800289。对于32位的SOC来说,一般访问是4字节访问的。比如0x0,0x4,0xb,0xc。芯片处理的时候以4字节访问,因此会从0x78000288开始清除BSS段。但是0x78000288不属于BSS段。所以需要对__bss_start进行四字节对齐。按照四字节对齐的原理,__bss_start = 0x8780028C。
解决方法:链接脚本中添加 . = ALIGN(4);
4.编写完成中断处理程序后,进入中断卡死
问题原因:清除BSS段的程序数据占用了中断向量表的位置,导致不能正确查询到中断入口地址。
解决方法:将清除BSS段代码往下移。