如何走進嵌入式開發[3] — 燒錄bootloader

來源:互聯網
上載者:User

 在拿到一塊空白板子時,我們的bootloader如何燒到FLASH上呢? 一個途徑就是通過模擬器,ARM有進階模擬器,進階貨是不錯,不過我們選擇窮人的方式,也是個模擬器,至於是啥,網上一搜一大堆,jlink, openjtag, usb...,東西很多,國內便宜(大家都知道)。按照標準,其實這些叫作適配器,反正就是一介面,連上去就好了,對了,是JTAG介面。

 

以前不懂的時候,以為接上就能燒了?誰來燒呀?CPU燒?燒什麼呀? 後來看了文檔才知道,這些CPU一般都有個偵錯模式,在偵錯模式下,CPU外面多了一層引腳,訊號都走這,與JTAG介面通訊,我們就可以通過JTAG介面,對CPU進行操作,可讀可寫。

 

如果我們想讀一個寄存器值,我們該發什麼訊號給CPU呢?這些都在CPU手冊上有,我要說的不是這個,我想說的是,前輩已經寫了軟體來做這些工作,需要啥訊號,我們就不用關心了,需要的只是傳個命令過去,比如 read addr之類的,這類軟體應該很多,我們又選擇了 OpenSource的 OpenOCD, 這個軟體還是不錯了,開發人員很勤奮,maillist天天都有很多郵件。 如果我們的CPU在該軟體的支援的範圍內,那麼我們需要做的事情就是寫寫設定檔,否則就需要寫些CPU支援的 c 代碼了。設定檔,主要部分配置CPU,FLASH BANK(地址寬度很重要)等,讓CPU能操作FLASH,也就是你得告訴CPU如何工作,其實就是設定寄存器。軟體運行起來,需要把CPU掛起,有時候會出現不能掛起的情況(有的是無緣無故,有的是由於reset時的訊號不太對,這點一直沒弄清楚,jtag訊號),暫停MMU,之後就可以燒啦。看著手冊大家都能燒。

 

bootloader燒好了,就可以啟動了,之後燒核心什麼的,似乎大家都是通過bootloader來做的,我也是。

 

BTW:燒錄FLASH,還有種 socket 方式,這種FLASH可拆卸,取下來,插到專門燒寫器裡,也可以完成燒錄。其他的方法我也沒總結過,也沒用過。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.