关于 Arduino Leonardo/ 32u4 bootloader编译的问题。-Arduino爱好者 - Powered by Discuz!

Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7834|回复: 8

[未解决] 关于 Arduino Leonardo/ 32u4 bootloader编译的问题。

[复制链接]
发表于 2017-11-9 21:18 | 显示全部楼层 |阅读模式


我现在的目标是修改LEONARDO的USB名称。 也就是在计算机的设备管理中该设备显示的名字是我自定义的,而不是ARDUINO LEONARDO。

好像只能通过修改BOOTLOADER.HEX,然后从新烧录才可以实现吧?

那么问题来了,*.hex文件无法直接修改,就得需要bootloader的源码,从新编译。 有哪位朋友这么做过?源码该从哪找?


或者就我的问题,你有其它实现的办法,也麻烦给我说一下,谢谢!
发表于 2017-11-9 21:56 | 显示全部楼层
这个字符串是 build 时候放进去的,在

\arduino-1.8.4\hardware\arduino\avr\boards.txt


leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.usb_product="Arduino Leonardo"
leonardo.build.board=AVR_LEONARDO
leonardo.build.core=arduino
leonardo.build.variant=leonardo
leonardo.build.extra_flags={build.usb_flags}
举个例子,我修改为下面这样的

Capture.PNG
 楼主| 发表于 2017-11-10 04:56 | 显示全部楼层
本帖最后由 stormer 于 2017-11-10 07:02 编辑
Zoologist 发表于 2017-11-9 21:56
这个字符串是 build 时候放进去的,在

\arduino-1.8.4\hardware\arduino\avr\boards.txt

谢谢,我一开始就是修改的这里。
leonardo.build.usb_product="Arduino Leonardo"
改成
leonardo.build.usb_product="MyDevice"
或者
leonardo.build.usb_product="Arduino Leonardo2"

这样都不可以,修改了这以后重启ARDUINO IDE,再往板子写入程序的时候就会报错。

报错信息:
[mw_shl_code=c,true]/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp:50:1: error: missing terminating " character
const u8 STRING_PRODUCT[] PROGMEM = USB_PRODUCT;
^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp:524:4: error: missing terminating " character
    return USB_SendStringDescriptor(STRING_PRODUCT, strlen(USB_PRODUCT), TRANSFER_PGM);
    ^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp:50:48: error: expected primary-expression before ';' token
const u8 STRING_PRODUCT[] PROGMEM = USB_PRODUCT;
                                                ^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp: In function 'bool SendDescriptor(USBSetup&)':
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp:524:70: error: too few arguments to function 'size_t strlen(const char*)'
    return USB_SendStringDescriptor(STRING_PRODUCT, strlen(USB_PRODUCT), TRANSFER_PGM);
                                                                      ^
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:25:0,
                 from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBAPI.h:33,
                 from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp:20:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/string.h:399:15: note: declared here
extern size_t strlen(const char *) __ATTR_PURE__;
               ^
exit status 1
Error compiling for board Leonardo.
[/mw_shl_code]
或者就是这样提示新名称没有定义

D2488762B80127CB63D3F8033D7B28B7.jpg

请问你截图里是哪个文件?是不是要到那里修改。



发表于 2017-11-10 08:06 | 显示全部楼层


Zoologist 金牌会员 2017-11-9 21:56 沙发
这个字符串是 build 时候放进去的,在

\arduino-1.8.4\hardware\arduino\avr\boards.txt


leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.usb_product="Arduino Leonardo"  <--------修改这个地方的啊
leonardo.build.board=AVR_LEONARDO
leonardo.build.core=arduino
leonardo.build.variant=leonardo
leonardo.build.extra_flags={build.usb_flags}


Leonardo 驱动回去检查名称的,如果你修改了名称,那么驱动是不工作的。我是 Win10 系统

自带USB 串口驱动的所以没有问题。
发表于 2017-11-10 08:08 | 显示全部楼层
stormer 发表于 2017-11-10 04:56
谢谢,我一开始就是修改的这里。
leonardo.build.usb_product="Arduino Leonardo"
改成



Zoologist 金牌会员 2017-11-9 21:56 沙发
这个字符串是 build 时候放进去的,在

\arduino-1.8.4\hardware\arduino\avr\boards.txt


leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.usb_product="Arduino Leonardo"  <--------修改这个地方的啊
leonardo.build.board=AVR_LEONARDO
leonardo.build.core=arduino
leonardo.build.variant=leonardo
leonardo.build.extra_flags={build.usb_flags}


Leonardo 驱动回去检查名称的,如果你修改了名称,那么驱动是不工作的。我是 Win10 系统

自带USB 串口驱动的所以没有问题。
 楼主| 发表于 2017-11-10 19:05 | 显示全部楼层
Zoologist 发表于 2017-11-10 08:08
Zoologist 金牌会员 2017-11-9 21:56 沙发
这个字符串是 build 时候放进去的,在

谢谢搞定了!
发表于 2017-11-12 18:26 | 显示全部楼层

请问你是怎么搞定的,我也出现你这个状况?谢谢了
 楼主| 发表于 2017-11-13 18:44 | 显示全部楼层
紫禁残剑 发表于 2017-11-12 18:26
请问你是怎么搞定的,我也出现你这个状况?谢谢了

就是改boards.txt啊。 奇怪的是我不能在里面修改后保存,那样就出错。 先把所有文本复制出来修改,然后一次粘贴覆盖回去保存就可以了。
发表于 2023-8-26 21:19 | 显示全部楼层
stormer 发表于 2017-11-13 18:44
就是改boards.txt啊。 奇怪的是我不能在里面修改后保存,那样就出错。 先把所有文本复制出来修改,然后一 ...

怎么build的?
麻烦指教下!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|好玩手机游戏盒子|196体育|Arduino爱好者

GMT+8, 2023-9-23 02:31 , Processed in 0.105002 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表