試配置的實戰(zhàn)解析)
NXP又發(fā)新MCU了而且這次不是單發(fā)芯片連FRDM開發(fā)平臺一起做了大升級。消息出來之后好幾個群里都在討論一件事這個All-Purpose到底覆蓋哪些場景FRDM從評估板變成開發(fā)平臺對日常干活的人意味著什么作為一個在NXP生態(tài)里摸爬滾打多年的工程師我結(jié)合自己在S32K、RT系列以及老款FRDM板卡上的實際經(jīng)驗把這次發(fā)布背后的產(chǎn)品邏輯、底層機制和上手路徑拆開聊一聊。順便文中也會回應(yīng)幾個搜索頻率特別高的問題——MCU啟動流程、調(diào)試器startup配置、串口接收腳上拉這些細節(jié)看著不起眼真踩進去一個坑就能耗掉一整天。1. 新MCU與FRDM平臺同步迭代NXP的生態(tài)棋盤1.1 All-Purpose是定位不是口號通用MCU的邊界在哪里NXP的MCU產(chǎn)品線其實鋪得很開。S32K系列面向汽車安全機制和功能安全等級是硬指標RT跨界系列主打高性能邊緣計算動不動就是雙核、高主頻LPC系列則是老牌通用產(chǎn)品線主打穩(wěn)定和成本。而MCX系列是這幾年NXP針對嵌入式通用市場重點推的新家族。這次發(fā)布的所謂All-Purpose MCU從產(chǎn)品布局看就是MCX這條線的持續(xù)擴展。為什么我說All-Purpose是定位而不是營銷話術(shù)因為通用MCU的核心競爭力從來不是某一項指標的極致而是均衡兩個字。功耗、性能、外設(shè)豐富度、價格、生態(tài)成熟度這幾項必須找到一個讓大多數(shù)項目都舒服的平衡點。S32K344這種車規(guī)芯片功能安全機制確實強但通用市場用不上那么多冗余安全設(shè)計成本也降不下來RT1176雖然性能猛可對很多簡單的控制任務(wù)來說雙核高主頻就是性能溢出還帶來更復(fù)雜的電源設(shè)計和EMC問題。通用MCU要做的恰恰是把夠用和好用之間的那個空檔填上。這也解釋了為什么大家會反復(fù)搜索RT1176使用量多不多這類問題。原因很簡單很多項目本質(zhì)上不需要那么高的性能但NXP之前在中低端市場缺少一個接口豐富、生態(tài)成熟、SDK好用的新選擇工程師只能拿高端芯片降維打擊。新MCU的出現(xiàn)正是要填補這個位置。1.2 FRDM從免費評估板到開發(fā)平臺的升級邏輯FRDM系列在NXP生態(tài)里的歷史不短了。早年的FRDM-K64F、FRDM-KL25Z核心定位很清晰——免費評估。拿一塊板子點個燈跑個官方示例感受一下芯片能力。但說實話老FRDM板作為開發(fā)平臺的潛質(zhì)一直沒被充分挖掘。這次Enriched FRDM Development Platform的升級有幾個方向是實打?qū)嵉摹J紫仁前遢d調(diào)試器的變化。老FRDM板上的OpenSDA調(diào)試器在穩(wěn)定性和兼容性上只能說夠用新平臺換上了更成熟的調(diào)試方案跟MCUXpresso IDE、S32DS以及第三方的調(diào)試器配合都順暢了很多。其次是擴展接口的豐富程度。新FRDM平臺在傳統(tǒng)Arduino排針的基礎(chǔ)上增加了不少工業(yè)級接口的預(yù)留位置比如CAN收發(fā)器、RS485、工業(yè)以太網(wǎng)PHY的擴展位。這意味著板子可以直接對接實際的工控模塊而不是只能停留在教學演示的層面。第三是板級外設(shè)的多樣化傳感器、音頻接口、顯示接口直接集成在板上拿到手就能驗證一個比較完整的方案而不是外接一堆杜邦線的飛線地獄。這些變化的底層邏輯是NXP不想讓FRDM只做評估板它想把FRDM做成從評估到原型驗證再到量產(chǎn)參考的橋梁。對工程師來說這意味著拿到一塊FRDM新板不是在玩玩具而是在為最終的量產(chǎn)設(shè)計做預(yù)研。1.3 開發(fā)平臺的本質(zhì)降低從芯片選型到產(chǎn)品落地的摩擦力我在多個項目里用過NXP的芯片一個很深的體會是芯片本身的能力差距其實不如開發(fā)工具鏈的效率差距對項目進度的影響大。FRDM平臺的升級表面上改的是硬件接口和板載資源本質(zhì)上降低的是從選型到落地之間的摩擦力。舉個實際例子。早年用S32K系列做項目光搭開發(fā)環(huán)境、配置時鐘樹、調(diào)通調(diào)試器就花了兩周。后來用MCUXpresso Config Tools引腳和時鐘的圖形化配置、代碼自動生成、SDK組件拖拽式添加這些流程壓縮到了半天。新FRDM平臺把這些工具鏈的整合又往前推了一步——板卡配置文件、官方示例工程、SDK版本在出廠時就對齊了拿到板子之后第一件事不是配環(huán)境而是跑示例這種體驗上的差異對新手和資深工程師都同樣重要。2. 啟動、調(diào)試、串口上拉開發(fā)者最常踩的三個底層坑2.1 啟動流程拆解從復(fù)位向量到main()中間發(fā)生了什么NXP S32K344 bootloader和MCU啟動流程是什么搜索熱詞我一點都不意外。很多人寫bootloader或者排查啟動異常時對NXP MCU的啟動鏈路理解不完整出了問題很難定位。我在這里把通用流程拆一遍以Cortex-M內(nèi)核的NXP MCU為例S32K、RT、MCX都適用芯片上電后內(nèi)核從0x00000000地址讀取棧頂指針MSP從0x00000004地址讀取復(fù)位向量然后跳轉(zhuǎn)到復(fù)位向量指向的啟動代碼。這個過程里NXP芯片會先檢查啟動配置引腳或Fuse決定是從內(nèi)部Flash啟動、串行下載模式啟動還是從外部存儲器啟動。從內(nèi)部Flash啟動的話接下來執(zhí)行Flash起始處的啟動代碼完成時鐘初始化、存儲器初始化把RW段和ZI段搬移好進入C環(huán)境最后才跳到main()。這里面有一個高頻坑自己寫了bootloader之后APP跳轉(zhuǎn)不過去或者跳過去就死機。排查方向通常是三個APP的向量表偏移是否設(shè)置正確、跳轉(zhuǎn)前有沒有關(guān)閉全局中斷、時鐘配置是否需要重新初始化。以S32K344為例它的啟動流程還涉及HSE硬件安全引擎的初始化boot階段如果沒正確配置安全機制APP運行到需要安全校驗的模塊時會莫名卡死。這個問題我在實際項目中踩過排查了很久才發(fā)現(xiàn)是安全機制初始化順序的問題不是代碼邏輯問題。2.2 板載調(diào)試器與IDE的startup配置一個隱藏的時間黑洞NXP S32DS的Debugger的Startup設(shè)置這個搜索詞非常典型。S32 Design Studio的調(diào)試配置里有個Startup標簽頁它的作用是在調(diào)試器連接目標板后自動執(zhí)行一系列命令連接芯片、下載代碼、設(shè)置PC指針、設(shè)置斷點、運行腳本完成外設(shè)初始化。很多人改了硬件設(shè)計之后發(fā)現(xiàn)調(diào)試器連不上或者下載后程序不自動運行第一反應(yīng)是硬件壞了、芯片鎖死了但實際情況往往是Startup配置里某個選項不對。比如Reset類型選錯——有的芯片需要hardware reset有的需要software reset選錯了下載后芯片狀態(tài)就不對又比如Download選項勾選了某個Flash區(qū)域但地址配置和實際芯片不符導(dǎo)致下載失敗或者下載了但沒生效。我的建議是拿到新板卡或者新芯片型號時先去Debug Configuration里把自定義腳本清空用默認Startup配置跑一遍確認可以正常連接、下載、調(diào)試之后再逐步添加自定義初始化命令。這樣能有效避免把工具鏈配置問題誤判成硬件設(shè)計問題省下的排查時間非常可觀。2.3 串口接收腳的上拉一個看似簡單卻反復(fù)出現(xiàn)的原理圖問題MCU串口接收端口是否有上拉這個搜索詞直接反映了一個原理圖設(shè)計中的高頻困惑。先說結(jié)論UART的RX引腳通常需要在外部加一個上拉電阻特別是以下幾種場景——沒有外部收發(fā)器、直接用TTL電平對接、或者對端設(shè)備在空閑狀態(tài)下輸出是高阻態(tài)。為什么因為UART協(xié)議規(guī)定總線空閑狀態(tài)為高電平。如果對端設(shè)備上電慢、或者空閑時不驅(qū)動總線RX引腳就等于懸空會引入噪聲MCU會收到大量亂碼幀。但問題來了MCU內(nèi)部的上拉能不能省掉外部電阻答案是看情況。大多數(shù)NXP MCU的引腳內(nèi)部上拉是可配置的但默認是關(guān)閉的需要在引腳配置工具或代碼里顯式打開。而且內(nèi)部上拉的阻值一般是40kΩ級別比較弱抗干擾能力遠不如外部10kΩ上拉。在FRDM板卡上這個問題會更明顯——通過Arduino排針擴展時如果某個UART模塊的TX在空閑時是高阻MCU的RX就可能讀到隨機電平。我的建議量產(chǎn)板的UART_RX外部放一個10kΩ到VCC的上拉電阻成本不到一分錢能省掉大量通信偶發(fā)異常的排查時間。特別是工業(yè)環(huán)境里這條經(jīng)驗非常實用。2.4 ADC采樣精度原理簡單但電路設(shè)計才是決定因素MCU ADC工作原理也是個常青話題。ADC的核心原理是采樣-保持-量化-編碼這個誰都知道。但真正決定采樣精度的往往不是ADC的位數(shù)而是外部電路設(shè)計。參考電壓的噪聲、模擬地和數(shù)字地的分割、輸入阻抗的匹配這些因素對實際精度的影響比12位還是16位大得多。FRDM新平臺在ADC方面做了專門的優(yōu)化模擬參考電壓有低噪聲設(shè)計板級布局也考慮了模擬信號的完整性。但如果你要自己畫板子有幾個原則必須記住模擬地和數(shù)字地盡量單點連接、VREF引腳必須加去耦電容、ADC輸入串阻不要太大、采樣保持電容要選對。這些不需要高深理論全是實踐出來的經(jīng)驗。我在一個用NXP MCU做電機電流采樣的項目里就遇到過ADC采樣值跳動的問題最后定位到是參考電壓引腳的去耦電容離芯片太遠走線太長引入了噪聲。改版后電容貼近引腳放置問題直接消失。3. 引腳配置、代碼生成與多IDE接入工具鏈實際體驗3.1 MCUXpresso Config Tools與SDK的配合方式新FRDM平臺一個很明顯的提升是和MCUXpresso生態(tài)的配合更加順暢了。MCUXpresso包含兩套工具基于Eclipse的IDE和獨立的Config Tools配置器。我推薦的方式是用Config Tools完成引腳、時鐘、外設(shè)的圖形化配置生成代碼后導(dǎo)入IDE編譯調(diào)試。具體流程可以這樣走在MCUXpresso Config Tools里新建工程選擇對應(yīng)的FRDM板卡和MCU型號工具會自動匹配板級配置文件。在Pin配置頁面里圖形化分配引腳功能工具會自動檢查引腳沖突——這一步對新手尤其友好不至于在幾百個引腳的芯片里迷失。在Clock配置頁面里設(shè)置系統(tǒng)時鐘樹。這里提醒一句參考官方PLL倍頻參數(shù)就好不要試圖超頻NXP的時鐘樹配置工具會自動檢查非法配置。在Peripherals配置頁面里使能需要的UART、I2C、ADC等外設(shè)設(shè)置波特率、采樣周期等參數(shù)。點擊生成代碼工具會輸出初始化函數(shù)和中斷處理模板。在IDE中補充用戶邏輯代碼編譯下載運行。這里有個重要提醒每次重新生成代碼時工具可能會覆蓋手動修改的部分。正確的做法是把自己寫的邏輯放在用戶代碼段注釋標記之間——通常是USER CODE BEGIN和USER CODE END之間——這樣重新生成時不會被覆蓋。這個習慣一定要養(yǎng)成否則一次重新配置就讓你丟失大量代碼欲哭無淚。3.2 從OrCAD的引腳導(dǎo)出看原理圖設(shè)計效率Cadence OrCAD如何快速導(dǎo)出MCU的引腳信息這個搜索詞我太有共鳴了。做原理圖設(shè)計時最繁瑣的環(huán)節(jié)之一就是把幾百個引腳的MCU封裝建好并確保引腳網(wǎng)絡(luò)完全正確。一個引腳標錯打樣回來就廢一塊板子。OrCAD里快速導(dǎo)出MCU引腳信息的思路主要有兩種第一種用OrCAD Capture的CIS數(shù)據(jù)庫直接從廠家元件庫調(diào)取封裝和引腳信息第二種利用腳本工具從PDF或Excel格式的引腳表自動生成原理圖符號——這種方法適合芯片太新、元件庫還沒有的情況。但更高效的做法是直接使用NXP官方提供的Design Files。NXP的大部分MCU和FRDM板卡都提供OrCAD格式的原理圖、封裝庫和PCB布局文件去官網(wǎng)產(chǎn)品頁面就能下載。拿到這些文件后不要從頭畫直接在官方參考設(shè)計上修改。特別是FRDM平臺的參考設(shè)計標注清晰、分區(qū)合理在上面做修改比從零開始畫省太多時間。3.3 VS Code等第三方環(huán)境接入新MCU的路徑很多工程師不習慣Eclipse系的IDE想用VS Code開發(fā)NXP MCU。其實這個訴求很合理VS Code的輕量、定制性、和Git等工具的集成都是優(yōu)勢。在VS Code里接入新的NXP通用MCU基本路徑是這樣的安裝VS Code和必要擴展C/C擴展、Cortex-Debug擴展。下載ARM GCC工具鏈配置好環(huán)境變量。使用MCUXpresso的CMake導(dǎo)出功能生成構(gòu)建文件或者手寫CMakeLists.txt。配置Cortex-Debug的調(diào)試配置文件指定調(diào)試器類型、芯片型號、固件路徑。添加launch.json和tasks.json把編譯、燒錄、調(diào)試串起來。我自己在Linux服務(wù)器上做過一次完整流程編譯效率確實比Eclipse IDE要高特別是做CI/CD的時候命令行編譯是剛需。但坦白說VS Code方案需要自己維護構(gòu)建系統(tǒng)配置對新手有一定門檻——建議先熟悉了MCUXpresso IDE之后再切換到VS Code會讓整個流程的理解更透徹。3.4 一個能夠跑通的典型工程配置CMakeLists模板思路無論用MCUXpresso IDE還是VS Code理解CMake構(gòu)建方式都有助于你駕馭NXP生態(tài)。一個典型的MCUXpresso導(dǎo)出CMakeLists.txt結(jié)構(gòu)大概是這樣的cmake_minimum_required(VERSION 3.10) project(frdm_demo) set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR arm) set(TOOLCHAIN_PREFIX arm-none-eabi-) set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}gcc) include_directories( source source/drivers source/board source/startup ) add_executable(${PROJECT_NAME}.elf source/main.c source/board/board.c source/startup/startup_mcx.c source/drivers/clock_config.c source/drivers/pin_mux.c ) target_link_libraries(${PROJECT_NAME}.elf)這只是一個極簡的框架真實工程里會有更多外設(shè)驅(qū)動源文件和鏈接腳本。核心點是CPU型號和工具鏈前綴要匹配、鏈接腳本要指向正確的Flash起始地址和大小、啟動文件不能漏。這些細節(jié)在MCUXpresso IDE里是自動處理的但切換到CMake手動構(gòu)建后每一個都是可能卡殼的地方。4. 和ST、TI的同類產(chǎn)品放在一起新MCU的差異化在哪4.1 與STM32H7的FOC應(yīng)用場景對比STM32H7 MCU的FOC計算是電機控制領(lǐng)域的高頻話題。STM32H7靠高主頻和強大的數(shù)學運算能力在FOC電機控制里確實表現(xiàn)不錯。新的NXP通用MCU要在這個場景競爭靠的不是更高主頻而是外設(shè)集成的貼合度。FOC算法需要三樣硬實力高速ADC同步采樣、高精度PWM互補輸出、足夠的算力執(zhí)行Clarke變換/Park變換和PID環(huán)。NXP在許多MCU里把硬件觸發(fā)ADC和PWM聯(lián)動機制做得很細對于電機控制這類實時性要求極高的場景硬件聯(lián)動比純靠中斷觸發(fā)更可靠延時更小、抖動更小。FRDM新平臺上也專門設(shè)計了電機控制擴展接口可以直接連接驅(qū)動板這個細節(jié)對做電機控制的團隊很友好。4.2 與TI AM261x工業(yè)MCU的架構(gòu)對比TI AM261x工業(yè)MCU架構(gòu)解析異構(gòu)計算、實時控制與工業(yè)通信這個熱詞反映了工業(yè)MCU的一個趨勢——異構(gòu)計算正在從高端芯片向下摸底滲透。AM261x是TI推出的融合了Cortex-M和Cortex-R的工業(yè)MCU主打?qū)崟r控制和工業(yè)通信。NXP的通用MCU目前架構(gòu)相對傳統(tǒng)多采用單核或雙核Cortex-M組合。但NXP的優(yōu)勢在于軟件生態(tài)的統(tǒng)一性——S32K、RT、MCX這些產(chǎn)品線共享SDK和配置工具鏈同一個工程師可以在不同產(chǎn)品線之間快速切換。這種統(tǒng)一性在團隊協(xié)作和代碼復(fù)用上帶來的便利比單芯片的峰值性能更實在。做工業(yè)控制的朋友應(yīng)該都有體會項目交付周期壓力大工程師上手快、復(fù)用率高這些軟實力對項目進度的影響往往比芯片算力更大。4.3 仿真工具與真實平臺的銜接別指望Proteus跑新MCUProteus最新版本支持哪些ARM MCU這個搜索詞在高校教學和快速驗證場景里很常見。Proteus確實支持不少ARM內(nèi)核MCU的仿真但如果你指望它支持最新的NXP通用MCU恐怕會失望——新芯片從發(fā)布到仿真軟件支持往往有很長時間的滯后。我的建議很簡單對于新MCU別指望仿真工具能幫上忙直接用FRDM開發(fā)板做硬件驗證。一百多塊錢的開發(fā)板其價值遠超仿真軟件——它跑在真實時鐘頻率、真實外設(shè)、真實信號完整性環(huán)境下調(diào)試體驗和仿真完全不是一個量級。FRDM平臺的定位就是低門檻、低成本的硬件驗證方案。做原型驗證和課程設(shè)計FRDM比仿真軟件更有說服力。4.4 一張表看懂幾類芯片的典型分工系列典型定位核心優(yōu)勢適用場景S32K車規(guī)MCU功能安全、AUTOSAR支持車身控制、BMS、域控制器RT系列跨界MCU高性能、多媒體、邊緣計算HMI、語音識別、機器視覺MCX系列通用MCU功耗均衡、外設(shè)豐富、生態(tài)成熟IoT節(jié)點、電機控制、工業(yè)傳感LPC系列傳統(tǒng)通用MCU成本低、穩(wěn)定、兼容性強存量項目、簡易控制這張表不用背但要理解一個核心觀點NXP的產(chǎn)品線劃分不是簡單的性能從低到高而是按場景安全等級實時性的矩陣來布局的。選型時先明確自己的應(yīng)用屬于哪個象限再去對應(yīng)系列里找型號會高效很多。5. 用FRDM新板把項目跑起來從上電到量產(chǎn)的完整鏈路5.1 上電前的檢查這幾步能幫你少走很多彎路拿到FRDM新板子先別急著插USB。我建議按這個順序檢查一遍先看快速開始指南確認板卡的供電方式——是通過USB供電還是需要外接電源不同版本可能有差異。檢查跳線帽位置特別是電源跳線、調(diào)試接口隔離跳線。有的是默認短接狀態(tài)改動硬件連接之前務(wù)必確認。插USB線之前用萬用表二極管檔測一下VCC對地阻值紅表筆接地黑表筆接VCC正常讀數(shù)應(yīng)該在0.3到0.7之間。如果讀數(shù)是0或者很小說明存在短路這時候上電可能燒板。上電后觀察指示燈狀態(tài)確認板載調(diào)試器枚舉正常電腦識別到調(diào)試器接口。這套檢查流程看著繁瑣但每次都能幫我避免板子為什么沒反應(yīng)的初級問題。特別是從倉庫拿舊板子的時候鬼知道上一個使用者動了哪些跳線。5.2 第一個外設(shè)實驗從點燈到定時器再到通信外設(shè)在FRDM新板上我建議的實驗順序是點燈、定時器中斷、UART回環(huán)。這個順序是經(jīng)過考慮的——點燈驗證的是工具鏈閉環(huán)創(chuàng)建工程、編譯、下載、調(diào)試器的連接定時器中斷驗證的是時鐘樹和中斷系統(tǒng)UART回環(huán)驗證的是通信外設(shè)和引腳配置。三步走完整條開發(fā)鏈路的核心環(huán)節(jié)就都驗證過了。點燈實驗的時候第一次編譯下載可能會碰到幾個小坑比如鏈接腳本里Flash起始地址和實際不匹配、調(diào)試器下載速度太快導(dǎo)致硬件不穩(wěn)定、板載調(diào)試器固件版本太舊需要升級。這些問題的排查方法在前面幾章已經(jīng)提到過初始化前用默認配置逐項驗證不急于自定義。一個具體的點燈代碼片段供參考配合MCUXpresso生成的初始化代碼#include fsl_gpio.h #include fsl_clock.h #define LED_RED_PIN 2U #define LED_RED_PORT GPIOA void delay_loop(volatile uint32_t count) { while (count--) { __asm volatile(nop); } } int main(void) { /* 引腳配置、時鐘配置在pin_mux.c和clock_config.c中生成 */ gpio_pin_config_t led_config { kGPIO_DigitalOutput, 0, }; GPIO_PinInit(LED_RED_PORT, LED_RED_PIN, led_config); while (1) { GPIO_PinWrite(LED_RED_PORT, LED_RED_PIN, 1U); delay_loop(500000); GPIO_PinWrite(LED_RED_PORT, LED_RED_PIN, 0U); delay_loop(500000); } }這個例子的重點不是代碼本身而是讓你確認頭文件路徑正確、時鐘和外設(shè)初始化被正確調(diào)用、編譯鏈接無誤。如果這段代碼能跑起來說明工具鏈已經(jīng)通了后面的開發(fā)就可以專注在業(yè)務(wù)邏輯上。5.3 從FRDM到量產(chǎn)板卡幾個容易被忽略的關(guān)鍵點FRDM原型驗證通過后設(shè)計自己的量產(chǎn)板時有幾個坑必須提醒啟動配置引腳的上下拉狀態(tài)。FRDM板上這些引腳已經(jīng)按芯片要求配置好了但自制板如果漏接或者誤接芯片可能無法正常啟動。時鐘源選擇。FRDM默認用板載晶振自制板如果用內(nèi)部RC或者換用其他頻率的晶振必須在時鐘配置里對應(yīng)修改。去耦電容的位置和數(shù)量。FRDM的電源設(shè)計是經(jīng)過優(yōu)化的如果照著FRDM原理圖抄板子卻省略了部分濾波電容供電紋波可能超標。調(diào)試接口一定預(yù)留。量產(chǎn)板哪怕成本壓力大也要焊一個SWD調(diào)試接口——后期排查問題節(jié)省的時間成本遠超這幾毛錢。參考電壓和模擬地處理。如果量產(chǎn)板有用ADC模擬部分的布局要嚴格按照參考設(shè)計來處理不能為了走線方便隨意分割地平面。這些點看著都是老生常談但我見過太多項目從FRDM遷到自制板之后因為啟動配置引腳漏接或者去耦電容不足花了一兩周時間排查玄學問題。實際上這些都不是玄學都是原理圖階段可以避免的低級失誤。5.4 新平臺和量產(chǎn)板之間的另一道橋bootloader與固件升級最后聊一個容易被忽視但很重要的環(huán)節(jié)——bootloader。從FRDM原型到量產(chǎn)固件升級方式往往要從IDE下載切換成bootloader方案。這也是S32K344 bootloader搜索量很高的原因。一個穩(wěn)妥的bootloader設(shè)計通常包括固定優(yōu)先級的中斷向量表處理、Flash扇區(qū)劃分、固件校驗策略、升級失敗回滾機制。在NXP MCU上實現(xiàn)時要注意啟動流程圖里說的向量表偏移問題——APP的向量表必須偏移到APP所在Flash區(qū)域同時保證中斷響應(yīng)正常。FRDM平臺上可以先跑通一個簡單的串口bootloader驗證升級鏈路再遷移到量產(chǎn)板。這個流程值得在原型階段就設(shè)計好否則量產(chǎn)之后再補bootloader改動成本會非常大。