logo
Welcome, Guest. Please Login or Register.
02. May 2024, 13:57:07


Home Help Search Login RegisterWIKIUHSDR Download

Amateurfunk Sulingen
Diskussions- und Newsboard des DARC-Ortsverbandes I40  |  allgemeine Kategorie  |  mcHF Projekt Deutsch / English (here you can discuss everything related to mcHF) (Moderators: DF8OE, DL1PQ)  |  Topic: Hilfe beim Flashen via JLink <- zurück vorwärts ->
Pages: [1] 2 3 ... 6 Go Down Print
   Author  Topic: Hilfe beim Flashen via JLink  (Read 5568 times)
dl8mby
alter Hase
****

Offline

Posts: 363



Ich liebe dieses Forum!

View Profile
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





View Profile
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!

View Profile
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!

View Profile
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!

View Profile
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





View Profile
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!

View Profile
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!

View Profile
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!

View Profile
Re:Hilfe beim Flashen via JLink
« Reply #8 on: 25. March 2016, 20:41:47 »

Irgendwie sind die Bilder nicht mitgegangen - Sorry!
 STLink-2-UI-PCB-P8-klein.jpg
Logged

dl8mby
alter Hase
****

Offline

Posts: 363



Ich liebe dieses Forum!

View Profile
Re:Hilfe beim Flashen via JLink
« Reply #9 on: 25. March 2016, 20:42:49 »

und Bild #2

Markus
DL8MBY
 Power-Supply-UI-PCB-klein.jpg
Logged

dl8mby
alter Hase
****

Offline

Posts: 363



Ich liebe dieses Forum!

View Profile
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

.
 Erste-Display-Anzeige-mcHF-klein.jpg
Logged

DF8OE
Administrator
*****

Offline

Posts: 6268



Stellvertr. OVV I40, Jugend / Nachwuchsreferent

View Profile WWW
Re:Hilfe beim Flashen via JLink
« Reply #11 on: 26. March 2016, 06:56:53 »

Alle Touch-Funktionen gehen auch ohne rf-Board. Nur seeehr, seeehr träge (i2c-Timeouts...)

Und Touchscreen-Nutzung funktioniert sowohl im SPI als auch im Parallelmode des LCD.

vy 73
Andreas
Logged

Wenn der Wind des Wandels weht, nageln die einen Fenster und Türen zu und verbarrikadieren sich. Die anderen gehen nach draußen und bauen Windmühlen...
qrz.com-Seite von DF8OE
-----------------------------------------------------
>>>> Die Inhalte meiner Beiträge dürfen ohne meine explizite Erlaubnis in jedwedem Medium weiterverbreitet werden! <<<<
dl8mby
alter Hase
****

Offline

Posts: 363



Ich liebe dieses Forum!

View Profile
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
DF8OE
Administrator
*****

Offline

Posts: 6268



Stellvertr. OVV I40, Jugend / Nachwuchsreferent

View Profile WWW
Re:Hilfe beim Flashen via JLink
« Reply #13 on: 26. March 2016, 12:28:34 »

Hallo Markus,

was hast Du für ein Linux-System?

vy 73

Andreas
Logged

Wenn der Wind des Wandels weht, nageln die einen Fenster und Türen zu und verbarrikadieren sich. Die anderen gehen nach draußen und bauen Windmühlen...
qrz.com-Seite von DF8OE
-----------------------------------------------------
>>>> Die Inhalte meiner Beiträge dürfen ohne meine explizite Erlaubnis in jedwedem Medium weiterverbreitet werden! <<<<
dl8mby
alter Hase
****

Offline

Posts: 363



Ich liebe dieses Forum!

View Profile
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 Go Up Print 
Diskussions- und Newsboard des DARC-Ortsverbandes I40  |  allgemeine Kategorie  |  mcHF Projekt Deutsch / English (here you can discuss everything related to mcHF) (Moderators: DF8OE, DL1PQ)  |  Topic: Hilfe beim Flashen via JLink <- zurück vorwärts ->
Jump to: 


Login with username, password and session length

 Es wird die Verwendung von Browsern die auf der "Blink"-Engine basieren und mindestens
1024x768 Pixel Bildschirmauflösung für die beste Darstellung empfohlen
 
Amateurfunk Die Beiträge sind, sofern nicht anders vermerkt, unter der folgenden Lizenz veröffentlicht:
GNU Free Documentation License 1.3 GNU Free Documentation License 1.3
verbindet!
Powered by MySQL Powered by PHP Diskussions- und Newsboard des DARC-Ortsverbandes I40 | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Impressum & Disclaimer
Valid XHTML 1.0! Valid CSS!