日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

Part9---代碼搬移不可少

發(fā)布者:ShimmeringStar最新更新時(shí)間:2024-10-12 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

1、回顧ARM啟動(dòng)流程就可知道需要執(zhí)行代碼搬移

2、代碼搬移

1)起點(diǎn):NAND FLASH,今天的起點(diǎn)是SRAM墊腳石。為什么?因?yàn)槲覀円獜膎andflash取搬移數(shù)據(jù)需要先對(duì)其進(jìn)行初始化,二而我們并沒有初始化;墊腳石SRAM起始地址:2440為0,6410為0x0c000000,210為0xd0020000;那么我們就從對(duì)應(yīng)的地址去搬移代碼。

2)終點(diǎn):

鏈接地址:可以通過反匯編來查看,arm-linux-objdump -D -S gboot.elf >dump.

在一段c程序代碼中,通過調(diào)用子函數(shù),那么會(huì)使子函數(shù)的鏈接地址賦值給pc指針,在一段匯編代碼中,使用ldr pc,=reset,使標(biāo)號(hào)reset處的匯編賦值給pc指針。

相對(duì)跳轉(zhuǎn)和絕對(duì)跳轉(zhuǎn)

絕對(duì)跳轉(zhuǎn):是直接去修改pc指針。

相對(duì)跳轉(zhuǎn):使用b或者bl這種指令產(chǎn)生的就是相對(duì)跳轉(zhuǎn),并不是直接去修改pc指針,而是去修改相對(duì)標(biāo)號(hào)之間的差值。

在.lds腳本文件中的鏈接起始地址為0x50008000,那么我們的第一行代碼就會(huì)出現(xiàn)在0x50008000地址,然后往后排布程序。那么鏈接起始地址就作為我們的終點(diǎn)。

3)搬移方式


引用地址:Part9---代碼搬移不可少

上一篇:Part2_lesson1---arm家族大檢閱
下一篇:Part10-C語言環(huán)境初始化-棧初始化lesson1

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved