亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

uboot Stage1閱讀的一些心得

系統 2015 0

?

?

感覺一定要理解一些基本的概念,然后在看懂匯編的基礎上,再分析uboot的流程。

1.關于匯編的語法

這里有兩套匯編的語法:分為ARM公司的標準ARM匯編語言和GNU對ARM支持的GNU ARM匯編。ARM標準匯編語言即ARM公司的開發工具ADS里用的匯編語言;GNU匯編即在LINUX下用GCC編譯的匯編。兩者語法有少許差異。因此,通常我們下載的LINUX下的ARM接口代碼放到ADS下是不能編譯通過的,需要進行少許修改。

GNU AS語法即AT&T匯編語法,uboot用到的語法。

2.標簽的含義

?

    .globl _start

_start:	b       reset
  
?

標簽就是在某行程序代碼前作一個標記,標簽代表的是這行代碼的地址。

?

    .globl _armboot_start

_armboot_start:
	
.word _start
  
?

.word expression就是在當前位置放一個word型的值,這個值就是expression ,此處的含義就是建立一個全局標簽_armboot_start,在這個位置上放置_start的值(可以這樣理解,_armboot_start是一個地址,這個地址中的內容是_start),則下面的語句會把地址_armboot_start處的內容(_start)裝載到r2中。

?

    ldr	r2, _armboot_start
  
?

這樣做的目的是因為LDR指令的格式為:LDR{條件} ? ?Rd, <地址>。

3..word 0x0badc0de

含義:保留一個字,初始化一下。實際的值應該在運行時計算出來。(badcode嗎,呵呵)。

4.關于判斷是否拷貝到ram

如果是debug下,uboot直接運行在ram中,從而得到的_start值和TEXT_BASE是相等的,不需要拷貝。如果從flash啟動,_start為0x0,TEXT_BASE是sdram的地址,二者是不相等的,需要拷貝。(TQ2440的SDRAM為64M,bank6,地址空間為0x30000000-0x34000000,TEXT_BASE設置為0x33D000000,即0x33D00000-0x34000000為uboot使用的空間+bss和其他的空間)。

見映射圖

uboot Stage1閱讀的一些心得

5.匯編中調用c函數

遵循ATPCS(ARM-THUMB procedure call standard)標準。

?

uboot Stage1閱讀的一些心得


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产91在线 | 日韩 | 中文字幕在线综合 | 欧美中文字幕在线观看 | 亚洲精彩视频 | 亚洲精品成人一区 | 中国一级全黄的免费观看 | 欧美精品香蕉在线观看网 | 欧美日韩中文字幕在线视频 | 日本免费不卡视频一区二区三区 | 91在线亚洲 | 亚洲一区二区在线免费观看 | 五月婷影院 | 欧美乱妇在线观看 | 国产在线精彩视频 | 色情毛片 | 日韩美女视频一区 | 末成年一级在线看片 | 精品国产自在久久 | 热久久影院 | 四虎国产精品永久在线看 | 日韩综合图区 | 日韩免费毛片视频 | 香蕉视频亚洲一级 | 米奇7777狠狠狠狠视频影院 | 日韩在线一区二区 | 91系列在线| 毛片基地免费视频a | 国产精品欧美亚洲韩国日本99 | japanese乱子另类 | 日韩中文字幕推理片 | 97影院理论片手机在线观看 | 伊人影院99 | 九色视频极品论坛区 | 国产真实强j视频在线观看 国产真实偷乱视频在线观看 | 狠狠的操你| 西西亚洲 | 亚洲综合欧美日韩 | 日韩在线视频不卡 | 日本网站在线 | 日韩伊人网 | 亚洲国产系列久久精品99人人 |