對(duì)恩智浦MCU有一定了解的朋友,一定知道NXP有一套非常完善的MCU boot loader解決方案:MCU BOOT,你也可曾上手體驗(yàn)過(guò)它呢?
這個(gè)MCU BOOT的內(nèi)容非常豐富,實(shí)現(xiàn)了基于各種接口的boot loader(UART I2C SPI CAN USB…),并且提供了blhost命令行上位機(jī)工具及其源碼。當(dāng)然,boot loader的源碼也是。。。比較復(fù)雜。一些朋友表示移植,看懂有點(diǎn)困難。正好最近支持客戶(hù)時(shí),應(yīng)客戶(hù)要求,自己實(shí)現(xiàn)了一套極簡(jiǎn)版的USB HID boot loader。協(xié)議和工具都是兼容恩智浦MCU BOOT的。恩智浦的MCU BOOT有一套完整的自定義協(xié)議。在各個(gè)MCU芯片手冊(cè)的ROM章節(jié),以及MCU BOOT資料包里的文檔中都有詳細(xì)介紹,這里就不贅述了。具體關(guān)于MCU BOOT協(xié)議的介紹和各個(gè)接口定義,需要查看MCU BOOT的官方手冊(cè)。實(shí)際上這套代碼已經(jīng)存在很多年了。以前主要是支持串口,這次把USB接口加上了。
使用HID bootloader的步驟如下:
1,下載源代碼,git 倉(cāng)庫(kù)地址:https://github.com/yandld/nxp_easy_mcuboot.git2,目前HID boot loader功能只支持Keil。HID功能只支持LPC51U68(后面會(huì)加入更多的型號(hào)和IDE)。
在 xp_easy_mcubootProjectlpcxpresso51u68中,會(huì)看到4個(gè)文件夾,分別是:
3,打開(kāi)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模式:這時(shí)候會(huì)聽(tīng)到PC USB識(shí)別的聲音,打開(kāi) xp_easy_mcubootpc_tool下的KinetisFlashTool.exe
點(diǎn)擊連接,會(huì)看到boot loader的連接信息(說(shuō)明上位機(jī)已經(jīng)成功連接boot loader),如下圖:
5,編譯lpcxpresso51u68_app中的用戶(hù)示例代碼(小燈閃爍)。并生成.hex文件,在KinetisFlashTool中點(diǎn)Browse選擇編譯生成好的lpcxpresso51u68_app.hex文件,并點(diǎn)擊Update開(kāi)始升級(jí),如果看到進(jìn)度條走動(dòng)并且看到升級(jí)成功log 說(shuō)明升級(jí)成功:
打開(kāi)串口并復(fù)位板子,會(huì)看到串口打印log,小燈閃爍,說(shuō)明boot loader功能實(shí)現(xiàn)正常:
在這個(gè)代碼倉(cāng)庫(kù)中,除了LPC51U68 HID boot loader外,還包含其他NXP MCU的boot loader代碼,絕大多數(shù)只支持串口。
這套代碼實(shí)際是NXP官方MCU BOOT代碼的最小簡(jiǎn)化版本,砍掉了絕大多數(shù)的高級(jí)功能,只留最核心的幾條常用命令處理,所以代碼比官方的精簡(jiǎn)好懂很多。當(dāng)然它也只能實(shí)現(xiàn)最簡(jiǎn)單的boot loader,像雙固件冗余升級(jí),安全升級(jí)等特性是實(shí)現(xiàn)不了的。如果您在使用中有問(wèn)題,歡迎給我留言哦~
責(zé)任編輯:haq
-
mcu
+關(guān)注
關(guān)注
146文章
17362瀏覽量
352859 -
HID
+關(guān)注
關(guān)注
2文章
131瀏覽量
46739 -
代碼
+關(guān)注
關(guān)注
30文章
4841瀏覽量
69146
原文標(biāo)題:如何使用LPC51U68的HID boot loader源碼
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于51單片機(jī)的1U服務(wù)器電源的電源管理接口設(shè)計(jì)
自定義RISC V的bootloader-v2
![自定義RISC V的<b class='flag-5'>bootloader</b>-v2](https://file1.elecfans.com/web1/M00/F4/06/wKgZoWcjCZ2AdzTfAAAeGG-A9q4504.png)
linux內(nèi)核中通用HID觸摸驅(qū)動(dòng)
![linux內(nèi)核中通用<b class='flag-5'>HID</b>觸摸驅(qū)動(dòng)](https://file1.elecfans.com/web1/M00/F3/DE/wKgZoWcgTz-ACXEeAAASg7zCCSA578.png)
深度解析linux HID核心
![深度解析linux <b class='flag-5'>HID</b>核心](https://file1.elecfans.com/web2/M00/08/9F/wKgZomb5GFWAf2BCAANH-eADck0255.png)
HID over GATT配置文件(HOGP)低功耗藍(lán)牙
![<b class='flag-5'>HID</b> over GATT配置文件(HOGP)低功耗藍(lán)牙](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MSP430? USB HID Windows API編程人員指南
![MSP430? USB <b class='flag-5'>HID</b> Windows API編程人員指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
藍(lán)牙自動(dòng)感應(yīng)模塊BLE HID無(wú)感車(chē)鑰匙方案
用ESP-IDF編譯bt_hid_mouse_device例程失敗報(bào)錯(cuò)的原因?
如何才能將Bootloader和Application關(guān)聯(lián)起來(lái)
![如何才能將<b class='flag-5'>Bootloader</b>和Application關(guān)聯(lián)起來(lái)](https://file1.elecfans.com/web2/M00/EC/ED/wKgZomZpQWeAXhBCAAA_AlcFHpQ261.png)
評(píng)論