C语言运行环境构建
- 设置处理器运行模式
设置6ULL处于SVC模式下。即设置CPSR寄存器的bit4:0为10011 = 0x13。使用MRS读和MSR写命令,对CPSR寄存器进行编译。 - 设置SP指针
·sp可以指向内部RAM,也可以指向DDR,这里将其指向DDR。sp设置的地址和DDR选择有关,512MB的范围0x80000000~0x9FFFFFFF。栈大小:0x200000,2MB。处理器栈增长方式:对于Cortex_A7来说,是向下增长的,即栈低为小地址,栈顶为大地址,指针从大地址向小地址移动。设置sp指向0x80200000。
- 跳转C语言
使用b指令,跳转到C语言函数,比如main函数。
注:官方在bin头部文件中初始化过DDR,在这加载C语言函数时并未初始化DDR。