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指令碼
- Element 指令clickoutside原始碼分析IDE原始碼
- Tomcat的啟停指令碼原始碼解析Tomcat指令碼原始碼
- mysql8.0原始碼一鍵安裝指令碼MySql原始碼指令碼
- Uboot功能boot
- uboot-uboot介紹-學習筆記boot筆記
- 2.12.uboot的移植2-從uboot官方標準uboot開始移植boot
- 嵌入式之uboot原始碼分析-啟動第二階段學習筆記(上篇)boot原始碼筆記
- Go執行指令碼命令用例及原始碼解析Go指令碼原始碼
- nGrinder中快速編寫groovy指令碼01-指令碼結構指令碼
- Vue initAssetRegisters()建立元件、指令、過濾器原始碼Vue元件過濾器原始碼
- linux shell指令碼中 =~ 的作用Linux指令碼
- Laravel 中執行 Python 指令碼LaravelPython指令碼
- rsync客戶端一鍵安裝rsync指令碼(原始碼)客戶端指令碼原始碼
- 比特幣原始碼分析:多執行緒檢查指令碼比特幣原始碼執行緒指令碼
- Vue.js原始碼解析-從scripts指令碼看vue構建Vue.js原始碼指令碼
- shell指令碼企業實戰系列-nginx原始碼包安裝指令碼Nginx原始碼
- lua~IDEA中除錯lua指令碼Idea除錯指令碼
- MySQL中binlog備份指令碼分享MySql指令碼
- shell指令碼中cd命令無效指令碼
- 如何呼叫python中的shell指令碼?Python指令碼
- python中怎樣執行指令碼Python指令碼
- Shell指令碼中的 /Dev/Null 用途指令碼devNull
- Uboot基本知識boot
- uboot開機logobootGo
- shell指令碼中main函式中$#獲取不到指令碼傳入引數個數淺析指令碼AI函式
- 「從原始碼中學習」Vue原始碼中的JS騷操作原始碼VueJS
- 修改gradle指令碼,加速spring4.1原始碼編譯構建速度Gradle指令碼Spring原始碼編譯
- 直播商城原始碼,vue 自定義指令過濾特殊字元原始碼Vue字元
- app直播原始碼,vue 自定義指令過濾特殊字元APP原始碼Vue字元
- 死磕以太坊原始碼分析之EVM指令集原始碼
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- shell指令碼中不識別source命令指令碼
- 關於 Bash 指令碼中 Shebang 的趣事指令碼
- 使用sqlmap中tamper指令碼繞過wafSQL指令碼
- Mac 中將指令碼封裝為 AppMac指令碼封裝APP
- 平臺設計中的指令碼管理指令碼
- redis中lua指令碼的簡單使用Redis指令碼