Forum: Mikrocontroller und Digitale Elektronik PIC32 mit OpenOCD flashen


von Marvin (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich moechte mich derzeit ein wenig in PIC32 einarbeiten, bin aber ein 
absoluter Linux-Nutzer. Also waere es natuerlich schoen, wenn das auch 
alles unter Linux liefe. Nun gibt es einen Flash-Treiber fuer PIC32 fuer 
OpenOCD. Nach ein wenig basteln haenge ich nun.

Laut "PIC32MX Flash Programming Specification" ist das Flash in zwei 
Baenke aufgeteilt: Das eigentliche Code-Flash liegt bei 0x1D00000 (in 
4KB-Bloecken), bei 0x1F000000. Wenn ich nun in definition in der config 
schaue, steht da:

flash bank $_FLASHNAME pic32mx 0xbd000000 0 0 0 $_TARGETNAME
flash bank $_FLASHNAME pic32mx 0xbfc00000 0 0 0 $_TARGETNAME

Das ergibt fuer mich nun erstmal keinen Sinn. Dennoch ist sowohl ein 
'flash info 0' als auch 'flash info 1' erfolgreich, genauso wie ein 
flash 'flash erase_sector 0 0 127', was bei einer groesseren 
loeschbreiten auch fehlschlaegt. Daraus laesst sich also scheinbar 
folgern, dass die Adressen stimmen.

Wenn ich nun allerdings ein kleines Programm (mit ccompiler4pic32) 
kompiliere:
1
#include <p32xxxx.h>
2
main()
3
{
4
    TRISE = 0;
5
    PORTE = 0b10101010;
6
    while(1);
7
}
und mit objcopy ins ihex-Format (s. Anhang) bringe und damit flashe, 
bekomme ich von OpenOCD nur:
1
$ sudo ./src/openocd -f [...]  -c 'init' -c 'reset' -c 'halt' -c 'flash write_image erase led_message.hex'
2
[...] (<- hier steht nur jtag-init-zeugs.)
3
auto erase enabled
4
Error: No flash at address 0x9d000000
5
Error: No flash at address 0x9fc00490
6
Error: No flash at address 0x9fc01180
7
Info : Padding image section 3 with 880 bytes
8
wrote 4096 bytes from file /home/ja/led_message.hex in 0.456561s (8.761 kb/s)

Was darauf schliessen laesst, dass die Adressen im ihex-File nicht mit 
den Adressen von OpenOCD und den Adressen in der 'PIC32MX Flash 
Programming Specification' unterscheiden.

Ich bin zugegebenermassen stark verwirrt. Kann mir jemand weiterhelfen, 
wie ich aus diesem Wirrwarr etwas ordentliches mache?

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
Noch kein Account? Hier anmelden.