對恩智浦MCU有一定了解的朋友,一定知道NXP有一套非常完善的MCU boot loader解決方案:MCU BOOT,你也可曾上手體驗(yàn)過它呢?
這個MCU BOOT的內(nèi)容非常豐富,實(shí)現(xiàn)了基于各種接口的boot loader(UART I2C SPI CAN USB…),并且提供了blhost命令行上位機(jī)工具及其源碼。當(dāng)然,boot loader的源碼也是。。。比較復(fù)雜。一些朋友表示移植,看懂有點(diǎn)困難。正好最近支持客戶時,應(yīng)客戶要求,自己實(shí)現(xiàn)了一套極簡版的USB HID boot loader。協(xié)議和工具都是兼容恩智浦MCU BOOT的。恩智浦的MCU BOOT有一套完整的自定義協(xié)議。在各個MCU芯片手冊的ROM章節(jié),以及MCU BOOT資料包里的文檔中都有詳細(xì)介紹,這里就不贅述了。具體關(guān)于MCU BOOT協(xié)議的介紹和各個接口定義,需要查看MCU BOOT的官方手冊。實(shí)際上這套代碼已經(jīng)存在很多年了。以前主要是支持串口,這次把USB接口加上了。
使用HID bootloader的步驟如下:
1,下載源代碼,git 倉庫地址:https://github.com/yandld/nxp_easy_mcuboot.git2,目前HID boot loader功能只支持Keil。HID功能只支持LPC51U68(后面會加入更多的型號和IDE)。
在 xp_easy_mcubootProjectlpcxpresso51u68中,會看到4個文件夾,分別是:
3,打開boot loader Keil工程: xp_easy_mcubootProjectlpcxpresso51u68lpcxpresso51u68_hid_bl,編譯并下載到LPCXpresso51U68板子上。4,連接LPC51U68的USB(J6)到PC, 然后按住WAKE(SW1)按鍵,再按RESET復(fù)位MCU,強(qiáng)制進(jìn)入boot loader模式:這時候會聽到PC USB識別的聲音,打開 xp_easy_mcubootpc_tool下的KinetisFlashTool.exe
點(diǎn)擊連接,會看到boot loader的連接信息(說明上位機(jī)已經(jīng)成功連接boot loader),如下圖:
5,編譯lpcxpresso51u68_app中的用戶示例代碼(小燈閃爍)。并生成.hex文件,在KinetisFlashTool中點(diǎn)Browse選擇編譯生成好的lpcxpresso51u68_app.hex文件,并點(diǎn)擊Update開始升級,如果看到進(jìn)度條走動并且看到升級成功log 說明升級成功:
打開串口并復(fù)位板子,會看到串口打印log,小燈閃爍,說明boot loader功能實(shí)現(xiàn)正常:
在這個代碼倉庫中,除了LPC51U68 HID boot loader外,還包含其他NXP MCU的boot loader代碼,絕大多數(shù)只支持串口。
這套代碼實(shí)際是NXP官方MCU BOOT代碼的最小簡化版本,砍掉了絕大多數(shù)的高級功能,只留最核心的幾條常用命令處理,所以代碼比官方的精簡好懂很多。當(dāng)然它也只能實(shí)現(xiàn)最簡單的boot loader,像雙固件冗余升級,安全升級等特性是實(shí)現(xiàn)不了的。如果您在使用中有問題,歡迎給我留言哦~
責(zé)任編輯:haq
-
mcu
+關(guān)注
關(guān)注
146文章
17002瀏覽量
350332 -
HID
+關(guān)注
關(guān)注
2文章
129瀏覽量
46567 -
代碼
+關(guān)注
關(guān)注
30文章
4751瀏覽量
68359
原文標(biāo)題:如何使用LPC51U68的HID boot loader源碼
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論