欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
bootloader燒寫(xiě)

bootloader燒寫(xiě)

關(guān)于bootloader,先簡(jiǎn)要地總結一下。經(jīng)過(guò)了第一個(gè)階段的學(xué)習,對bootloader有了一個(gè)整體的認識,其實(shí)把它當作一個(gè)功能單元就可以了,職責就是完成從硬件加電到操作系統內核運行之前的所有工作,這些工作包括硬件檢測、硬件初始化、加載kernel。這些工作怎么完成呢?按照功能分為兩個(gè)部分比較合適,硬件檢測和初始化功能實(shí)現作為stage1;加載kernel作為stage2。stage1完全依賴(lài)于硬件,這一部分用匯編語(yǔ)言實(shí)現;stage2與操作系統有關(guān),一般用C語(yǔ)言來(lái)實(shí)現。在嵌入式系統的開(kāi)發(fā)過(guò)程中,bootloader有兩種選擇,要么自行開(kāi)發(fā),要么移植。我還沒(méi)有寫(xiě)過(guò)bootloader,只是移植過(guò)U-boot,使用過(guò)Redboot。

     這里討論一個(gè)問(wèn)題,bootloader如何燒寫(xiě)(固化)到非易失性存儲介質(zhì)(比如Nor Flash,NAND Flash等)里呢?     討論之前,先要理解編程器的概念。雖然學(xué)通信工程,應該對這些工具不陌生,但是本科下來(lái),對這些概念確實(shí)沒(méi)有深刻的印象。實(shí)際用到,才發(fā)現自己基礎太差,只能努力的彌補。我寫(xiě)blog,很大程度上是對基礎知識的鞏固,相信基礎扎實(shí)了,知識體系才可以慢慢的完善,才能最終勝任更高難度的工作。     編程器也叫device programmer,是對非易失性存儲介質(zhì)和其他電可編程設備進(jìn)行編程的工具。傳統的編程器,需要把Flash(舉例)從電路板上取下來(lái),插到編程器的接口上,以完成擦除和燒寫(xiě)?,F在的編程器發(fā)展的方向是ISP(In-System Programming,在系統可編程),就是指電路板上的空白器件可以編程寫(xiě)入最終用戶(hù)代碼,而不需要從電路板上取下器件。已經(jīng)編程的器件也可以用ISP方式擦除或再編程,如Nor Flash支持重復擦寫(xiě)10萬(wàn)次左右??梢?jiàn),ISP,智能編程器是發(fā)展的方向。     利用編程器可以解決前面提高的問(wèn)題,不僅可以燒寫(xiě)bootloader,還可以燒寫(xiě)kernel,fs等等。也就是都屬于固化最終用戶(hù)代碼的過(guò)程。     下面考慮兩種實(shí)際情況:    1、廠(chǎng)商已經(jīng)提供固化的程序代碼,不允許對其修改。那么這種情況下,用不到編程器。    2、廠(chǎng)商提供的硬件沒(méi)有固化代碼,或者固化了部分代碼(后面舉例說(shuō)明),這樣就需要用到編程器。     第一種情況是對最終用戶(hù)而言,第二種情況則對開(kāi)發(fā)者而言。也就是在嵌入式開(kāi)發(fā)過(guò)程中,我們總是需要用到編程器,不管原來(lái)是否知道這個(gè)概念,即使是下載線(xiàn),也可以認為是簡(jiǎn)單的編程器。要想利用編程器進(jìn)行數據交換,完成燒寫(xiě)擦除等操作,就必須硬件連接、軟件操作。當然,復雜的地方在軟件操作,因為對不同的硬件,軟件操作是不同的。有些廠(chǎng)商把編程器、編輯器、編譯器、匯編器、鏈接器、調試器集成在一起,提供軟硬件解決方案,在學(xué)校學(xué)習大多是這種集成環(huán)境了。比如51單片機的仿真器和Keil開(kāi)發(fā)環(huán)境。也因為這個(gè)原因,對于每個(gè)環(huán)節反而沒(méi)有了概念。在Linux下開(kāi)發(fā)的時(shí)候,這些問(wèn)題就都凸現出來(lái)了。不過(guò)早出來(lái)早解決,這樣無(wú)論對于自己的認識,還是對于以后的發(fā)展,都是有利的。     有些廠(chǎng)商為了方便用戶(hù)下載代碼和調試,在其處理器內部集成了一個(gè)小的ROM,事先固化一小段代碼。因為容量有限,所以代碼的功能有限,一般只是初始化串口,然后等待從串口輸入數據。這樣,串口線(xiàn)實(shí)際上就成為了編程器的硬件連接了。比如,Cirrus Logic 的EP93XX系列,它內部集成了一個(gè)BootROM,固化代碼初始化串口,支持從串口下載數據。那么在Host端只需要相應的開(kāi)發(fā)一個(gè)相同串口協(xié)議的download程序,就可以完成bootloader(EP93XX系列使用的是Redboot)燒寫(xiě)到Falsh里【注:這里的編程器就可以認為是download+RS-232交叉線(xiàn)】,然后從Falsh啟動(dòng),有Redboot進(jìn)行下面的工作。因為Redboot實(shí)現了串口傳輸協(xié)議和TFTP協(xié)議,就可以通過(guò)RS-232來(lái)進(jìn)行控制,通過(guò)Ethernet完成大的映象文件如kernel和fs的下載固化。這樣,從硬件上電,到最后系統啟動(dòng)的所有環(huán)節就都很清晰了。ATMEL的AT91RM9200內部也集成了一個(gè)ROM,固化代碼,同樣初始化串口,啟動(dòng)串口傳輸協(xié)議Xmodem,等待輸入【注:這里的編程器就可以認為是loader+RS-232交叉線(xiàn)】。官方提供的loader就是完成把U-boot下載固化到flash里面。因為kernel和fs比較大,可以采用壓縮,官方提供boot來(lái)完成從flash啟動(dòng)后自動(dòng)解壓過(guò)程。這樣,從flash啟動(dòng)就慢了許多。     還有些廠(chǎng)商為了節省ROM空間,提高集成度,不支持從ROM啟動(dòng)模式。比如三星公司的S3C2410等。這樣一種簡(jiǎn)單的方法就是采用JTAG下載線(xiàn)作為編程器的硬件連接,完成其Bootloader(如Vivi)的燒寫(xiě)。在Windows環(huán)境下,針對JTAG硬件連接,編程器的軟件有JFlash(JTAG for Flash),SJF,Flash Programmer等,還是比較豐富的。在Linux環(huán)境下,我所知道的有JFlash的Linux版本【注:在Linux下,這里的編程器就可以認為是JFlash+JTAG下載線(xiàn),S3C2410是提供JTAG接口的】。因為學(xué)校實(shí)驗室有S3C2410的實(shí)驗箱,所以下個(gè)階段會(huì )嘗試以S3C2410為中心,進(jìn)行詳細深入的學(xué)習。其中之一就是bootloader的研究。那么就可以分成兩個(gè)部分:一是Linux環(huán)境下Flash燒寫(xiě)工具JFlash的工作原理,完成移植工作。二是移植Vivi(U-boot)。在這個(gè)過(guò)程中,重點(diǎn)學(xué)習一下U-boot的移植和組織形式,掌握JTAG對應的軟件JFlash的源代碼編寫(xiě)方法。然后嘗試自己寫(xiě)一個(gè)簡(jiǎn)單的bootloader。我想,這樣學(xué)習會(huì )更加有效。     總結完之后,對bootloader的理解有了一個(gè)新的概念。把bootloader理解成燒寫(xiě)工具和功能實(shí)現兩個(gè)部分,對于實(shí)際理解會(huì )更有幫助。這樣,拿到一塊板子,首先看它提供的啟動(dòng)方式有那些,是否支持從ROM啟動(dòng),是否支持從Flash啟動(dòng)等等,針對啟動(dòng)方式,選擇bootloader固化方式,如果提供編程器軟件資源最好,如果不提供,那么要么編寫(xiě),要么移植。不過(guò),大而全在商業(yè)中是行不通的,如同周立功所說(shuō),專(zhuān)注于自己最擅長(cháng)的,其他的外包。這是工作后應該信奉的原則?,F在還是以研究為目的,盡量弄明白每個(gè)環(huán)節的工作原理,形成清晰的認識,然后選擇自己最為擅長(cháng)的,作為謀生的手段。即使工作后,各個(gè)環(huán)節還是應該有所射獵,知識都是相通的,可能從別的方面得到啟發(fā),解決自己手頭的難題。  
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
嵌入式開(kāi)發(fā)_Bootloader的燒寫(xiě)
[原創(chuàng )]STM32 BOOT模式配置以及作用
刷機工具Odin3 v1.85中的BOOTLOADER詳解,三星 I9000/Galaxy S 安卓論壇
Arduino是什么樣的硬件?
基于A(yíng)RM-μCLinux嵌入式系統啟動(dòng)引導的實(shí)現||ARM|
【路由改造】閑來(lái)無(wú)事,寫(xiě)一篇折騰無(wú)線(xiàn)路由器的心得吧,不對的地方請指正(新手值得看看)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久