Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.
achtung: das klappt nur wenn boop_rom.bin in das flash geschrieben wird ...
copy_exception_vectors:
mov r0, #sram_addr
ldr r1, =exception_vectors
ldmia r1!, {r2-r9}
stmia r0!, {r2-r9}
ldmia r1!, {r2-r8}
stmia r0!, {r2-r8}
deswegen ist es ja so schade, dass er das hier ohne den uart0_send bei mir nicht ordentlich macht (denke aber das prob dafuer gerade erkannt zu haben und hoffe das weglassen zu koennen).
Die Tricks:
- Nicht das Brennen ist der Engpass sondern die serielle Schnittstelle -> Also nicht unnötig Daten übertragen.
- Ein kleines Tool wird über ISP-Bootloader mit 38400 Bit/s geladen.
- Das Tool setzt dann die typische Betty PLL-Frequenz und läd den Rest des Tool mit 115200 Bit/s nach.
- Vor dem Flashen lasse ich vom Tool die SHA-1 Hashwerte der 19 Sektoren ermitteln und zum PC schicken (geht schnell - nur wenig Daten über RS232).
- Von Quellfile werden am PC auch die SHA-1 Hashwerte der 19 Sektoren ermittelt.
- Dann werden nur die Sektoren mit unterschiedlichem Hashwert gelöscht und programmiert (das ist bei AGB-Patch nur ein Sektor - deshalb nur 35 Sekunden Gesamtzeit).
int flash_write(u32 addr,u16 data) {
u16 check;
if(data==0xffff)
return 0;
*((unsigned volatile short *)addr)=0xa0;
*((unsigned volatile short *)addr)=data;
while(1) {
check=*((unsigned short *)addr);
if((data&0x80)==(check&0x80))
break;
}
if(data!=check)
return -1;
return 0;
}
seltsam ist, auch wenn der main code als erstes kommt - funktionen kann ich nicht verwenden. evtl nimmt er da direkte spruenge und dann landet der pc irgendwo. ist aber nur eine vermutung.
ps: den flash an bank0 habe ich mal ausgelesen, so vertrauenswuerdig schaut das allerdings bei mir nicht aus.
Wenn Du folgendes einfügst, sollte es funktionierenCode: [Auswählen]//Flash1 auf 16 bit einstellen (ist vom ISP-BootLoader noch auf 32 bit eingestellt)
BCFG0 = 0x1000FBEF;
Zitat
sach mal mit Flaschmagic kann ich wunderbar die Datei übertragen alerdinks finde ich die passende startadresse nicht kanste mir da mal helfen
0x40000200
noch nen Nachtrag ich komme mittlerweile ziemlich weit allerdings meckert es beim auslesen.
sach mal mit Flaschmagic kann ich wunderbar die Datei übertragen alerdinks finde ich die passende startadresse nicht kanste mir da mal helfen
EDIT: habs
Du arbeitest mit dem Max232? Ist der nicht nur für 5V ausgelegt?
Hab deine Datei lpcload.c eben mal unter Cygwin compiliert und die Exe ausgeführt - allerdings bekomm ichCode: [Auswählen]boot loader init ...
>> ? | 3f | (1)
txrx read: bad return byte '3f'
zurückgeliefert. Liegt es daran, dass mein TTL-Wandler ab und zu mal rumspinnt oder liegt es einfach daran, dass das Programm unter Windows garnicht gehen KANN?
$ sudo ./lpcload -d /dev/ttyS0 -f fwbc.hex -v
boot loader init ...
>> ? | 3f | (1)
<< Synchronized.. | 53 79 6e 63 68 72 6f 6e 69 7a 65 64 0d 0a | (14)
>> Synchronized.. | 53 79 6e 63 68 72 6f 6e 69 7a 65 64 0d 0a | (14)
<< OK.. | 4f 4b 0d 0a | (4)
>> 10000.. | 31 30 30 30 30 0d 0a | (7)
<< OK.. | 4f 4b 0d 0a | (4)
write firmware to ram ...
writing 0x10 bytes to 0x40000200
>> W 1073742336 16.. | 57 20 31 30 37 33 37 34 32 33 33 36 20 31 36 0d 0a | (17)
<< 0.. | 30 0d 0a | (3)
>> ##<"@.. | 23 23 3c 22 40 0d 0a | (7)
>> #X0#8.. | 23 58 30 23 38 0d 0a | (7)
>> #+>D$.. | 23 2b 3e 44 24 0d 0a | (7)
>> #L$SB.. | 23 4c 24 53 42 0d 0a | (7)
>> #!-!-.. | 23 21 2d 21 2d 0d 0a | (7)
>> !X@ .. | 21 58 40 20 20 0d 0a | (7)
>> 2081.. | 32 30 38 31 0d 0a | (6)
usw ...
note: funnily enough (sometimes) the tool just works properly after having started minicom ... (maybe some serial port config issue, dunno!)
3 Dateien davon sind fast lehr nur das Programm zum Flaschen läuft ich werde mir mal von NXP nen testcode runter laden und versuchen den zu flaschen.