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
    +关注

    关注

    146

    文章

    16992

    浏览量

    350314
  • HID
    HID
    +关注

    关注

    2

    文章

    129

    浏览量

    46565
  • 代码
    +关注

    关注

    30

    文章

    4748

    浏览量

    68356

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

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

收藏 人收藏

    评论

    相关推荐

    自定义RISC V的bootloader-v2

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

    linux内核中通用HID触摸驱动

    在linux内核中,为HID触摸面板实现了一个通用的驱动程序,位于/drivers/hid/hid-multitouch.c文件中。hid触摸驱动是以struct
    的头像 发表于 10-29 10:55 245次阅读
    linux内核中通用<b class='flag-5'>HID</b>触摸驱动

    深度解析linux HID核心

    在linux内核中,HID核心是完成HID功能的关键组件,如果内核支持HID,在启动过程中,则会对HID进行初始化,完成该操作的函数是hid
    的头像 发表于 09-29 17:04 347次阅读
    深度解析linux <b class='flag-5'>HID</b>核心

    HID over GATT配置文件(HOGP)低功耗蓝牙

    电子发烧友网站提供《HID over GATT配置文件(HOGP)低功耗蓝牙.pdf》资料免费下载
    发表于 09-26 11:01 1次下载
    <b class='flag-5'>HID</b> over GATT配置文件(HOGP)低功耗蓝牙

    MSP430™ USB HID Windows API编程人员指南

    电子发烧友网站提供《MSP430™ USB HID Windows API编程人员指南.pdf》资料免费下载
    发表于 09-05 09:40 0次下载
    MSP430™ USB <b class='flag-5'>HID</b> Windows API编程人员指南

    蓝牙自动感应模块BLE HID无感车钥匙方案

    ANS-BT101M 是一款低功耗蓝牙模块,支持蓝牙 5.1 和 HID、GATT、HID 等配置文件。 模块可以通过UART通信和AT命令设置模块名称、波特率等参数进行控制。 默认固件支持 BLE
    的头像 发表于 08-08 14:45 425次阅读

    用ESP-IDF编译bt_hid_mouse_device例程失败报错的原因?

    files have been written to: C:/Users/Administrator/Desktop/esp32c3/bt_hid_mouse_device/build/bootloader
    发表于 06-17 06:53

    如何才能将Bootloader和Application关联起来

    接下来,我们要利用该Bootloader调试目标Application Project,如何才能将Bootloader和Application关联起来呢?就需要借助刚才提到的Bootloader Project Build所生成
    的头像 发表于 06-12 14:32 607次阅读
    如何才能将<b class='flag-5'>Bootloader</b>和Application关联起来

    做一个stm32 host HID功能,无法正确获取HID Discriptor的原因?

    求教,需要做一个stm32 host HID功能,根据官网的HID鼠标和键盘例子修改而来,目前可以正常枚举鼠标,并可接收鼠标的数据。 Subclass和protocol都为0x00,表示无引导,而
    发表于 04-23 06:12

    ST-usb-host-hid库如何解决usb扫码枪这类的usb-hid-keyboard设备?

    用cube生成的usb-host-hid调试扫码枪的时候只能支持小部分的usb扫码枪,有好几种扫码枪的现象是:枚举成功了,但是在获取设备信息:USBH_HID
    发表于 04-17 06:49

    将STM32L4系列开发板设置为HID设备,为什么不显示HID设备?

    想将STM32L4系列开发板设置为HID设备,使用cubeMX进行设计。按照以下步骤设置好后,烧录程式后,显示“大容量存储设备”,而不显示HID设备。 Cubemx配置步骤: Sys
    发表于 04-09 06:20

    求助,关于USB复合设备HID+CDC串口问题求解

    = 117U*/ 0x00, /******************** Descriptor of Custom HID endpoints ********************/ 0x07
    发表于 03-07 06:11

    如何解决Fcx3这种高频率发送hid报错问题?

    你好,我用Bus Hound软件(或其他工具测试遇到一样的问题)测试接收cx3 hid数据。当数据量频率不大时(数据包都是一样大小,64个字节),接收数据都正常,可以测试一天一夜。但是当发送的数据
    发表于 02-28 06:06

    什么是通用HID灯镇流器

    荧光灯镇流器中有一种典型的简单高频驱动方法,但是具有高弧光管压力的 HID 灯存在声共振现象(*) 的问题。为了避免这个问题,HID 灯需要以低于 1kHz 的低频或直流驱动。
    发表于 02-02 17:05 541次阅读
    什么是通用<b class='flag-5'>HID</b>灯镇流器

    STM32无法进入片上Bootloader的处理方法

    STM32无法进入片上Bootloader的处理方法  当STM32芯片无法进入片上Bootloader时,我们需要采取一系列的处理方法来解决这个问题。以下将详细介绍一些常见的处理方法。 1.编程器
    的头像 发表于 02-02 14:33 1932次阅读