新手上路
- 积分
- 39
- 金钱
- 39
- 注册时间
- 2021-3-23
- 在线时间
- 8 小时
|
1金钱
.global _start @.global 是伪操作,表示生命_start 是一个全局标号
.global _bss_start
_bss_start:
.word __bss_start //.word表示要创建一个标签 标签名叫__bss_start
.global _bss_end
_bss_end:
.word __bss_end
_start:
//尽然超级用户模式
mrs r0, cpsr
bic r0, r0, #0x1f /* 将 r0 的低 5 位清零,也就是 cpsr 的 M0~M4 */
orr r0, r0, #0x13 /* r0 或上 0x13,表示使用 SVC 模式 */
msr cpsr, r0 /* 将 r0 的数据写入到 cpsr_c 中*/
//清除Bass段
ldr r0, _bss_start
ldr r1, _bss_end
mov r2, #0
bass_loop:
stmia r0!,{r2}
cmp r0,r1
ble bass_loop //如果小与0,继续循环
//设置SP指针 大小2MB 从0地址开始
ldr sp, =0x80200000
b main
加了清楚bass段的这些代码后等就不亮了,把这些屏蔽了 灯就正常了
|
最佳答案
查看完整内容[请看2#楼]
你按照椒图的这样,教程后面的代码改了,可以直接参考A盘资料里给的源码(你的资料不是最新的话,建议更新为最新的)
资料下载链接:http://www.openedv.com/docs/index.html
|