Besoin d'aide bootloader

Bonjour,

Pour mon projet j'ai besoin de 2 choses,
la première est de changer la vitesse de transfert de données pour pouvoir flasher un pro mini via un HC05. Donc chose qui n'est pas très compliquer, j'ai créer une nouvelle carte dans le fichier board.txt pour remplacer le baudrate du pro mini à 115200.

##############################################################

32U4.name=Pro Mini (115200)
32U4.vid.0=0x2341
32U4.pid.0=0x0043
32U4.vid.1=0x2341
32U4.pid.1=0x0001
32U4.vid.2=0x2A03
32U4.pid.2=0x0043
32U4.vid.3=0x2341
32U4.pid.3=0x0243

32U4.upload.tool=avrdude
32U4.upload.protocol=arduino
32U4.upload.maximum_size=30720
32U4.upload.maximum_data_size=2048
32U4.upload.speed=115200

32U4.bootloader.tool=avrdude
32U4.bootloader.low_fuses=0xFF
32U4.bootloader.high_fuses=0xDE
32U4.bootloader.extended_fuses=0x05
32U4.bootloader.unlock_bits=0x3F
32U4.bootloader.lock_bits=0x0F
32U4.bootloader.file=optiboot/optiboot_atmega328.hex

32U4.build.mcu=atmega328p
32U4.build.f_cpu=16000000L
32U4.build.board=AVR_PRO
32U4.build.core=arduino
32U4.build.variant=eightanaloginputs

Jusque là tout va bien, là ou j'ai un problème c'est que je souhaite que la broche D2 soit à l'état haut dès le démarrage du pro mini car cette broche active un mosfet qui active l'autoreset entre le HC05 et l'arduino.

Ma question est donc, est que quelqu'un peut m'aider un modifier le bootloader afin de pouvoir commuter cette broche ?

Est il possible de me donner le nom du fichier ainsi que le procédure pour compiler le nouveau bootloader car je trouve pas grand chose sur le net qui peux m'aider.
Merci

En fait j'étais confronté à un problème avec l'ide et je n'arriver pas à compiler le bootloader.

Cela étant résolu, il faut que je modifie pour ajouter la broche, mais je ne sais pas comment la déclarée dans le fichier optiboot.c car j'ai fait une tentative en essayant de l'activée directement dans le registre mais ça génère une erreur (PORTD |= (1 << 2)) , donc je me retrouve dans l'impasse.

Pourquoi rester bloqué sur le bootloader ?
Le bootloader n'est que du "confort", il n'est pas obligatoire.
De plus il occupe de la flash :

  • 500 octets avec une interface USB/UART à base d'Atmega16U2
  • 2k octets avec une interface USB/UART à base de FTDI ou de CH340G.

Sortie usine un microcontrôleur ATMega se programme par l'ISP (In Situ Programming).
Pourquoi ne pas chercher un programmeur ISP rapide pour Atmega ?

A la compilation j'ai ces erreurs

optiboot.c: In function 'main':
optiboot.c:516: warning: left shift count >= width of type
optiboot.c:517: error: 'B00000100' undeclared (first use in this function)
optiboot.c:517: error: (Each undeclared identifier is reported only once
optiboot.c:517: error: for each function it appears in.)
make: *** [optiboot.o] Error 1

A la ligne 517 j'ai essayé:

1- (PORTD |= (1 << 2)) >> erreur compilation
2- (PORTD |= B00000100) >> erreur compilation
3- (PORTD |= 0x04) >> pas d'erreur compilation mais broche 2 pas activée

J'ai testé mais marche pas...

DDRD |= _BV(PIND2);
PORTD |= _BV(PIND2);
PORTD |= 0x04;

Bon j'ai testé en mettant la code dans la boucle infinie for(;:wink: dans le int main() donc la broche passe bien à high mais s'éteint une fois le bootloader démarré.