uboot中start.s原始碼指令
- .globl _start
globl是關鍵字,相當於c語言中的extern,宣告此變數,並且告訴連結器此變數是全域性的,外部可以訪問。 - _start:b reset
_start後面加上一個冒號’:’,表示其是一個標號Label,類似於C語言goto後面的標號。
_start的值就是這個程式碼的位置,此處即為程式碼的最開始,相對的0的位置。
而此處最開始的相對的0位置,在程式開始執行的時候,如果是從NorFlash啟動,那麼其地址是0,_start=0。
如果是重新relocate程式碼之後,就是我們定義的值了。
而_start標號後面的:b reset
就是跳轉到對應的標號為reset的位置。
- ldr指令
格式:ldr{條件} 目的暫存器,<儲存器地址>
用於從儲存器中將一個32位的字資料傳送到目的暫存器中。
ps:當程式計數器PC作為目的暫存器時,指令從儲存器中讀取的字資料被當作目的地址,從而可以實現程式流程的跳轉。
- .word
分配一個4位元組的地址空間。
eg._undefined_instruction: .word undefined_instruction
c語言表示:_undefined_instruction=&undefined_instruction;
- .balignl
- .balignl 16,0xdeadbeef
接下來的程式碼,都要16位元組對齊,不足之處,用0xdeadbeef填充。
- bl
reset: bl save_boot_params
引起處理器轉移到“save_boot_params”處開始執行,並將下一條指令的地址拷貝到R14,可實現子程式的返回。
- mrs/msr bic/orr
7.1格式:
mrs{條件} 通用暫存器,程式狀態暫存器(cpsr或spsr)
mrs指令用於將程式狀態暫存器的內容傳送到通用暫存器中。使用情況1)需要改變程式狀態暫存器的內容時 2)異常處理或程式切換時
7.2格式:
msr{條件} 程式狀態暫存器(cpsr或spsr)_<域>,運算元
msr指令用於將運算元的內容傳送到程式狀態暫存器的特定域中。
7.3格式:
bic{條件}{S} 目的暫存器,運算元1,運算元2
bic指令用於清除運算元1的某些位,並把結果放置到目的暫存器中。
7.4格式:
orr{條件}{S} 目的暫存器,運算元1,運算元2
orr指令用於在兩個運算元上進行邏輯或運算,並把結果放置到目的暫存器中。
相關文章
- Uboot連結指令碼與啟動流程boot指令碼
- uboot中rtc頂層分析boot
- uboot中MAC網路(待續)bootMac
- 精讀 Nginx 原始碼·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx原始碼指令碼變數
- Element 指令clickoutside原始碼分析IDE原始碼
- 9、在Shell指令碼中呼叫其他指令碼指令碼
- .net中 使用指令碼指令碼
- PowerShell 指令碼中的密碼指令碼密碼
- Tomcat的啟停指令碼原始碼解析Tomcat指令碼原始碼
- Uboot功能boot
- Linux/Unix shell 指令碼中呼叫SQL,RMAN指令碼Linux指令碼SQL
- uboot-uboot介紹-學習筆記boot筆記
- 解剖Nginx·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx指令碼原始碼變數
- 呼叫Frame中的指令碼指令碼
- java中呼叫groovy指令碼Java指令碼
- mysql8.0原始碼一鍵安裝指令碼MySql原始碼指令碼
- 編譯FFMPEG原始碼的指令碼編寫案例編譯原始碼指令碼
- 2.12.uboot的移植2-從uboot官方標準uboot開始移植boot
- uboot 新增命令boot
- uboot移植rtcboot
- nGrinder中快速編寫groovy指令碼01-指令碼結構指令碼
- Go執行指令碼命令用例及原始碼解析Go指令碼原始碼
- 精讀Nginx原始碼·自動指令碼篇(2)設定初始變數指令碼 auto/initNginx原始碼指令碼變數
- 嵌入式之uboot原始碼分析-啟動第二階段學習筆記(上篇)boot原始碼筆記
- Visual Studio 專案生成器,方便在Windows下檢視uboot、linux原始碼WindowsbootLinux原始碼
- Shell指令碼中cd命令使用指令碼
- 在Watir中呼叫JavaScript指令碼JavaScript指令碼
- Oracle sql指令碼中註釋OracleSQL指令碼
- 「從原始碼中學習」Vue原始碼中的JS騷操作原始碼VueJS
- Vue initAssetRegisters()建立元件、指令、過濾器原始碼Vue元件過濾器原始碼
- opencv中svm原始碼OpenCV原始碼
- rsync客戶端一鍵安裝rsync指令碼(原始碼)客戶端指令碼原始碼
- 原始碼包編譯安裝MySQL 5.6指令碼原始碼編譯MySql指令碼
- 使用vb指令碼讓電腦自動加入域原始碼指令碼原始碼
- uboot 解壓縮boot
- uboot 命令總結boot
- uboot 結構分析boot
- Uboot基本知識boot