国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

13.3代碼重定位_鏈接腳本的解析

2020-08-21 14:39 作者:韋東山  | 我要投稿

鏈接腳本的語法?

解釋:?

secname? :段名

start? :起始地址:運行時的地址(runtime addr);重定位地址(relocate addr)

AT ( ldadr ) :可有可無(load addr:加載地址) 不寫時LoadAddr = runtime addr

{ contents } 的內(nèi)容:?

start.o //內(nèi)容為start.o文件

*(.text)所有的代碼段文件

start.o *(.text)文件


elf文件格式

1 鏈接得到elf文件,含有地址信息(load addr)

2 使用加載器

????2.1 對于裸板是JTAG調(diào)試工具

????2.2 對于APP,加載器也是APP 把elf文件解析讀入內(nèi)存的加載地址

3運行程序

4如果loadaddr?!= runtimeaddr程序本身要重定位

核心程序運行時應(yīng)該位于 runtimeaddr(reloate addr)或者鏈接地址?


bin文件

1 elf生成bin文件

2 硬件機(jī)制啟動

3 如果bin文件所在位置 不等于runtimeaddr ,程序本身實現(xiàn)重定位


bin文件/elf文件都不保存bss段 這些都是初始值為0 或者沒有初始化的全局變量

程序運行時把bss段對應(yīng)的空間清零

做個實驗,把全局變量g_A以16進(jìn)制打印出來?

上述代碼,沒有清理bss段 ?g_A等于莫名奇妙的值 并不等于0 所以需要清理bss段


修改lds鏈接文件?

修改start.s,清除bss段?

現(xiàn)在的代碼全局變量就是為0,通過幾行代碼,就可以少幾十個甚至上千個全局變量的存儲空間。?

13.3代碼重定位_鏈接腳本的解析的評論 (共 條)

分享到微博請遵守國家法律
武山县| 忻州市| 漳州市| 扎鲁特旗| 仙游县| 海安县| 娄烦县| 南投市| 崇州市| 云霄县| 安泽县| 平凉市| 方正县| 崇信县| 河东区| 昭觉县| 芜湖县| 托克逊县| 清新县| 海安县| 长葛市| 吴桥县| 广州市| 彩票| 瑞金市| 丰宁| 徐州市| 富民县| 农安县| 安阳市| 甘谷县| 陆良县| 介休市| 德州市| 昭觉县| 秭归县| 禄丰县| 彭水| 张家口市| 长兴县| 南丹县|