ATMega328PB-AU烧录bootloader探索研究

2024-02-20 09:10

本文主要是介绍ATMega328PB-AU烧录bootloader探索研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ATMega328PB-AU烧录bootloader探索研究


  • 📍本论坛的相关烧录教程(通过一块Arduino UNO板作为ISP来烧录的)《为ATMega328pb芯片烧录Arduino bootloader》
  • 📌USBasp个人相关内容《2018版USBASP烧录器改通用版教》
  • 📘ATMega328PB和ATMega328P差异中文说明文档资料:
链接:https://pan.baidu.com/s/1aPofMTCNnOTwvggppaNHlQ?pwd=xtax 
提取码:xtax
  • 📍原文文档:https://ww1.microchip.com/downloads/en/AppNotes/Atmel-42559-Differences-between-ATmega328P-and-ATmega328PB_ApplicationNote_AT15007.pdf
  • ✨本文是通过USBasp工具进行Bootloader烧录的。
    在这里插入图片描述
  • ✨本文使用ATMega328PB-AU烧录bootloader作为研究测试对象。
  • 👉烧录bootloader前提,必须要有一个AVR烧录器或者Arduino UNO/nano开发板。
  • ✨有AVR烧录器的情况下,可以通过AVR烧录软件,找到支持包下面对应型号的bootloader文件直接烧录也可以。需要自己熟悉和了解熔丝位的配置才行。另外的方法就是通过Arduino IDE菜单面板操作来完成bootloader的烧录工作。
  • 🌿当前Arduino IDE环境下,支持ATMega328PB芯片型号的支持包固件: ATMega328PB支持包网址:
https://files.pololu.com/arduino/package_pololu_index.json
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
  • 📌熔丝位在线计算网站,适用于AVR系列单片机:https://www.engbedded.com/fusecalc/

  • 📌熔丝位在线配置网站,适用于AVR系列单片机:https://www.engbedded.com/conffuse/

  • 🈯烧录bootloader的目的:为了方便在Arduino IDE开发环境下,使用串口烧录程序。需要依赖bootloader固件+串口,才能完成代码上传的工作。如果手上有AVR烧录器,那么可以通过AVR烧录器+烧录软件,完成程序烧录即可。

  • 如果使用USBasp 直接上传代码,在Arduino IDE直接选择USBasp进行代码上传。

在这里插入图片描述
在这里插入图片描述

📑前言

趁目前ATMega328PB-AU主控芯片的价格比较便宜,购买了一片此型号芯片,刚刚完成ATMega328PB-AU主控的开发板的设计,准备打板,先测试下一是否兼容Arduino nano开发板,于是将手上现有的Arduino nano板子上的32引脚TQFP封装的ATMega328P更换了下来,换上ATMega328PB-AU进行bootloader烧录。

在这里插入图片描述
在这里插入图片描述

  • 📌PCB开源链接:https://oshwhub.com/perseverance51/atmega328pb-au-nano

📘bootloader和串口外围参考电路

  • 🔰芯片的 RST复位引脚需要接入到USB转串口芯片的Mode联络信号引脚上,这里以CH340N为例,芯片的复位引脚通过一个耦合电容接到CH340N的RST引脚上。
    在这里插入图片描述

🌟bootloader固件选择

  • 🔰ATMega328PB如果选择使用MiniCore固件所提供的Bootloader烧录文件,之后使用Arduino IDE程序上传都需要选择此类型的开发板的对应型号,并不能选择其他支持包下面的同型号芯片进行上传。采用不同支持包下的bootloader固件,下载算法有些差异。。(MiniCore支持包,在烧录时,调用的是自带支持包下面的对应的avrdude,而pololu调用的是Arduino IDE本地的avrdude)。
    • 👉如果选择使用编程器上传程序,就不存在上面的情况。只需要型号正确,就可以上传代码。需要注意一点的是,一旦选择了编程器上传代码,会导致原来下载过的bootloader程序失效,下次下载程序将不能再次使用串口直接上传程序。
    • 📄MiniCore:
"C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.2-arduino.1/bin/avrdude" "-CC:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf" -v  -patmega328pb -curclock -PCOM9 -b9600 -D -xnometadata "-Ueeprom:w:C:\Users\Administrator\AppData\Local\Temp\arduino\sketches\D21CF4E415C37110D46815DADA9CBA76/Blink.ino.eep:i" "-Uflash:w:C:\Users\Administrator\AppData\Local\Temp\arduino\sketches\\D21CF4E415C37110D46815DADA9CBA76/Blink.ino.hex:i""
    • 📄Polulo:
"C:\Users\Administrator\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\Administrator\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v  -patmega328pb -carduino "-PCOM9" -b115200 -D "-Uflash:w:C:\Users\Administrator\AppData\Local\Temp\arduino\sketches\D21CF4E415C37110D46815DADA9CBA76/Blink.ino.hex:i"

-👉 如果使用独立的烧录软件,通过加载编译好的Hex文件进行烧录不存在此问题。

⚡注意事项

  • 🌿新的未使用过的ATMega328PB-AU的芯片,在使用USBasp工具进行Arduino IDE在线 Bootloader烧录时,需要选择USBasp slow才行,这一点很关键!!!个人在选择USBasp模式下,对从未使用过的新芯片,烧录了N多遍的失败经历,曾一度怀疑是不是芯片没有焊接好。
    在这里插入图片描述
  • 🔖在第一次选择USBasp slow模式下,烧录成功后,后面如果有需要再次烧录bootloader程序,可以直接选择USBasp模式进行烧录。
  • USBasp slow模式只有选择安装了MiniCore固件下才有,pololu固件不带,这一点需要注意!
    在这里插入图片描述
    在这里插入图片描述
  • 🌿另外需要注意一点的是,刷的是哪个固件支持包的bootloader程序,在Arduino IDE 上传代码时,就只能选择对应系列的单片机型号,进行上传代码。(例如刷的是MiniCore固件支持包所提供的bootloader程序,那么在使用Arduino IDE 开发时,烧录目标只能选择MiniCore下的对于型号才行,而不能选择pololu固件支持下的同芯片型号,不能通用)。如果使用独立的AVR第三方烧录工具,可以直接加载编译好的Hex文件除外。

🔱在没有bootloader程序的情况下程序烧录补充说明

  • 🌿使用其他AVR烧录软件:AVR_fighter、progisp、AVRDUDESS。(前提是手上需要有一个USBASP或者USBISP)。
  • 🔖经测试AVR_fighter连不上,progisp需要使用HID 免驱版本的USBasp烧录器使用,不支持Arduino IDE在线烧录bootloader方式。USBASP带驱动版本的使用AVRDUDESS或者Arduino IDE在线烧录bootloader方式。
    在这里插入图片描述
    • 🔖带驱动版本的:在这里插入图片描述
资料下载地址:http://pan.baidu.com/s/1i49UCOP
https://pan.baidu.com/s/1eTYTxp4AVRDUDESS:下载地址:https://github.com/ZakKemble/AVRDUDESS/releases
Khazama AVR Programmer For USBasp and avrdude:http://khazama.com/project/programmer/
- avrdude:https://download.savannah.gnu.org/releases/avrdude/

在这里插入图片描述

  • 🌿AVRDUDESS:下载地址:https://github.com/ZakKemble/AVRDUDESS/releases
    在这里插入图片描述
    🌿Khazama AVR Programmer软件:经测试,该软件不支持ATMega328PB型号的程序烧录。

在这里插入图片描述

  • 🌿使用progisp软件,烧录Arduino IDE编译好的Hex文件。(只能使用,市面上售卖的免驱版的USBasp使用,只能选择ATMega328P来替代ATMega328PB
    在这里插入图片描述
  • 🔖上面.eep为EEPROM文件,.hex为程序文件。分别通过调入Flash调入Eeprom加载进来。
    在这里插入图片描述
  • 🌿如果想通过上面的软件顺便将带bootloader的文件烧录进去,可以选择类似Blink.ino.with_bootloader.hex名称的合并文件。(bootloader和程序合并文件)
  • 📌AVR单片机熔丝位设置详细知识文档介绍可以参考:https://www.cnblogs.com/Arrow-Lu/articles/2584823.html
  • 👉如果烧录了带bootloader 程序文件后,配置好对于的串口端口号后,可以直接通过Arduino IDE面板上的上传按钮进行上传,即可,无需关注编程器选项。
  • 🔖如果目标板不带Bootloader程序的,那么只能选择对于的编程器,然后进行上传。
    在这里插入图片描述
    在这里插入图片描述
  • 🌿如果直接加载文件烧录,可以从Arduino IDE 在已安装的支持包路径下找到bootloader文件
    • 🔖🏷 pololu-a-star支持包下的bootloader文件位置:
C:\Users\Administrator\AppData\Local\Arduino15\packages\pololu-a-star\hardware\avr\5.1.0\bootloaders\optiboot

在这里插入图片描述

    • 🔖🏷 MiniCore支持包下的bootloader文件位置:
C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1\bootloaders\urboot

在这里插入图片描述

🛠烧录前准备

  • 🌿给Arduino IDE安装支持芯片型ATMega328PB开发板。
  • 🌿添加网址:https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
  • 🔖或者添加:https://files.pololu.com/arduino/package_pololu_index.json
    在这里插入图片描述

👉如果对新的芯片首次进行烧录,那么推荐先选择用MiniCore固件,选择对应的单片机型号,进行烧录,因为可以选择USBasp slow慢速模式。

  • 🌿搜索关键字328,找到MiniCore固件进行安装。
    在这里插入图片描述
  • 🌿通过USBasp工具烧录配置信息如下:
    在这里插入图片描述

🈯USBasp工具烧录过程

  • 📄经测试,通过Arduino IDE 1.8.1.x版本或者使用2.2.x版本,都是可以的。
  • 📑通过USBasp工具进行烧录时的信息:
    在这里插入图片描述
C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.2-arduino.1/bin/avrdude -CC:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf -v -patmega328pb -cusbasp -B32 -e -Ulock:w:0xff:m -Uefuse:w:0b11110101:m -Uhfuse:w:0xd7:m -Ulfuse:w:0b11111111:m avrdude: Version 7.2-arduino.1Copyright the AVRDUDE authors;see https://github.com/avrdudes/avrdude/blob/main/AUTHORSSystem wide configuration file is C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1\avrdude.confUsing Port                    : usbUsing Programmer              : usbaspSetting bit clk period        : 32.0AVR Part                      : ATmega328PBChip Erase delay              : 10500 usPAGEL                         : PD7BS2                           : PC2RESET disposition             : possible i/oRETRY pulse                   : SCKSerial program mode           : yesParallel program mode         : yesTimeout                       : 200StabDelay                     : 100CmdexeDelay                   : 25SyncLoops                     : 32PollIndex                     : 3PollValue                     : 0x53Memory Detail                 :Block Poll               Page                       PolledMemory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------eeprom                 65    20     4    0 no       1024    4      0  3600  3600 0x00 0x00flash                  65    10   128    0 yes     32768  128    256  4500  4500 0x00 0x00lfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00efuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00Programmer Type : usbaspDescription     : USBasp ISP and TPI programmer
avrdude: set SCK frequency to 16000 Hz
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e9516 (probably m328pb)
avrdude: erasing chip
avrdude: set SCK frequency to 16000 Hzavrdude: processing -U lock:w:0xff:m
avrdude: reading input file 0xff for lockwith 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte lock ...
avrdude: 1 byte of lock written
avrdude: verifying lock memory against 0xff
avrdude: 1 byte of lock verifiedavrdude: processing -U efuse:w:0b11110101:m
avrdude: reading input file 0b11110101 for efusewith 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte efuse ...
avrdude: 1 byte of efuse written
avrdude: verifying efuse memory against 0b11110101
avrdude: 1 byte of efuse verifiedavrdude: processing -U hfuse:w:0xd7:m
avrdude: reading input file 0xd7 for hfusewith 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte hfuse ...
avrdude: 1 byte of hfuse written
avrdude: verifying hfuse memory against 0xd7
avrdude: 1 byte of hfuse verifiedavrdude: processing -U lfuse:w:0b11111111:m
avrdude: reading input file 0b11111111 for lfusewith 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte lfuse ...
avrdude: 1 byte of lfuse written
avrdude: verifying lfuse memory against 0b11111111
avrdude: 1 byte of lfuse verifiedavrdude done.  Thank you.C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.2-arduino.1/bin/avrdude -CC:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf -v -patmega328pb -cusbasp -B32 -Uflash:w:C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/bootloaders/urboot/atmega328pb/watchdog_1_s/autobaud/uart0_rxd0_txd1/led+b5/urboot_atmega328pb_pr_ee_ce.hex:i -Ulock:w:0xff:m avrdude: Version 7.2-arduino.1Copyright the AVRDUDE authors;see https://github.com/avrdudes/avrdude/blob/main/AUTHORSSystem wide configuration file is C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1\avrdude.confUsing Port                    : usbUsing Programmer              : usbaspSetting bit clk period        : 32.0AVR Part                      : ATmega328PBChip Erase delay              : 10500 usPAGEL                         : PD7BS2                           : PC2RESET disposition             : possible i/oRETRY pulse                   : SCKSerial program mode           : yesParallel program mode         : yesTimeout                       : 200StabDelay                     : 100CmdexeDelay                   : 25SyncLoops                     : 32PollIndex                     : 3PollValue                     : 0x53Memory Detail                 :Block Poll               Page                       PolledMemory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------eeprom                 65    20     4    0 no       1024    4      0  3600  3600 0x00 0x00flash                  65    10   128    0 yes     32768  128    256  4500  4500 0x00 0x00lfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00efuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00Programmer Type : usbaspDescription     : USBasp ISP and TPI programmer
avrdude: set SCK frequency to 16000 Hz
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e9516 (probably m328pb)
avrdude: Note: flash memory has been specified, an erase cycle will be performed.To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: set SCK frequency to 16000 Hzavrdude: processing -U flash:w:C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/bootloaders/urboot/atmega328pb/watchdog_1_s/autobaud/uart0_rxd0_txd1/led+b5/urboot_atmega328pb_pr_ee_ce.hex:i
avrdude: reading input file C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/bootloaders/urboot/atmega328pb/watchdog_1_s/autobaud/uart0_rxd0_txd1/led+b5/urboot_atmega328pb_pr_ee_ce.hex for flashwith 368 bytes in 2 sections within [0x7e80, 0x7fff]using 3 pages and 16 pad bytes
avrdude: writing 368 bytes flash ...
Writing | ################################################## | 100% 0.30s
avrdude: 368 bytes of flash written
avrdude: verifying flash memory against C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/bootloaders/urboot/atmega328pb/watchdog_1_s/autobaud/uart0_rxd0_txd1/led+b5/urboot_atmega328pb_pr_ee_ce.hex
Reading | ################################################## | 100% 0.00s
avrdude: 368 bytes of flash verifiedavrdude: processing -U lock:w:0xff:m
avrdude: reading input file 0xff for lockwith 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte lock ...
avrdude: 1 byte of lock written
avrdude: verifying lock memory against 0xff
avrdude: 1 byte of lock verifiedavrdude done.  Thank you.
  • 🌿在通过上面的信息可以看出,在选择\MiniCore固件下的ATMega328PB型号,进行烧录bootloader时,分2个阶段。
  • 🌿第一阶段是,对目标型号芯片进行熔丝位配置。
"C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.2-arduino.1/bin/avrdude" "-CC:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf" -v -patmega328pb -cusbasp  -e -Ulock:w:0xff:m -Uefuse:w:0b11110101:m -Uhfuse:w:0xd7:m -Ulfuse:w:0b11111111:m
  • 🌿第二阶段是,对目标型号芯片进行bootloader下载。
"C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.2-arduino.1/bin/avrdude" "-CC:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf" -v -patmega328pb -cusbasp  "-Uflash:w:C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/bootloaders/urboot/atmega328pb/watchdog_1_s/autobaud/uart0_rxd0_txd1/led+b5/urboot_atmega328pb_pr_ee_ce.hex:i" -Ulock:w:0xff:m

📝通过命令行指令烧录

  • 🌿通过 命令行进行熔丝位配置,使用的是usbasp烧录器,前提是安装了Arduino IDE,其他型号也可以通过此命令实现对目标型号芯片进行熔丝位配置:(直接在cmd命令提示符窗口内使用)
C:\Users\Administrator\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\Administrator\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328pb -cusbasp -Pusb -e -Ulock:w:0xFF:m -Uefuse:w:0xFF:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m
  • 🌿使用Polulo支持包固件下的bootloader.hex固件,使用命令行烧录bootloader命令:(直接在cmd命令提示符窗口内使用)
    在这里插入图片描述
C:\Users\Administrator\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\Administrator\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328pb -cusbasp -Pusb -Uflash:w:C:\Users\Administrator\AppData\Local\Arduino15\packages\pololu-a-star\hardware\avr\5.1.0/bootloaders/optiboot/optiboot_atmega328pb_16mhz.hex:i -Ulock:w:0xCF:m 
  • 🌿使用MiniCore支持包固件下的bootloader.hex固件,使用命令行烧录bootloader命令:
C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\7.2-arduino.1/bin/avrdude -CC:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf -v -patmega328pb -cusbasp -e -Ulock:w:0xff:m -Uefuse:w:0b11110101:m -Uhfuse:w:0xd7:m -Ulfuse:w:0b11111111:m 
    • 🔖带eep烧录程序命令演示:(需要定位到avrdude路径下)
avrdude -C"C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf" -v -patmega328pb -curclock -PCOM6 -b9600 -D -xnometadata "-Ueeprom:w:C:\Users\Administrator\AppData\Local\Temp\arduino\sketches\D21CF4E415C37110D46815DADA9CBA76/Blink.ino.eep:i" -Uflash:w:"C:\Users\Administrator\AppData\Local\Temp\arduino\sketches\D21CF4E415C37110D46815DADA9CBA76/Blink.ino.hex:i"

在这里插入图片描述
烧录过程和结果:
在这里插入图片描述

    • 🔖不带eep烧录命令:(需要定位到avrdude路径下)
avrdude -C"C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1/avrdude.conf" -v -patmega328pb -curclock -PCOM6 -b9600 -D -xnometadata  -Uflash:w:"C:\Users\Administrator\AppData\Local\Temp\arduino\sketches\D21CF4E415C37110D46815DADA9CBA76/Blink.ino.hex:i"

在这里插入图片描述
烧录结果:
在这里插入图片描述


  • 🔖此文章仅作为个人学习探索知识的总结,不作为他人或引用者的理论依据,由于学识所限,难免会出现错误或纰漏,欢迎大家指正。

这篇关于ATMega328PB-AU烧录bootloader探索研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727705

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

轻松录制每一刻:探索2024年免费高清录屏应用

你不会还在用一些社交工具来录屏吧?现在的市面上有不少免费录屏的软件了。别看如软件是免费的,它的功能比起社交工具的录屏功能来说全面的多。这次我就分享几款我用过的录屏工具。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  这个软件的操作方式非常简单,打开软件之后从界面设计就能看出来这个软件操作的便捷性。界面的设计简单明了基本一打眼你就会轻松驾驭啦

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

深入探索嵌入式 Linux

摘要:本文深入探究嵌入式 Linux。首先回顾其发展历程,从早期尝试到克服诸多困难逐渐成熟。接着阐述其体系结构,涵盖硬件、内核、文件系统和应用层。开发环境方面包括交叉编译工具链、调试工具和集成开发环境。在应用领域,广泛应用于消费电子、工业控制、汽车电子和智能家居等领域。关键技术有内核裁剪与优化、设备驱动程序开发、实时性增强和电源管理等。最后展望其未来发展趋势,如与物联网融合、人工智能应用、安全性与

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用

日期:2024年9月8日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 说