Hallo zusammen Ich habe mir wohl etwas voreilig das Teil aus dem Betreff beschafft: http://www.mikroe.com/eng/products/view/869/mikromedia-for-stm32-m4/ Der Compiler kostet 299 Euro und die Libs für die Peripherie sind Closed-Source. Hatte eigentlich damit gerechnet, dass ich im Web mehr Infos dazu finde. Frage: Hat schon jemand mit dem Teil und GNU-C für ARM exprimentiert und kann davon berichten ? Vorallem vor dem Display habe ich Respekt, da es nicht via SPI angebunden ist, sondern im 8-bit Mode, und damit habe ich keine Erfahrung. Wollte mir aus dem Board und einem SHT25 Temp/Humy Sensor einen Datenlogger mit grafischem Display bauen. Ich weiss, ist völliger Underkill für so eine MCU, aber was soll's ;-) Geht auch darum, mit dem STM32F4 Erfahrungen zu sammeln. Danke und Gruss Daniel
Daniel B. schrieb: > Der Compiler kostet 299 Euro und die Libs für die Peripherie sind > Closed-Source. Hatte eigentlich damit gerechnet, dass ich im Web > mehr Infos dazu finde. Hättest du vorher hier gefragt, hätte ich geantwortet, dass MikroElektronika dafür bekannt ist, möglichst geschlossene, proprietäre Entwicklungssysteme anzubieten. Ebenso hätte ich gesagt, dass MikroElektronika nicht für gute Compiler bekannt ist. > Frage: Hat schon jemand mit dem Teil und GNU-C für ARM exprimentiert und > kann davon berichten ? > > Vorallem vor dem Display habe ich Respekt, da es nicht via SPI > angebunden ist, sondern im 8-bit Mode, und damit habe ich keine > Erfahrung. Du bist gerade dabei, einen Mehrfrontenkrieg zu eröffnen. Unbekannter Mikrocontroller, unbekannte Hardware, unbekannte Peripherie und unbekannter Compiler. Nicht gut. Eine mögliche Lösung wäre, mit einem Discovery-Board und einer Demo-Version der offiziell unterstützten IDEs zu beginnen. Dann Erfahrung mit dem STM32F4 sammeln. Dann eine Komponente, den Compiler, tauchen. Dann das Board tauschen. Dann das Display angehen. Dann den SHT25 angehen. Das braucht Zeit und Geduld.
Danke für die Antwort, aber so schlimm ist es nicht, respektive der Krieg hat nicht so viele Fronten ;-) - Discovery-Board ist in Betrieb, eben leider ohne Display, darum dieses Board - Codesourcery_arm-2011.09 unter Linux mit Segger JLink-EDU funktioniert soweit gut. - Die SHT Sensoren habe ich schon in diversen Projekten verwendet. Leider habe ich nicht gesehen, dass nirgends der Kontroller des Displays steht, und dass das Ding im 8-Bit Mode angebunden ist.
Na bravo, jetzt habe ich wohl auch noch mein Board geschrottet. Nach verschiedenen Versuchen mit dem JLink EDU und dem ST-Link v2 Adapter geht gar nichts mehr. - Der TFT wird nur noch weiss - Das Originalprogram läuft nicht mehr - Der Bootloader reagiert nicht mehr Flashen mit dem JLink EDU ging gar nie. Irgendwie wird zwar die CPU erkannt, aber mehr geht nicht.
1 | a239368:>JLinkExe |
2 | SEGGER J-Link Commander V4.50i ('?' for help) |
3 | Compiled Jun 22 2012 19:00:38 |
4 | DLL version V4.50i, compiled Jun 22 2012 19:00:36 |
5 | Firmware: J-Link ARM V8 compiled Jul 20 2012 16:33:52 |
6 | Hardware: V8.00 |
7 | S/N: 268000082 |
8 | OEM: SEGGER-EDU |
9 | Feature(s): FlashBP |
10 | VTarget = 3.261V |
11 | Info: TotalIRLen = 9, IRPrint = 0x0011 |
12 | Info: Found Cortex-M4 r0p1, Little endian. |
13 | Info: TPIU fitted. |
14 | Info: ETM fitted. |
15 | Info: FPUnit: 6 code (BP) slots and 2 literal slots |
16 | Found 2 JTAG devices, Total IRLen = 9: |
17 | #0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
|
18 | #1 Id: 0x06413041, IRLen: 05, IRPrint: 0x1, STM32 Boundary Scan
|
19 | Cortex-M4 identified. |
20 | JTAG speed: 100 kHz |
Sobald ich aber ein, auf dem STM32F4 lauffähiges Program (Blinky Beispiel vom M.Thomas) aufspielen will passiert folgendes:
1 | SEGGER J-Link Commander V4.50i ('?' for help) |
2 | Compiled Jun 22 2012 19:00:38 |
3 | DLL version V4.50i, compiled Jun 22 2012 19:00:36 |
4 | Firmware: J-Link ARM V8 compiled Jul 20 2012 16:33:52 |
5 | Hardware: V8.00 |
6 | S/N: 268000082 |
7 | OEM: SEGGER-EDU |
8 | Feature(s): FlashBP |
9 | VTarget = 3.261V |
10 | Info: TotalIRLen = 9, IRPrint = 0x0011 |
11 | Info: Found Cortex-M4 r0p1, Little endian. |
12 | Info: TPIU fitted. |
13 | Info: ETM fitted. |
14 | Info: FPUnit: 6 code (BP) slots and 2 literal slots |
15 | Found 2 JTAG devices, Total IRLen = 9: |
16 | #0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
|
17 | #1 Id: 0x06413041, IRLen: 05, IRPrint: 0x1, STM32 Boundary Scan
|
18 | Cortex-M4 identified. |
19 | JTAG speed: 100 kHz |
20 | J-Link>exec Device=STM32F407VG |
21 | Info: Device "STM32F407VG" selected (1024 KB flash, 128 KB RAM). |
22 | J-Link>h |
23 | R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000 |
24 | R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000 |
25 | R8 = 00000000, R9 = 00000000, R10= 00000000, R11= 00000000 |
26 | R12= 00000000, R13= FFFFFFFC, MSP= FFFFFFFC, PSP= 00000000 |
27 | R14(LR) = FFFFFFFF, R15(PC) = FFFFFFFE |
28 | XPSR 01000000, APSR 00000000, EPSR 01000000, IPSR 00000000 |
29 | CFBP 00010000, CONTROL 00, FAULTMASK 01, BASEPRI 00, PRIMASK 00 |
30 | |
31 | FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000 |
32 | FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000 |
33 | FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000 |
34 | FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= 00000000 |
35 | FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000 |
36 | FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000 |
37 | FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000 |
38 | FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= 00000000 |
39 | FPSCR= 00000000 |
40 | J-Link>loadbin /home/a239368/personal/Mikrocontroller/Cortex/stm32f4/mikromedia/project.bin, 0x8000000 |
41 | Loading binary file... [/home/a239368/personal/Mikrocontroller/Cortex/stm32f4/mikromedia/project.bin] |
42 | Writing bin data into target memory @ 0x08000000. |
43 | |
44 | ****** Error: PC of target system has unexpected value after calculating CRC. (PC = 0x20000054)! |
45 | ---------------------------------------------------------------------- Registers ------------------------------------------------------------------------------------- |
46 | PC = 20000054 |
47 | Current: R0 = 00000000, R1 = 08000000, R2 = 00004000, R3 = 00000003 |
48 | R4 = 20000358, R5 = 200003B8, R6 = 000000FF, R7 = 20000147 |
49 | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
50 | |
51 | |
52 | Info: J-Link: Flash download: Flash programming performed for 1 range (0 bytes) |
53 | |
54 | ****** Error: Failed to erase sectors 0 @ address 0x08000000 (erase error) |
55 | Info: J-Link: Flash download: Total time needed: 7369.926s (Prepare: 1.696s, Compare: 0.078s, Program: 0.000s, Verify: 7367.024s, Restore: 1.127s) |
56 | J-Link>r |
57 | Reset delay: 0 ms |
58 | Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit. |
59 | Info: Found Cortex-M4 r0p1, Little endian. |
60 | Info: TPIU fitted. |
61 | Info: ETM fitted. |
62 | Info: FPUnit: 6 code (BP) slots and 2 literal slots |
63 | J-Link>g |
64 | J-Link>exit |
Mein JLink Script:
1 | #/usr/bin/bash
|
2 | /usr/local/bin/JLinkExe << EOF |
3 | exec Device=STM32F407VG |
4 | h
|
5 | loadbin ./project.bin, 0x8000000 |
6 | r
|
7 | g
|
8 | exit
|
9 | EOF
|
Da ich den JLink-EDU nur zum flashen brauche, bin ich mit den Meldungen etwas überfordert ;-) Hat jemand von Euch eine Ahnung, was da falsch läuft, oder mir eventuell einen JLink Befehl, mit dem ich die CPU testen kann ? Keine Ahung, ob ich durch die diversen Verkabelungsversuche etwas zerstört habe, oder einfach (was ich hoffe), etwas noch nicht begriffen habe.
Ok, gelöst Auf dem STM32F407VGT6 war in den sogenannten "Option Bytes" die "Read Out Protection" auf Level 1 gesetzt. Diese Bytes werden aktuell vom JLinkExe, nicht unterstützt. Macht ja eigentlich auch keinen Sinn, da jeder, der ein eigenes Board entwickelt, diese natürlich nicht setzt. Laut Alex von Segger, werden die "Option Bytes" in einer der nächsten Versionen unterstützt (überprüfen und wenn möglich setzen). Ich habe jetzt halt noch einen ST-LINK/V2 Adapter in meiner Sammlung, man hat ja nie genügend Programmieradapter.... Daniel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.