完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
lowlevel_init.S中有一段代码:
ldr r0, =SMRDATA ldr r1, _TEXT_BASE sub r0, r0, r1 ldr r1, =BWSCON /* Bus Width Status Controller */ add r2, r0, #13*4 代码里 SMRDATA-_TEXT_BASE,网上说是获得 Steppingstone里面相对于地址0x00000000的放置的所在地方。但是我的理解是这个相减只是获得了相对于lowlevel_init的位置,但是 lowlevel_init并不是存储在flash的0x0000000位置啊!链接脚本的说明,第一段代码是start.o的,所以lowlevel_init代码不是存在0x00000000位置 SECtiONS { . = 0x00000000 /*指明目标代码起始地址从0x0开始,"."代表当前位置*/ . = ALIGN(4) /*代码以4字节对齐*/ .text : /*指定代码段:必须将start.o文件放在代码段的开始位置,其它文件可任意放*/ { cpu/ARM920t/start.o (.text) /*代码段第一部分,指明start.s是入口程序,被放到代码段开头*/ *(.text) /*其它代码部分.其中,*表示其它任意文件*/ } } 另外一个,我在start.s里也看到有这个定义,为什么会有多个_TEXT_BASE定义呢? _TEXT_BASE: .word TEXT_BASE // |
|
相关推荐
1个回答
|
|
没有人回复@xiaole921, lantian5435, 浪人的传说1,为什么start.s和lowlevel_init.S都有TEXT_BASE,那链接的时候链接哪个
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2177 浏览 6 评论
1982 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4540 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 06:08 , Processed in 0.625457 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号