[嵌入式linux] 问个地址匹配的问题

[复制链接]
2402|3
 楼主| badbird1234 发表于 2009-8-26 07:17 | 显示全部楼层 |阅读模式
最近搞启动代码
看了LINUX的BOOT
很奇怪程序跑来跑去
复制来复制去
还能运行
我想问的是
就是我们编程序时打了很多跟地址有关的符号
跳转时怎么识别在不同地址的同一个标号的呀
希望高手指点
现在晕着那
xinzha 发表于 2009-9-3 06:38 | 显示全部楼层
到了真正生成汇编的时候,所有的跳转都是被解释为相对地址或者绝对地址的跳转,而你在不同的函数中所使用的相同标号,早已经在编译链接阶段标记为唯一可识别的记号,不会说到处乱跳的。
itelectron 发表于 2009-9-3 07:59 | 显示全部楼层
偶也有个问题!请教!
就是DATA数据 是先存在 ROM中么, 然后复制到 RAM 区 么???
xinzha 发表于 2009-9-4 07:08 | 显示全部楼层
不同的启动模式有不一样的做法,如果是自启动,已经初始化为不等于0的gp段会在rom中(压缩或不压缩),而bss段只需要标记大小就行,系统启动的时候把整个bss区域初始化为0。而类似于constant 这种运行时刻不可修改的变量,ram少的就放到rom中(必须非压缩),rom少的就解压后放到ram中
而如果是类似于nfs这种模式的,多数是主机就把镜像的最完整的样子传过去就得了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

254

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部