Autor Thema: Frage zum MapleCUL Bootloader + Lötkolben TS100  (Gelesen 981 mal)

Offline Telekatz

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 862
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #15 am: 23 Juni 2019, 14:02:31 »
Nein, der Maple hat die LED an PB1, der Blue Pill an PC13 und der Black Pill an PC12.

Mit der angehängten Version braucht man die zweite Taste nicht mehr. Zweimal innerhalb einer Sekunde Reset betätigt startet den Bootloader. Funktioniert aber wegen der unterschiedlichen USB Reset Schaltung auch nicht mit dem Blue Pill.

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #16 am: 23 Juni 2019, 14:50:19 »
Danke, probiere es aus ..

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #17 am: 23 Juni 2019, 14:55:01 »
 :)

Hallo Telekatz,

klasse funktioniert!

USB Laufwerk geht unter Win10 auf!

 :D

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #18 am: 23 Juni 2019, 15:00:53 »
Wenn ich eine Arduino kompilierte Firmware ins Laufwerk lege, reagiert es wie erwartet.
Der Bootloader führt aber den ArduinoCode auch nach einem Reset nicht aus.
Muss da ein Adress-Offset für den Linker hinzugefügt werden? 

Memory Configuration

Name             Origin             Length             Attributes
ram              0x20000c00         0x00004400         xrw
rom              0x08005000         0x0001b000         xr
*default*        0x00000000         0xffffffff
« Letzte Änderung: 23 Juni 2019, 16:14:11 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #19 am: 23 Juni 2019, 15:58:12 »
« Letzte Änderung: 23 Juni 2019, 16:09:02 von juergs »

Offline Telekatz

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 862
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #20 am: 23 Juni 2019, 16:07:44 »
Muss da ein Adress-Offset für den Linker hinzugefügt werden? 
Das Programm muss an der Adresse 0x8002000 starten.

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #21 am: 23 Juni 2019, 16:11:42 »
Ah, klar!
/edit: Das war auch das Problem in der ersten Version des Bootloaders … 
Die sollte dann auch funktionieren....

Arduino startet @rom   0x08005000.
Mal schauen, wie man das in Arduino konfigurieren kann.

Vielen Dank! 

/Edit: Moving the start address to 0x8005000 (or 0x8002000)

  C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\boards.txt (4 hits)
Line 26: mapleMini.menu.bootloader_version.original.build.vect=VECT_TAB_ADDR=0x8005000
Line 70: maple.build.vect=VECT_TAB_ADDR=0x8005000
Line 83: mapleRET6.build.vect=VECT_TAB_ADDR=0x8005000
Line 121: microduino32_flash.build.vect=VECT_TAB_ADDR=0x8005000

Memory Configuration

Name             Origin             Length             Attributes
ram              0x20000c00         0x00004400         xrw
rom              0x08002000         0x0001ec00         xr
*default*        0x00000000         0xffffffff
« Letzte Änderung: 23 Juni 2019, 18:36:51 von juergs »

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #22 am: 23 Juni 2019, 16:58:18 »
Hallo Telekatz,

habe in Arduino die Maple Linker-Konfiguration auf ROM: 0x8002000 gesetzt...
... und siehe da!

Es geht!!!! Super!

Leider ist das nicht mehr Standard-Konform, aber immerhin!

Ich vermute, die Start-Adresse 0x8002000 macht den zusätzlich gewonnenen Flash-Bereich von 0x3000 Bytes für die Anwendung nutzbar ...

Hier meine Änderungen, die ich dafür durchgeführt habe:
  • C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\boards.txt  => alle Vorkommnisse von  0x8005000 durch 0x8002000  ersetzt
  • C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\variants\maple_mini\ld\flash.ld  => nichts gefunden ... aber in dessen include:
  • C:\Users\js\Documents\Arduino\hardware\Arduino_STM32\STM32F1\variants\maple_mini\ld\mem-flash.inc

Neu mem-flash.inc:
MEMORY
{
  ram (rwx) : ORIGIN = 0x20000C00, LENGTH = 17K
  rom (rx)  : ORIGIN = 0x08002000, LENGTH = 120K
}

Original stand drin:

MEMORY
{
  ram (rwx) : ORIGIN = 0x20000C00, LENGTH = 17K
  rom (rx)  : ORIGIN = 0x08005000, LENGTH = 108K
}

und voilá: "special", aber geht!

Allerdings würde das, (natürlich) den Wunsch aufwerfen: StartAdresse 0x08005000 um im Arduino-Standard bleiben zu können. ;D ;)

Kleine Korrektur: 108K + 0x3000 = 120K (!)

« Letzte Änderung: 23 Juni 2019, 17:06:43 von juergs »

Offline Telekatz

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 862
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #23 am: 23 Juni 2019, 18:25:54 »
Die Startadresse ist deshalb 0x8002000, um mit dem bisherigen MapleCUN Bootloader kompatibel zu sein.

Die Änderungen an dem Bootloader kann man hier finden. Damit kannst du dir auch einen Bootloader für eine andere Startadresse bauen.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #24 am: 23 Juni 2019, 18:31:06 »
Hallo Telekatz,
besser geht es nicht.

Mit welcher Toolchain? IAR? VSCode integriert?

Vielen Dank + Grüße!

Jürgen

/edit: environment:

            PREFIX: "~/toolchains/gcc-arm-embedded/bin/arm-none-eabi
« Letzte Änderung: 23 Juni 2019, 18:38:00 von juergs »

Offline Telekatz

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 862
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline juergs

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Frage zum MapleCUL Bootloader + Lötkolben TS100
« Antwort #26 am: 13 Juli 2019, 13:52:17 »
Da die Arm-Toolchain nicht mal so einfach (unter Windows) zu installieren ist,
habe ich mich für die Docker-Lösung entschieden und werde diesen Weg über Docker ausprobieren:
https://dev.to/dalimay28/using-docker-for-embedded-systems-development-b16