Pages: [1] 2 3 ... 6
|
|
|
|
Author
|
Topic: Hilfe beim Flashen via JLink (Read 6641 times)
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Hilfe beim Flashen via JLink
« on: 20. March 2016, 18:09:30 »
|
|
Hallo Forum, hallo Andreas,
ich bin mit dem Aufbau meines UI Boards (V. 0.4) fertig, und betreibe es nur mit den drei Spannungen (8, 5, 3.3 V) und GND.
Da ich einen STM32F439 als MC verbaut habe, wollte ich erst testen, ob dieser soweit funktioniert.
Ich kann den MC ansprechen und via JLink flashen, bin mir aber noch nicht sicher, ob ich einen 407 bin-Image direkt an Adresse 0x08010000 schreiben kann.
Noch habe ich meine Umgebung nicht eingerichtet, dass ich eine 429/439 Ableger kompilieren kann.
Nun zu meiner Frage:
Läuft die Firmware auch, wenn sie die Komponenten auf dem RF Board nicht via I2C ansprechen kann und falls ja, sehe ich dann irgend eine Ausgabe am Display?
Falls dies nicht der Fall ist, muss ich mir aus dem vorhandenen Code eine Sequenz harausbrechen, die die Anzeige initialisiert, um mein UI-Board zu testen, oder gibt es bereits Firmwareteile, die genau das machen?
Danke für Eure Antworten und Hilfe.
vy73 Markus DL8MBY
|
|
Logged
|
|
|
|
DB4PLE
positron Urgestein
Offline
Posts: 1278
|
|
Re:Hilfe beim Flashen via JLink
« Reply #1 on: 20. March 2016, 19:12:50 »
|
|
Hallo,
bezüglich der Komponenten: Ja, man sieht was, auch wenn der I2C Bus nicht funktioniert. Aber eine Bedienung ist nur sehr zähflüssig, wg. der I2C Timeouts.
Versuch macht klug. Vorallem brauchst Du einen Bootloader, sonst geht garnichts. Auch hier macht der Versuch klug.
73 Danilo
|
|
Logged
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #2 on: 20. March 2016, 19:56:28 »
|
|
Hallo Danilo,
da bin ich mir eben nicht sicher, dass mit dem Bootloader. Ich bin kein ARM Spezialist, und weiss noch nicht was für Initialisierungen der Bootloader macht und ob überhaupt.
Meiner Meinung nach müsste ich nach dem Flashen nur einen Sprung zur Startadresse machen (Vja Jlink g 0x08010000) und der MC führt ab da den Code aus.
Habe aber noch nicht genug Übung mit dem JTAG Tool und mache vielleicht noch irgendetwas verkehrt.
Jedenfalls kann ich des *.bin Firmware File an Adresse 0x08010000 schreiben und bekomme einen OK Status zurück.
Ein Sprung an die besagte Adresse führt aber zu keiner Display-Aktivität.
Aber ich habe je erst vor einigen Stunden angefangen die FW in den MC zu laden. Möglicherweise klappt es ja bald.
Vielleicht kann mir ja auch ein ARM-Kundiger aus dem mikrocontroller Forum weiter helfen.
Danke für Deine Antwort.
vy73 Markus DL8MBY
|
|
Logged
|
|
|
|
DC3AX
Interessent noch länger dabei
Offline
Posts: 186
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #3 on: 20. March 2016, 20:56:14 »
|
|
Hi!
Der Chip bootet immer ab Adresse 0x08000000. Wenn Du eine Firmware ab 0x080100000 flashst, springt er ins Leere. Also entweder eine Firmware flashen, die ohne Bootloader funktioniert, oder eben vorher den Bootloader an Adresse 0x08000000.
vy 73 de Astralix
|
|
Logged
|
Es gibt drei binäre Zustände: Ein, Aus und Vielleicht. Je höher die Frequenz, desto Vielleicht...
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #4 on: 20. March 2016, 21:10:03 »
|
|
Hallo Astralix, hallo OMs,
inwiefern ist sich die FW eines Bootloaders bewußt? Ich dachte der Bootloader springt nach getaner Arbeit, d.h. warten ob eine neue FW geflasht werden soll, nach einem Timeout, wenn nichts geflasht wird, zur Startadresse der main Funktion - weiter nichts. Da wir kein OS im MC haben, dürfte der Bootloader keine weitere Funktion haben. Liege ich damit richtig, oder habe ich da noch eine Verständnissproblem?
Danke für Eure Geduld und Hilfe.
vy73 Markus DL8MBY
|
|
Logged
|
|
|
|
DB4PLE
positron Urgestein
Offline
Posts: 1278
|
|
Re:Hilfe beim Flashen via JLink
« Reply #5 on: 20. March 2016, 21:53:15 »
|
|
Hallo Markus,
so einfach ist das nicht. Der Bootloader ist für erste Initialisierungen der HW schon zuständig. Insbesondere hat er einen vollständigen Satz von Interrupthandlern dabei. Er lädt dann die Application, die dann wiederum ihre Interrupthandler-Tabelle lädt. Der Start ist übrigens nicht direkt bei 0x08000000 (sondern 0x08000004), vorher liegt die Stackpointeradresse. Analog bei 0x08010000, da geht es erst bei 0x08010004 los.
Wenn Du mehr wissen willst, sollest Du Dir den Source-Code vom MCHF anschauen und vorallem auch die entsprechende Doku von ST für den Prozessor, da werden die Abläufe mit ausreichender Ausführlichkeit geschildert.
73 Danilo
|
|
Logged
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #6 on: 20. March 2016, 22:28:13 »
|
|
Hallo Danilo,
danke für Deine Erläuterungen zum Startvorgang. Ich habe mir bis jetzt nur die make- , project- und config-Files angesehen, um die Startadressen zu ermitteln. Ich werde mir die Tage den Code genauer ansehen und hoffe daraus noch mehr Infos zu erfahren.
Vor allem muss ich mir erst die ARM-GCC Toolchain installieren um Code für den STM32F4XX compilieren und linken zu können.
Werde mich bestimmt noch öfter im Forum melden und von meinem Fortschritt oder den Schwierigkeiten berichten.
vy73 Markus DL8MBY
|
|
Logged
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #7 on: 25. March 2016, 20:40:41 »
|
|
Hallo OMs,
habe es nun geschafft unter Linux den MC via STLink zu flashen und wollte es euch nicht vorenthalten.
Vielleicht hilft es ja jemandem weiter.
Dabei bin ich wie folgt vorgegangen:
P8 um einen Pin für Ground (Masse) erweitern. Am besten vor dem Einlöten gleich eine 5polige Pinleiste zuschneiden und Pin #5, für den auf der UI-Platine kein Loch vorhanden ist wie ein 'L' umbiegen (siehe Bild). An diesen Pin einen Fädeldraht anlöten und das andere Ende an Masse von C59 anlöten. Danach die Stiftleiste mit den verbleibenden vier Pins in die dafür vorgesehenen Löcher von P8 stecken und anlöten.
Für die Programmierung wird ein STLink USB-Stick benötigt.
Mittels des beiliegenden fünfpoligem Flachbandkabel verbindet man den STLink mit dem Pinheader P8 wie folgt.
P8: STLink: =============== Pin5-GND Pin5-GND Pin4-Clk Pin2-SWClk Pin3-DIO Pin4-SWDIO Pin2-RST Pin1-RST
HP8730W:/opt/STLink # st-flash write /home/markus/Afu/mcHF/bootloader.dfu 0x08000000 2016-03-25T20:20:46 INFO src/stlink-common.c: Loading device parameters.... 2016-03-25T20:20:46 INFO src/stlink-common.c: Device connected is: F42x and F43x device, id 0x10076419 2016-03-25T20:20:46 INFO src/stlink-common.c: SRAM size: 0x40000 bytes (256 KiB), Flash: 0x200000 bytes (2048 KiB) in pages of 16384 bytes 2016-03-25T20:20:46 INFO src/stlink-common.c: Attempting to write 23201 (0x5aa1) bytes to stm32 address: 134217728 (0x8000000) 2016-03-25T20:20:46 WARN src/stlink-common.c: unaligned len 0x5aa1 -- padding with zero EraseFlash - Sector:0x0 Size:0x4000 Flash page at addr: 0x08000000 erasedEraseFlash - Sector:0x1 Size:0x4000 Flash page at addr: 0x08004000 erased 2016-03-25T20:20:47 INFO src/stlink-common.c: Finished erasing 2 pages of 16384 (0x4000) bytes 2016-03-25T20:20:47 INFO src/stlink-common.c: Starting Flash write for F2/F4/L4 2016-03-25T20:20:47 INFO src/stlink-common.c: Successfully loaded flash loader in sram enabling 32-bit flash writes size: 23202 2016-03-25T20:20:48 INFO src/stlink-common.c: Starting verification of write complete 2016-03-25T20:20:48 INFO src/stlink-common.c: Flash written and verified! jolly good! HP8730W:/opt/STLink # st-flash write /home/markus/Afu/mcHF/mchf-20160325.bin 0x08010000 2016-03-25T20:20:58 INFO src/stlink-common.c: Loading device parameters.... 2016-03-25T20:20:58 INFO src/stlink-common.c: Device connected is: F42x and F43x device, id 0x10076419 2016-03-25T20:20:58 INFO src/stlink-common.c: SRAM size: 0x40000 bytes (256 KiB), Flash: 0x200000 bytes (2048 KiB) in pages of 16384 bytes 2016-03-25T20:20:58 INFO src/stlink-common.c: Attempting to write 245356 (0x3be6c) bytes to stm32 address: 134283264 (0x8010000) EraseFlash - Sector:0x4 Size:0x10000 Flash page at addr: 0x08010000 erasedEraseFlash - Sector:0x5 Size:0x20000 Flash page at addr: 0x08020000 erasedEraseFlash - Sector:0x6 Size:0x20000 Flash page at addr: 0x08040000 erased 2016-03-25T20:21:01 INFO src/stlink-common.c: Finished erasing 3 pages of 131072 (0x20000) bytes 2016-03-25T20:21:01 INFO src/stlink-common.c: Starting Flash write for F2/F4/L4 2016-03-25T20:21:01 INFO src/stlink-common.c: Successfully loaded flash loader in sram enabling 32-bit flash writes size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 32768 size: 15980 2016-03-25T20:21:07 INFO src/stlink-common.c: Starting verification of write complete 2016-03-25T20:21:13 INFO src/stlink-common.c: Flash written and verified! jolly good!
Da ich noch nicht die RF-Platine bestückt habe, habe ich mir als Hilfsmittel auf einer Lochraster-Platine eine kleine Spannungs- erzeugung für die 3.3V, 5V und 8V gemacht.
Diese Spannungen und GND gehen auf den Pinheader P1 von Pin 25-30, siehe Bild #2.
vy73 Markus DL8MBY
|
|
Logged
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #8 on: 25. March 2016, 20:41:47 »
|
|
Irgendwie sind die Bilder nicht mitgegangen - Sorry!
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #9 on: 25. March 2016, 20:42:49 »
|
|
und Bild #2
Markus DL8MBY
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #10 on: 25. March 2016, 21:41:29 »
|
|
Hallo OMs,
ich habe es nun geschafft eine Anzeige am Display zu bekommen.
Ich betreibe mein Display im 16-Bit Parrallel-Mode und habe die fünf Verbindungen für das Toutch-Pad von R33-R35 und PA9 (Debug Print am P8/1) und von P1/7 (DAC0) gelegt.
Mir ist nur nicht ganz klar, ob der Parallel-Mode und die Touch-Aktivierung zusammenspielen oder nur bei Verwendung der SPI Kommunikation zum Display der Touch-Mode funktioniert.
Da ja meine RF-Komponenten noch nicht erreichbar sind, kann ich am UI-Boad nicht viel mit Touch machen - richtig?
Danke für Euren Input
vy73 Markus DL8MBY
.
|
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #12 on: 26. March 2016, 11:44:19 »
|
|
Hallo Andreas, hallo OMs,
danke für die Infos.
Somit ist jetzt bestätigt, dass ein STM32F439IV ohne Anpassung mit der 407 Firmware läuft.
Da ich meine Toolchain mit Eclipse unter Linux noch nicht zum Laufen gebracht habe, ich verwende einen gcc Ver. 4.8.5, kann ich noch nicht den mchf git C-Code compilieren.
Aber immerhin konnte ich den Sourcen genug Informationen entlocken, um den Bootloader und die FW via STLink zu flashen.
Mittels JLink kann ich die FW auch Schrittweise ausführen, wobei Mangels gdb, nur eine ARM-ASM Syntax angezeigt wird.
Ich hoffe, wenn die Toolchain unter Eclipse läuft, kann ich die Source auch direkt debuggen. Was sind die Plugins, die Ihr dafür einsetzt.
Ich habe je bereits angekündigt, dass ich den Si570 durch einen LMK61E2 (low jitter) ersetzen möchte.
Da ich den Platinensatz zweimal habe, will ich die erste Version so aufbauen, wie Ihr im OV und dann die zweite Version, wenn ich mit dem Aufbau vertraut bin, mit den Modifikationen bis 70MHz, unter Verwendung der Potato Chips.
Soweit von meiner Seite zum mchf.
Euch schöne Ostern
vy73 Markus DL8MBY
|
|
Logged
|
|
|
|
|
dl8mby
alter Hase
Offline
Posts: 363
Ich liebe dieses Forum!
|
|
Re:Hilfe beim Flashen via JLink
« Reply #14 on: 26. March 2016, 12:59:42 »
|
|
Hallo Andreas,
ein OpenSuse 13.1
uname -r liefert:
Linux HP8730W 3.11.10-34-desktop #1 SMP PREEMPT Wed Jan 20 14:13:45 UTC 2016 (1e76e80) x86_64 x86_64 x86_64 GNU/Linux
markus@HP8730W:/opt/cross> ls -l insgesamt 24 drwxr-xr-x 10 root root 4096 21. Mär 21:13 arm-linux-gnueabi drwxr-xr-x 2 root root 4096 23. Feb 19:05 bin drwxr-xr-x 2 root root 4096 10. Feb 00:42 include drwxr-xr-x 3 root root 4096 10. Feb 00:42 lib drwxr-xr-x 3 root root 4096 10. Feb 00:42 libexec drwxr-xr-x 5 root root 4096 10. Feb 00:42 share
markus@HP8730W:/opt/cross> ls -l ./bin insgesamt 87032 -rwxr-xr-x 1 root root 4196845 9. Feb 22:24 arm-linux-gnueabi-addr2line -rwxr-xr-x 2 root root 4360980 9. Feb 22:24 arm-linux-gnueabi-ar -rwxr-xr-x 2 root root 6328675 9. Feb 22:24 arm-linux-gnueabi-as -rwxr-xr-x 2 root root 3288118 10. Feb 00:42 arm-linux-gnueabi-c++ -rwxr-xr-x 1 root root 4150272 9. Feb 22:24 arm-linux-gnueabi-c++filt -rwxr-xr-x 1 root root 3284424 10. Feb 00:42 arm-linux-gnueabi-cpp -rwxr-xr-x 1 root root 99885 9. Feb 22:24 arm-linux-gnueabi-elfedit -rwxr-xr-x 2 root root 3288118 10. Feb 00:42 arm-linux-gnueabi-g++ -rwxr-xr-x 2 root root 3281948 10. Feb 00:42 arm-linux-gnueabi-gcc -rwxr-xr-x 2 root root 3281948 10. Feb 00:42 arm-linux-gnueabi-gcc-4.9.3 -rwxr-xr-x 1 root root 138015 10. Feb 00:42 arm-linux-gnueabi-gcc-ar -rwxr-xr-x 1 root root 137967 10. Feb 00:42 arm-linux-gnueabi-gcc-nm -rwxr-xr-x 1 root root 137971 10. Feb 00:42 arm-linux-gnueabi-gcc-ranlib -rwxr-xr-x 1 root root 2305801 10. Feb 00:42 arm-linux-gnueabi-gcov -rwxr-xr-x 1 root root 4724952 9. Feb 22:24 arm-linux-gnueabi-gprof -rwxr-xr-x 4 root root 5755598 9. Feb 22:24 arm-linux-gnueabi-ld -rwxr-xr-x 4 root root 5755598 9. Feb 22:24 arm-linux-gnueabi-ld.bfd -rwxr-xr-x 2 root root 4229673 9. Feb 22:24 arm-linux-gnueabi-nm -rwxr-xr-x 2 root root 5167438 9. Feb 22:24 arm-linux-gnueabi-objcopy -rwxr-xr-x 2 root root 5945619 9. Feb 22:24 arm-linux-gnueabi-objdump -rwxr-xr-x 2 root root 4360979 9. Feb 22:24 arm-linux-gnueabi-ranlib -rwxr-xr-x 1 root root 1314289 9. Feb 22:24 arm-linux-gnueabi-readelf -rwxr-xr-x 1 root root 4186221 9. Feb 22:24 arm-linux-gnueabi-size -rwxr-xr-x 1 root root 4185874 9. Feb 22:24 arm-linux-gnueabi-strings -rwxr-xr-x 2 root root 5167469 9. Feb 22:24 arm-linux-gnueabi-strip
markus@HP8730W:/opt/cross> arm-linux-gnueabi-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/arm-linux-gnueabi/4.9.3/lto-wrapper Target: arm-linux-gnueabi Configured with: ../configure --prefix=/opt/cross --enable-bootstrap=no --build=x86_64-suse-linux --target=arm-linux-gnueabi --enable-languages=c,c++ --with-float=soft --disable-libmudflap --disable-multilib --with-cpu=arm7tdmi --with-float=soft Thread model: posix gcc version 4.9.3 (GCC)
Als
Eclipse SDK
Version: Mars.2 (4.5.2) Build id: M20160212-1500
Wie Du siehst, habe ich mittlerweile die 4.9.3 Version vom ARM-GCC
Jetzt muss ich noch herausfinden, wo ich die Settings für Eclipse richtig eintrage, dass der gcc verwendet wird.
Danke für Deine Mühe!
vy73 Markus DL8MBY
|
|
Logged
|
|
|
|
Pages: [1] 2 3 ... 6
|
|
|
|
|
|
|