欢迎光临散文网 会员登陆 & 注册

14.3异常与中断_Thumb指令集程序示例

2020-08-27 15:22 作者:韦东山  | 我要投稿

在上节视频里说ARMCPU有两种状态

ARM State 每条指令会占据4byte

Thumb State 每条指令占据2byte


我们说过Thumb指令集并不重要,本节演示把一个程序使用Thumb指令集来编译它

使用上一章节的重定位代码,打开Makefile和Start.S

Makefile文件 

对于使用Thumb指令集 

改进

对start.S需要修改代码

原重定位章节Start.S文件 

使用thumb指令集的Start.S文件 

上传代码编译测试

出现错误,如下 

发现是init,o里sdram_init2使用的了memcpy函数

查看init.c 

文章说没有什么方法禁用memecpy但是可以修改这些变量

比如说将其修改为静态变量,这些数据就会放在数据段中,最终重定位时会把数据类拷贝到对应的arr地址里面去 

拷贝进行实验

得出bin文件有1.4k左右

查看之前的文件使用ARM指令集是2K左右

查看反汇编代码 

如果你的flash很小的话可以考虑使用Thumb指令集


烧写进去看是否可以运行

测试结果没有任何问题

Thumb指令集后面没有任何作用,只是简单作为介绍 


14.3异常与中断_Thumb指令集程序示例的评论 (共 条)

分享到微博请遵守国家法律