當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式大雜燴
[導(dǎo)讀]不同開發(fā)板,啟動方式不一樣,今天我們來介紹imx6ull開發(fā)板的啟動方式,這非常重要。若不了解清楚啟動方式,后面的所有開發(fā)工作便無從談起。

不同開發(fā)板,啟動方式不一樣,今天我們來介紹imx6ull開發(fā)板的啟動方式,這非常重要。若不了解清楚啟動方式,后面的所有開發(fā)工作便無從談起。

本文摘自100ask_imx6ull 開發(fā)板 配套學(xué)習(xí)手冊-《嵌入式Linux應(yīng)用開發(fā)完全手冊_韋東山全系列視頻文檔全集V2.5》.pdf

1.1 IMX6ULL 啟動方式

參考資料:

開發(fā)板資料網(wǎng)盤?

路徑:

06_Datasheet(數(shù)據(jù)手冊)

-> Core_board->CPU->IMX6ULLRM.pdf”

中《Chapter 8: System Boot》。

網(wǎng)盤地址:

100ASK_IMX6ULL

鏈接:

https://eyun.baidu.com/s/3smDzFAH
密碼:LDCn

1.1.1芯片手冊講解

IMX6ULL芯片內(nèi)部有一個(gè)boot ROM,上電后boot ROM上的程序就會運(yùn)行。它會根據(jù)BOOT_MODE[1:0]的值,以及eFUSE或GPIO的值決定后續(xù)的啟動流程。

注:eFUSE即熔絲,只能燒寫一次,一般正式發(fā)布產(chǎn)品時(shí)燒寫最終值;平時(shí)調(diào)試時(shí)通過GPIO來設(shè)置開發(fā)板的啟動方式。

boot ROM上的程序功能強(qiáng)大,可以從USB口或串口下載程序并把它燒寫到Flash等設(shè)備上,也可以從SD卡或EMMC、Flash等設(shè)備上讀出程序、運(yùn)行程序。

問題來了:

① boot ROM是從USB口下載、運(yùn)行程序,還是從SD卡等設(shè)備上讀出、運(yùn)行程序,這由誰決定?

由BOOT_MODE[1:0]的值來決定啟動方式,它們來自于2個(gè)引腳BOOT_MODE1、BOOT_MODE0。這2個(gè)引腳在上電時(shí)是輸入引腳,芯片啟動后采集這2個(gè)引腳的值,存入BOOT_MODE寄存器。以后這2個(gè)引腳就可以用于其他功能,不會影響到BOOT_MODE寄存器。

BOOT_MODE[1:0]的值確定了4種啟動模式,如下圖:

BOOT_MODE

在100ASK_IMX6ULL中,這2個(gè)引腳對應(yīng)的原理圖如下:

原理圖

00模式,?在我們的開發(fā)過程中很少用到,簡單介紹一下:在這種模式下,GPIO的值被忽略。Boot ROM會根據(jù)eFUSE的值來選擇啟動設(shè)備、設(shè)置啟動設(shè)備。但是,對于剛出廠的芯片eFUSE值可能是錯(cuò)亂的、不適合你的設(shè)備的,怎么辦?eFUSE中有一個(gè)值BT_FUSE_SEL,它的出廠值是0,表示eFUSE未被燒寫。

boot ROM程序發(fā)現(xiàn)BT_FUSE_SEL為0時(shí),它會通過USB或串口來下載程序;發(fā)現(xiàn)BT_FUSE_SEL為1時(shí),才會根據(jù)eFUSE的值選擇啟動設(shè)備,讀出、運(yùn)行該設(shè)備上的程序。

01模式,boot ROM程序通過USB或串口下載、運(yùn)行程序,這個(gè)模式可以用來燒寫EMMC等設(shè)備。我們的開發(fā)板出廠時(shí),就是通過這個(gè)模式下載、燒寫出廠程序的。

10模式,稱之為內(nèi)部模式,簡單地說就是從SD卡、EMMC等設(shè)備啟動程序。這就引入下面第2個(gè)問題。

② 如何選擇啟動設(shè)備?

00模式下是通過eFUSE的值選擇啟動設(shè)備,我們不關(guān)心。

10模式下既可以通過eFUSE的值也可以通過GPIO的值來選擇啟動設(shè)備,但是到底通過誰來決定?eFUSE中有一個(gè)值BT_FUSE_SEL,對,又是它。它的初始值為0,表示eFUSE未被燒寫。

在10模式下,當(dāng)BT_FUSE_SEL為0時(shí)就會通過GPIO來選擇啟動設(shè)備;當(dāng)BT_FUSE_SEL為1時(shí)就會通過eFUSE來選擇啟動設(shè)備。

在開發(fā)階段,我們使用GPIO來選擇設(shè)備,這就引入下面第3個(gè)問題。

③ 如何通過eFUSE或GPIO選擇、設(shè)置啟動設(shè)備?

通過eFUSE或GPIO不僅能選擇啟動設(shè)備,還可以設(shè)置啟動設(shè)備。為什么還需要設(shè)置?比如Nand Flash參數(shù)各有不同,有些的頁大小是2048,有些是4096。這些參數(shù)不同,boot ROM程序讀Nand Flash的方法就不同,我們必須把這些參數(shù)告訴boot ROM:通過eFUSE或GPIO來標(biāo)明這些參數(shù)。

首先看看要設(shè)置哪些eFUSE或GPIO來選擇不同的啟動設(shè)備。

BOOT_CFG1設(shè)置

從上圖可知,既可以使用eFUSE也可以使用GPIO來選擇啟動設(shè)備,換句話說GPIO可以覆蓋eFUSE的值。

哪些GPIO覆蓋哪些eFUSE?

這可以查看IMX6ULL芯片手冊《Chapter 8: System Boot》里的《GPIO boot overrides》,我們把它摘出來放在1.1.3小節(jié)里。

選擇啟動設(shè)備后,還需要標(biāo)明一些參數(shù)。比如選擇EMMC啟動時(shí),EMMC接在哪一個(gè)接口,eSDHC1還是eSDHC2?它的速度如何?比如選擇TF卡啟動時(shí),TF卡接在哪一個(gè)接口,eSDHC1還是eSDHC2?它的速度如何?

假設(shè)使用EMMC啟動,或是TF卡啟動,怎么設(shè)置eFUSE或GPIO?這些信息可以查詢IMX6ULL芯片手冊《Chapter 5: ?Fusemap》,摘錄如下。

Fusemap

當(dāng)BOOT_MODE設(shè)置為0b00時(shí),通過eFUSE選擇啟動設(shè)備,通過eFUSE獲得設(shè)備的參數(shù)。

當(dāng)BOOT_MODE設(shè)置為0b10時(shí),通過eFUSE或GPIO來選擇啟動設(shè)備,獲得設(shè)備的參數(shù);使用eFUSE還是GPIO由eFUSE中的BT_FUSE_SEL決定,它默認(rèn)是0,表示使用GPIO。

以BOOT_MODE為0b10為例,解析一下上圖。要設(shè)置為SD卡、TF卡啟動,有2個(gè)設(shè)置方法:

a. 設(shè)置eFUSE的BOOT_CFG1[7:5]為0b010,

或 b. 查看《3.1.3 GPIO boot overrides》確定BOOT_CFG1[7:5]對應(yīng)的GPIO為LCD1_DATA07~05,把這3個(gè)引腳設(shè)置為0b010。

根據(jù)SD卡、TF卡的性能,可以設(shè)置eFUSE或GPIO來表示它能否提供更高的速度:

a. 設(shè)置eFUSE的BOOT_CFG1[4:0],

或 b. 查看《3.1.3 GPIO boot overrides》確定BOOT_CFG1[4:0]對應(yīng)的GPIO為LCD1_DATA04~00,設(shè)置這些引腳。

IMX6ULL有兩個(gè)SD卡、TF卡接口,使用哪一個(gè)接口?請看下表:

a. 設(shè)置eFUSE的BOOT_CFG2[4:3]可以確定使用eSDHC1或eSDHC2,

或 b. 查看《3.1.3 GPIO boot overrides》確定BOOT_CFG2[4:3]對應(yīng)的GPIO為LCD1_DATA12~11,設(shè)置這些引腳

BOOT_CFG


通過eFUSE或GPIO,還可以標(biāo)明啟動設(shè)備的更多參數(shù),具體細(xì)節(jié)可以參考芯片手冊《Chapter 5: ?Fusemap》,作為硬件開發(fā)人員需要去細(xì)細(xì)研究;作為軟件開發(fā)人員,實(shí)際上只需要看開發(fā)板手冊知道怎么設(shè)置啟動開關(guān)即可。

1.1.2 IMX6ULL啟動方式選擇

100ASK_IMX6ULL開發(fā)板上的紅色撥碼開關(guān)用來設(shè)置啟動方式、選擇啟動設(shè)備,支持這3種方式:EMMC啟動、SD卡啟動、USB燒寫。

板子背后畫有一個(gè)表格,表示這3種方式如何設(shè)置。

表格如下:

表格

拔碼開關(guān)中的SW3、SW4用來設(shè)置BOOT_MODE,ON表示0,OFF表示1。

所以當(dāng)SW3、SW4設(shè)置為ON、OFF時(shí),BOOT_MODE為0b10,將會使用SD卡、TF卡、EMMC等設(shè)備啟動。

剛出廠的開發(fā)板中BT_FUSE_SEL默認(rèn)為0,表示使用GPIO來設(shè)置參數(shù)。即使用LCD1_DATA07~05來選擇啟動設(shè)備。

100ASK_IMX6ULL開發(fā)板只支持SD/TF卡、EMMC啟動,LCD1_DATA07~05為0b010時(shí)選擇SD/TF卡啟動,LCD1_DATA07~05為0b011時(shí)選擇EMMC啟動。

這兩種啟動設(shè)備對應(yīng)的LCD1_DATA07~06的值相同,都是0b01,這在核心板上已經(jīng)通過電阻設(shè)置好,我們只需要在撥碼開關(guān)上設(shè)置SW1(對應(yīng)LCD1_DATA05)就可以。

IMX6ULL上有2個(gè)EMMC Flash接口,也復(fù)用為2個(gè)SD/TF卡接口,通過LCD1_DATA12~11來選擇接口。

0b00對應(yīng)eSDHC1接口,0b01對應(yīng)eSDHC2接口。LCD1_DATA12的值在核心板上已經(jīng)通過電阻設(shè)置好。

LCD1_DATA11的值通過撥碼開關(guān)SW2來設(shè)置:ON表示0,對應(yīng)eSDHC1接口,100ASK_IMX6ULL的TF卡接口使用了eSDHC1接口;OFF表示1,對應(yīng)eSDHC2接口,100ASK_IMX6ULL的EMMC接口使用了eSDHC2接口。

這3種啟動方式的設(shè)置示意圖如下:

要注意的是,設(shè)置為USB啟動時(shí),不能插上SD卡、TF卡。剛出廠的板子在EMMC上燒寫了系統(tǒng),你可以設(shè)置為EMMC啟動方式。

1.1.3 GPIO boot overrides

IMX6ULL中既可以通過eFUSE也可以通過GPIO來選擇、設(shè)置啟動設(shè)備,在手冊里大部分場合只列出了eFUSE,對應(yīng)的GPIO需要查表:IMX6ULL芯片手冊《Chapter 8: System Boot》里的《GPIO boot overrides》。

我們把它摘錄出來。

總結(jié)

整篇讀下來,概念有點(diǎn)多,你可能會感覺有點(diǎn)抽象,其實(shí)現(xiàn)在不理解啟動方式原理沒關(guān)系,現(xiàn)在只要記住《3種啟動方式的設(shè)置示意圖》即可,清楚怎么撥碼對應(yīng)什么啟動方式,原理留到后期再研究也行。

精品推薦

文中提到的100ask_imx6ull,是用來學(xué)習(xí)嵌入式Linux的不錯(cuò)選擇,0利潤,外設(shè)豐富,一千多頁文檔,一百多講視頻,開源共享,如有興趣,可以手淘掃碼了解開發(fā)板的更多參數(shù):

推薦閱讀:?

【課程更新】更新8節(jié)輸入系統(tǒng)應(yīng)用編程?

韋東山《電子發(fā)燒友 x B站》直播公開課回放?

STM32MP157 A7開發(fā)手冊和M4 開發(fā)手冊齊發(fā)布




免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉