色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x
查看: 11056|回復(fù): 2
打印 上一主題 下一主題

[提問] 位置無關(guān)代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-12-28 15:57:41 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 位置無關(guān)代碼 , LDR , PC
想用MDK生成位置無關(guān)的低碼,但有個問題過不去                                                                                                                                 代碼:LDR R0,__main
           BX   R0
對應(yīng)反匯編代碼:
           0x0800024C  LDR R0,[PC,#12] ; @0x0800025C
           0x0800024E  BX   R0
            。。。。
           0x0800025C  DCW 0x0131
           .。。。。
MDK設(shè)置:MDK->read/only memory areas->on chip->IROM1 ->0x08000000
生成BIN文件后,下載到FLASH0x08000000處,運(yùn)行正常。
LDR R0,__main后,R0被設(shè)成了0x08000131

MDK設(shè)置:MDK->read/only memory areas->on chip->IROM1 ->0x08000000
生成BIN文件后,下載到FLASH0x08004000處,運(yùn)行就出錯了。
原因在于當(dāng)運(yùn)行到 LDR R0,__main后,R0仍被設(shè)成了0x08000131,而我想要的應(yīng)該是0x08004131

MDK設(shè)置:MDK->read/only memory areas->on chip->IROM1 ->0x08004000
生成BIN文件后,下載到FLASH0x08004000處,運(yùn)行正常。反匯編代碼變?yōu)椋?x0800025C  DCW 0x0431
LDR R0,__main后,R0被設(shè)成了0x08004131

我本來是想得到一個BIN文件,不管下載到FLASH哪個位置,它都能正常運(yùn)行,可從上面看來,在MDK中設(shè)置好IROM后,就只能下載到FLASH對應(yīng)位置才能正常運(yùn)行。

有誰能說說應(yīng)該怎么做才能得到一個真正的位置無關(guān)代碼?(在使用LDR的情況下,片子為Cortex-M3的STM32F103)




沙發(fā)
發(fā)表于 2014-2-18 22:19:05 | 只看該作者
單片機(jī)編程往往離不開匯編,說實(shí)話匯編很少用了看不懂啦。
板凳
發(fā)表于 2015-2-2 11:30:47 | 只看該作者
新手,路過
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表