1. 概述
软件移植指的是将源代码从一种环境搬到另一种环境中运行。 可以在Cortex-M处理器之间移植,也可以将ARM其他处理器移植到Cortex-M里。 移植的目的是为了节省设计时间。
2.Cortex-M处理器之间移植
2.1 差异性
Cortex-M处理器的差异性体现在
- 指令集。Cortex-M处理器指令是向上兼容的,即高等级可兼容等等级。
- IT指令块,包括比较和跳转,乘累加,除法,表格跳转等。
- 排他访问
- 编程模型,如非特权等级,中断异常处理等
- 低功耗
- 调试跟踪差异
2.2 软件变动
- 替换设备驱动头文件
- 替换启动代码
- 调整中断优先级
- 调整浮点类型等编译器选项
- 使用CMSIS-core函数
3.ARM7TDMI到Cortex-M处理器之间移植
3.1 差异性
- 存储器映射(存储器和外设地址不同)
- 中断控制器不同
- 存储器保护单元不同
- 操作模式不同
3.2 软件变动
1.汇编语言 1)Thumb状态 在此状态下,大部分文件可以移植,但要注意少数不公用的thumb指令 2)arm状态 修改的地方有
- 向量表
- 寄存器初始化
- 模式状态切换
- 中断
- 协处理器访问
- SWP
- 条件执行
- R13使用等。
2.C语言
3.预编译文件如启动。 4.代码优化。
对于初学者由于目前只想了解大概,所以没有详细写差异性及移植需要改动之处。若想详细了解,请参照ARM Cortex-M3与Cortex-M4权威指南的第24章软件移植。
参考文献
《ARM Cortex-M3与Cortex-M4权威指南》
|