国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁(yè) 新聞資訊 >> 新聞?lì)^條 >> (二)啟動(dòng)代碼分析 02
新聞資訊
NEWS INFORMATION

(二)啟動(dòng)代碼分析 02

發(fā)布時(shí)間:2019-05-22

(二)啟動(dòng)代碼分析 02

 

首先從開(kāi)發(fā)板硬件講起:

思考問(wèn)題: 開(kāi)發(fā)板上電后,程序是如何啟動(dòng)呢???

這里分 nor flash 啟動(dòng) 和 nand flash 啟動(dòng)

講解 : 

nand flash 啟動(dòng):

______________________________________________________________________________________________________________________

由于NAND FLASH是接在NAND FLASH控制器上而不是系統(tǒng)總線上,所以沒(méi)有在S3C2440A的8個(gè)BANK中分配地址空間。如果S3C2440被配置成從Nand Flash啟動(dòng),在S3C2440上電后,Nand Flash控制器的會(huì)自動(dòng)的把Nand Flash上的前4K數(shù)據(jù)搬移到內(nèi)部SRAM中,也就是所謂的”Steppingstone”, 同時(shí)把這段片內(nèi)SRAM映射到nGCS0片選的空間(即0x00000000)。系統(tǒng)會(huì)從這個(gè)內(nèi)部SRAM中啟動(dòng),程序員需要完成的工作,就是把最核心的啟動(dòng)程序放在Nand Flash的前4K中,也就是說(shuō),你需要編寫(xiě)一個(gè)長(zhǎng)度小于4K的引導(dǎo)程序,作用是將主程序拷貝到RAM (一般是SDRAM)中運(yùn)行。而在Nand Flash方式啟動(dòng)的情況下,系統(tǒng)是”看不到”Nor Flash的,因?yàn)镹or Flash也是掛在nGCS0上的,而nGCS0的地址空間已經(jīng)被占用了。

________________________________________________________________________________________________________________________

1、系統(tǒng)上電后,首先自動(dòng)判斷是否是autoboot模式,如果使用 s3c2410是帶有nandflash的,并且被設(shè)置成autoboot,從nandflash開(kāi)始啟動(dòng).
2、在判斷是autoboot模式后,mcu內(nèi)置的nandflash控制器自動(dòng)將nandflash的最前面的4k區(qū)域(這4k區(qū)域存放著 bootloader的最前面4k代碼)拷貝到samsung所謂的"steppingstone"里面(steppingstone是在S3C2440 中,實(shí)際上是一塊4k大小的SRAM,).
3、在拷貝完前4k代碼后,nandflash控制器自動(dòng)將"steppingstone"映射到arm地址空間0x00000000開(kāi)始的前4k區(qū)域.
4、在映射過(guò)程完成后.nandflash控制器將pc指針直接指向arm地址空間的0x00000000位置,準(zhǔn)備開(kāi)始執(zhí)行"steppingstone"上的代碼.
5、而"steppingstone"上從nandflash拷貝過(guò)來(lái)的4k代碼,是程序員寫(xiě)的bootloader的前4k代碼.這個(gè) bootloader在之前寫(xiě)好,并已經(jīng)被燒寫(xiě)到nandflash的0x00000000開(kāi)始的最前面區(qū)域..而這"steppingstone"上的 4k代碼就是bootloader的前4k代碼.
6、在pc指向arm地址空間的0x00000000后,系統(tǒng)就開(kāi)始執(zhí)行指令代碼.這4k代碼的任務(wù)是:初始化硬件,設(shè)置中斷向量表,設(shè)置堆棧,然后一個(gè)很重要的任務(wù)是,將nandflash的最前面區(qū)域的bootloader(包含4k啟動(dòng)代碼)拷貝到SDRAM中去,bootloader代碼的大小是寫(xiě)好bootloader就確定的.然后只需要確定bootloader想映射到SDRAM的起始位置就ok.
7、在完成對(duì)nandflash上的bootloader搬移后,找到4k代碼的搬移代碼最后一個(gè)指令的下一個(gè)指令在SDRAM的bootloader的地址,然后跳轉(zhuǎn)到該位置,繼續(xù)執(zhí)行bootloader的剩余代碼(引導(dǎo)系統(tǒng)).
 
 
具體可以看: http://blog.csdn.net/r91987/article/details/7625916   雖然沒(méi)有圖,但是說(shuō)得很好啊
 
因?yàn)榇a必須從 地址 0x000000 開(kāi)始啟動(dòng),而 nor flash 就是0x000000  但是nand flash 地址確是 0x30000000  行不通,但是我們有個(gè) 4KB 的 steping stone(ARM 芯片自己有的)地址是 0x00000,這樣可以 
硬件復(fù)制前4KB 代碼到 stepping stone 再轉(zhuǎn)到 0x30000000 的 SDRAM 中去
 
nor flash 啟動(dòng),由于 nor flash 可以存放 bios , 但是 可讀不可寫(xiě),但是 bootloader 里面的 RW 段 和 ZI 段 要被寫(xiě),自然也要進(jìn)行代碼的搬遷工作(參考 楊鑄 97頁(yè)
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
 
啟動(dòng)代碼詳解: 
 
總得來(lái)說(shuō),裸機(jī)開(kāi)發(fā) 啟動(dòng)代碼只有 100 多條 匯編指令, 通過(guò)啟動(dòng)代碼可以近一步熟悉 ARM 匯編指令, 好處是為以后熟練運(yùn)用 ARM C語(yǔ)言, 匯編語(yǔ)言混合編程以及 uboot的移植打下基礎(chǔ)。
那么怎樣才算ARM匯編 過(guò)關(guān)呢???? 只要看得懂啟動(dòng)代碼就可以了啊。。。。。。。。!啊啊啊啊 啊啊 啊 啊啊啊 。。。。。。!然后自己會(huì)修改就行了!啊啊啊啊啊。岚 “““ ““ “  。。。。。。。。。!
聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

国产欧美精品对白性色| 日本在线高清精品人妻| 欧美日韩亚洲巨色人妻| 免费在线观看激情小视频| 在线日韩中文字幕一区 | 日韩精品一级片免费看| 亚洲欧洲成人精品香蕉网| 日韩欧美一区二区亚洲| 国产日韩欧美在线播放| 亚洲国产av在线视频| 亚洲一二三四区免费视频| 日韩免费国产91在线| 欧美午夜视频免费观看| 免费午夜福利不卡片在线 视频 | 日本加勒比在线观看不卡| 激情五月天深爱丁香婷婷| 欧美又黑又粗大又硬又爽| 日韩精品在线观看完整版| 亚洲欧美日韩综合在线成成| 亚洲中文字幕人妻系列| 清纯少妇被捅到高潮免费观看| 91在线国内在线中文字幕| 精品人妻少妇二区三区| 国产美女网红精品演绎| 国产又粗又硬又长又爽的剧情| 亚洲国产丝袜一区二区三区四| 亚洲中文字幕有码在线观看| 精品偷拍一区二区三区| 亚洲中文字幕剧情在线播放| 日本加勒比在线播放一区| 午夜成年人黄片免费观看| 国产性色精品福利在线观看| 国产内射一级一片内射高清视频| 午夜精品在线视频一区| 人妻巨大乳一二三区麻豆| 精品欧美日韩一区二区三区 | 欧美日韩国产欧美日韩| 99国产高清不卡视频| 国产一级内片内射免费看| 国产人妻熟女高跟丝袜| 久久机热频这里只精品|