0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LPC51U68使用HID bootloader的步骤

恩智浦MCU加油站 来源:恩智浦MCU加油站 作者:杨熙 2021-11-18 17:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对恩智浦MCU有一定了解的朋友,一定知道NXP有一套非常完善的MCU boot loader解决方案:MCU BOOT,你也可曾上手体验过它呢?

这个MCU BOOT的内容非常丰富,实现了基于各种接口的boot loader(UART I2C SPI CAN USB…),并且提供了blhost命令行上位机工具及其源码。当然,boot loader的源码也是。。。比较复杂。一些朋友表示移植,看懂有点困难。正好最近支持客户时,应客户要求,自己实现了一套极简版的USB HID boot loader。协议和工具都是兼容恩智浦MCU BOOT的。恩智浦的MCU BOOT有一套完整的自定义协议。在各个MCU芯片手册的ROM章节,以及MCU BOOT资料包里的文档中都有详细介绍,这里就不赘述了。具体关于MCU BOOT协议的介绍和各个接口定义,需要查看MCU BOOT的官方手册。实际上这套代码已经存在很多年了。以前主要是支持串口,这次把USB接口加上了。

使用HID bootloader的步骤如下:

1,下载源代码,git 仓库地址:https://github.com/yandld/nxp_easy_mcuboot.git2,目前HID boot loader功能只支持Keil。HID功能只支持LPC51U68(后面会加入更多的型号和IDE)。

在 xp_easy_mcubootProjectlpcxpresso51u68中,会看到4个文件夹,分别是:

14c0a204-438f-11ec-b939-dac502259ad0.png

3,打开boot loader Keil工程: xp_easy_mcubootProjectlpcxpresso51u68lpcxpresso51u68_hid_bl,编译并下载到LPCXpresso51U68板子上。4,连接LPC51U68的USB(J6)到PC, 然后按住WAKE(SW1)按键,再按RESET复位MCU,强制进入boot loader模式:这时候会听到PC USB识别的声音,打开 xp_easy_mcubootpc_tool下的KinetisFlashTool.exe

点击连接,会看到boot loader的连接信息(说明上位机已经成功连接boot loader),如下图:

14ed05b0-438f-11ec-b939-dac502259ad0.png

5,编译lpcxpresso51u68_app中的用户示例代码(小灯闪烁)。并生成.hex文件,在KinetisFlashTool中点Browse选择编译生成好的lpcxpresso51u68_app.hex文件,并点击Update开始升级,如果看到进度条走动并且看到升级成功log 说明升级成功:

1550dd56-438f-11ec-b939-dac502259ad0.png

打开串口并复位板子,会看到串口打印log,小灯闪烁,说明boot loader功能实现正常:

1588589e-438f-11ec-b939-dac502259ad0.png

在这个代码仓库中,除了LPC51U68 HID boot loader外,还包含其他NXP MCU的boot loader代码,绝大多数只支持串口。

这套代码实际是NXP官方MCU BOOT代码的最小简化版本,砍掉了绝大多数的高级功能,只留最核心的几条常用命令处理,所以代码比官方的精简好懂很多。当然它也只能实现最简单的boot loader,像双固件冗余升级,安全升级等特性是实现不了的。如果您在使用中有问题,欢迎给我留言哦~

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18613

    浏览量

    387158
  • HID
    HID
    +关注

    关注

    2

    文章

    137

    浏览量

    48646
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151

原文标题:如何使用LPC51U68的HID boot loader源码

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Bootloader固件升级的步骤

    ,并且保证不能相互覆盖,则需要在下载程序时指定地址。 二、Bootloader 升级步骤 ① 基本流程: 1、收到更新 FW 命令 2、进入 Bootloader 模式 3、被告知 FW 大小
    发表于 11-19 07:41

    如何通过 CYW89820 使用 HID 主机角色?

    最近,我们将使用 CYW89820 设计 HID 主机角色。 但是我们找不到示例应用程序,也无法在文档中找到 HID Host API。 请让我知道如何通过 CYW89820 使用 HID 主机角色。
    发表于 07-01 08:30

    飞凌嵌入式ElfBoard ELF 1板卡-Uboot简介之BootLoader

    BootLoader是不同平台或项目的启动加载程序的统称,不单指某一个程序,比如,常见的BootLoader有,Redboot,Armboot,U-Boot等。
    发表于 05-22 10:42

    基于N32G457 USB HID驱动收发数据

    USB 设备中有一大类就是 HID 设备,即 Human Interface Devices,人机接口设备
    发表于 04-28 18:00 0次下载

    HID免驱升级例程,基于nodejs编写

    async function usbhid_main() {   // 打印所有参数   let path = args[0];   console.log('\n欢迎使用USB HID
    发表于 04-28 17:58 0次下载

    求助,关于在S32G399ARDB3板上的Multicore Bootloader中启用HSE功能的问题求解

    它是一个多核 bootloader,但我们观察到控件不会从 bootloader 过渡到 U-Boot,但并行 m core autosar 应用程序正在运行。为了调试问题,我禁用了 M 内核,但控件
    发表于 04-07 09:16

    如何定义轮询间隔和最大数据包大小?

    LPC5516 SDK 和 dev_hid_generic_lite_bm 示例: 我相信轮询间隔和最大数据包大小是在 usb_device_descriptor.c 中定义的: uint8_t
    发表于 04-04 07:20

    LPC55S69JBD100通过SPI连接到WM02C时,是否支持通过bootloader进行OTA更新?

    该恩智浦-LPC55S69JBD100通过 SPI 连接到 WM02C (nRF7002) 时,是否支持通过 bootloader 进行 OTA 更新?请解释一下 OTA 更新过程。
    发表于 03-26 07:39

    U-Boot 和 Bootloader,99% 的工程师都分不清?

    嵌入式软件工程师听说过 u-boot 和 bootloader,但很多工程师依然不知道他们到底是啥。   今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别
    的头像 发表于 03-25 20:47 1421次阅读

    用hal库通过usb做了一个hid复合设备,想问问怎么才能通过蓝牙来实现hid设备?

    新手刚刚接触stm32,想请教大佬, 最近用hal库通过usb做了一个hid复合设备,想问问怎么才能通过蓝牙来实现hid设备 我用cubemx直接就给我生成了很多初始化代码,是否也有类似的软件库支持我对蓝牙的hid设备初始化呢?
    发表于 03-11 08:16

    自定义RISC V的bootloader-v3

    在生成SoC时,会生成一个预定义bootloader .bin文件,用于指定soc的工程运行的地址,这包括在flash的存储地址 ,加载到外存中的运行地址及在外存中分配的存储空间的大小 。下面我们
    的头像 发表于 03-10 09:05 1526次阅读
    自定义RISC V的<b class='flag-5'>bootloader</b>-v3

    STM32 HID和CDC组合设备无法枚举成功是哪里出了问题?

    ;pClassData; // //if (hhid->IsReportAvailable == 1U) //{ // ((USBD_CUSTOM_HID
    发表于 03-10 07:27

    AI80C51U倒计时

    AI80C51U倒计时
    的头像 发表于 01-10 11:41 795次阅读

    AN68-LT1510设计手册

    电子发烧友网站提供《AN68-LT1510设计手册.pdf》资料免费下载
    发表于 01-08 14:03 0次下载
    AN<b class='flag-5'>68</b>-LT1510设计手册

    基于51单片机的1U服务器电源的电源管理接口设计

    电子发烧友网站提供《基于51单片机的1U服务器电源的电源管理接口设计.pdf》资料免费下载
    发表于 12-16 14:50 0次下载