亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標(biāo)題: STM32F0的BOOT配置及相關(guān)話(huà)題 [打印本頁(yè)]

作者: taoran    時(shí)間: 2016-5-16 00:23
標(biāo)題: STM32F0的BOOT配置及相關(guān)話(huà)題
   關(guān)于STM32F0系列的啟動(dòng)配置,有人說(shuō)有點(diǎn)看不太懂,貌似有兩套啟動(dòng)方式,又是腳又是選項(xiàng)位的。其實(shí),它跟其它STM32 系列一樣也是有三種啟動(dòng)模式,只是配置方式上有其特色。

    它有兩種配置方式,第一種是利用BOOT0物理腳和Nboot1、Boot_Sel選項(xiàng)位來(lái)確定啟動(dòng)模式;第二種只使用Boot_SelNboot1 Nboot0 三個(gè)選項(xiàng)位來(lái)確定啟動(dòng)模式,完全省卻了物理腳,多出一根腳給用戶(hù)應(yīng)用。

    對(duì)于第一種配置方式,所有STM32F0系列的芯片都適用。第二種配置方式適用于STM32F04XSTM32F09X系列的器件。


下圖是STM32F0系列啟動(dòng)模式配置表。


    紅色方框內(nèi)就是上面所指的第一種配置方式,對(duì)所有STM32F0芯片適用。圖表中的灰色區(qū)域就是前面所說(shuō)的僅適用于STM32F04X和STM32F09X的配置方式,

 

    可以看出,對(duì)于STM32F04XSTM32F09X到底使用哪種配置方式取決于Boot_Sel選項(xiàng)位。對(duì)于非STM32F04XSTM32F09X32F0系列芯片,配置方式只能使用第一種配置方式,此時(shí)Boot_Sel固定為1


    這里不妨說(shuō)說(shuō)第一種配置方式,該方式對(duì)所有STM32F0芯片都適用。BOOT0腳置高、置低簡(jiǎn)單,Nboot1、Boot_Sel選項(xiàng)位怎么定的呢?


    Nboot0 Nboot1Boot_Sel選項(xiàng)位在用戶(hù)選項(xiàng)字節(jié)里,一起來(lái)看看。


    顯然,從其出廠(chǎng)的默認(rèn)初始值可以看出,Nboot0Nboot1、Boot_Sel選項(xiàng)位的默認(rèn)值均為1,即默認(rèn)為第一種配置方式。

    如果此時(shí)BOOT0腳為1則從system memory啟動(dòng),即從芯片內(nèi)嵌的BOOTLOADER啟動(dòng)。

    如果此時(shí)BOOT0腳為0,則從main flash memory啟動(dòng),進(jìn)入用戶(hù)程序。


    針對(duì)STM32F04X/STM32F09X的第二種配置方式 ,這里就不多說(shuō)了。個(gè)人覺(jué)得如果不是特別需要那個(gè)BOOT0腳、或者對(duì)這個(gè)做法特別感興趣的話(huà),大可不必花太多心思和精力在第二種配置方式上 。畢竟你得自行編寫(xiě)用戶(hù)代碼修改Nboot0、Nboot1、Boot_Sel相關(guān)選項(xiàng)位,而且這個(gè)過(guò)程還是有些折騰。折騰了半天可能就為多用一根IO腳,此時(shí)BOOT模式完全由選項(xiàng)位來(lái)確定,個(gè)人覺(jué)得也不是那么直觀和方便 。

    ST官方有一篇應(yīng)用筆記就是針對(duì)STM32F04X/STM32F09X的第二種配置方式的應(yīng)用介紹的,該筆記名為《STM32F09X不使用BOOT腳實(shí)現(xiàn)SYSTEMBOOTLOADER升級(jí)代碼》,有興趣的可以去下載看看。


    倒是有關(guān)STM32F04X/STM32F09X兩個(gè)子系列的空檢操作值得了解下。

    所謂空片一般是指從芯片出廠(chǎng)起就沒(méi)用過(guò)或用過(guò)但經(jīng)過(guò)CHIP erase操作后的芯片。


    STM32F04X/STM32F09X芯片復(fù)位后通過(guò)檢測(cè)地址0x080000000的內(nèi)容是否為0xFFFFFFFF且上面提到的Boot_Sel選項(xiàng)位是否為1來(lái)判斷該芯片是否為空片。若是,則設(shè)置相關(guān)空檢標(biāo)志Empty Check。

 

    在芯片被判定為空的條件下,即使當(dāng)前BOOT配置為從main flash memory啟動(dòng),芯片硬件也會(huì)跳到System Memory 去執(zhí)行內(nèi)嵌啟動(dòng)程序。用過(guò)其它STM32芯片的人就會(huì)明顯感覺(jué)到這里有個(gè)好處,這樣通過(guò)ISP模式進(jìn)行燒錄后不必將BOOT配置腳撥來(lái)?yè)苋サ摹H绻慨a(chǎn)的話(huà),還是省了不少事。

 

    STM32F0參考手冊(cè)里在針對(duì)空檢標(biāo)志的描述時(shí),應(yīng)該說(shuō)上面那段英文講得很清楚了,后面做了一句補(bǔ)充式的描述“檢查地址0x08000 0000的內(nèi)容是否為 0xFFFF FFFF作為判斷為空的條件”。這一說(shuō)可能增加了理解上的困擾,本來(lái)說(shuō)空片就完了,讓芯片回歸到出廠(chǎng)初始狀態(tài)就好。至于對(duì)某地址內(nèi)容或選項(xiàng)位的檢測(cè)只是對(duì)空片的一個(gè)簡(jiǎn)單確認(rèn)。

     

    圍繞TM32F04X/STM32F09X芯片的空檢話(huà)題及下載燒錄,ST官方也有份應(yīng)用筆記,名為《STM32F091空片使用system bootloader下載代碼》,推薦下載閱讀,可以加深理解,從中或許還能順便了解些別的東西。


作者:Miler Shao




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1