"Wie gewonnen so zerronnen" - nachdem ich die Hardware-Probleme gelöst hatte wollte ich ans Flashen gehen.
Dazu habe ich das FDT (Flash Development Toolkit) in der Version 4.09 von Renesas verwendet. Damit konnte ich den gesamten Flash (User, Data und E2Data) problemlos auslesen
1 |
Clock Frequency (External) = N/A, Clock Mode = N/A, CKM = N/A, and CKP = N/A
|
2 |
Connecting to device 'R5F64524' on 'COM6'
|
3 |
Configuration:
|
4 |
'BOOT Mode' connection - using emulated interface
|
5 |
Opening port 'COM6' ...
|
6 |
Loading Comms DLL
|
7 |
Loaded Comms DLL
|
8 |
Initiating BOOT SCI sequence
|
9 |
Attempting 9600
|
10 |
Changing baud rate to 57600 bps
|
11 |
ID code check successful
|
12 |
E2 Data Flash initialised: ECC Off
|
13 |
Device protection is currently set for this device (parallel mode only)
|
14 |
Connection complete
|
15 |
Lock Bit Disabled
|
16 |
|
17 |
All blocks marked as unknown written status
|
18 |
|
19 |
Reading 784 K from device
|
20 |
Read User Flash (0xFFF40000 - 0xFFFFFFFF)
|
21 |
[Raw Checksum: 0x06666824]
|
22 |
Read Data Flash (0x00060000 - 0x00061FFF)
|
23 |
[Raw Checksum: 0x001DE9E1]
|
24 |
Read E2 Data Flash (0x00062000 - 0x00063FFF)
|
25 |
[Raw Checksum: 0x000A29CF]
|
26 |
Successfully read 784 K from device
|
27 |
|
28 |
ID Code = 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
|
Danach habe ich versucht den kompletten Flash mit der "Erase" Funktion zu löschen um das runtergeladene Image wieder drauf zu speichern.
Aber bereits beim löschen des UserFlash gibt es Probleme:
1 |
Erasing 14 blocks from device
|
2 |
Erasing... 'EB13'...
|
3 |
Erased block EB13 (0xFFF40000 - 0xFFF4FFFF)
|
4 |
Erasing... 'EB12'...
|
5 |
Erased block EB12 (0xFFF50000 - 0xFFF5FFFF)
|
6 |
Erasing... 'EB11'...
|
7 |
Erased block EB11 (0xFFF60000 - 0xFFF6FFFF)
|
8 |
Erasing... 'EB10'...
|
9 |
Erased block EB10 (0xFFF70000 - 0xFFF7FFFF)
|
10 |
Erasing... 'EB9'...
|
11 |
Erased block EB9 (0xFFF80000 - 0xFFF8FFFF)
|
12 |
Erasing... 'EB8'...
|
13 |
Erased block EB8 (0xFFF90000 - 0xFFF9FFFF)
|
14 |
Erasing... 'EB7'...
|
15 |
Error No 15005: 'COM6' read time out
|
16 |
Error No 15025: Erase failed
|
17 |
Operation failed
|
Ich habe dann, jeweils mit einem Reset dazwischen, jeden Block einzeln gelöscht, das hat am Ende dann geklappt. Aber so sollte es ja nicht sein?!
Das Programmieren wiederum verlief beim UserFlash dann unproblematisch
1 |
rocessing file :"C:\Users\og\AppData\Local\Renesas\FDT4.09\Workspaces\BCM\oldBCM.DDI"
|
2 |
Operation on User Flash
|
3 |
Writing image to device... [0xFFF40000 - 0xFFFB94FF]
|
4 |
Writing image to device... [0xFFFB9800 - 0xFFFBE3FF]
|
5 |
Writing image to device... [0xFFFDFF00 - 0xFFFE01FF]
|
6 |
Writing image to device... [0xFFFE0200 - 0xFFFE02FF]
|
7 |
Writing image to device... [0xFFFE0300 - 0xFFFE20FF]
|
8 |
Writing image to device... [0xFFFE2100 - 0xFFFE21FF]
|
9 |
Writing image to device... [0xFFFE2400 - 0xFFFEEFFF]
|
10 |
Writing image to device... [0xFFFF8000 - 0xFFFFA6FF]
|
11 |
Writing image to device... [0xFFFFF800 - 0xFFFFFCFF]
|
12 |
Writing image to device... [0xFFFFFF00 - 0xFFFFFFFF]
|
13 |
Data programmed at the following positions:
|
14 |
0xFFF40000 - 0xFFFB94FF Length : 0x00079500
|
15 |
0xFFFB9800 - 0xFFFBE3FF Length : 0x00004C00
|
16 |
0xFFFDFF00 - 0xFFFE01FF Length : 0x00000300
|
17 |
0xFFFE0200 - 0xFFFE02FF Length : 0x00000100
|
18 |
0xFFFE0300 - 0xFFFE20FF Length : 0x00001E00
|
19 |
0xFFFE2100 - 0xFFFE21FF Length : 0x00000100
|
20 |
0xFFFE2400 - 0xFFFEEFFF Length : 0x0000CC00
|
21 |
0xFFFF8000 - 0xFFFFA6FF Length : 0x00002700
|
22 |
0xFFFFF800 - 0xFFFFFCFF Length : 0x00000500
|
23 |
0xFFFFFF00 - 0xFFFFFFFF Length : 0x00000100
|
24 |
575.25 K programmed in 147 seconds
|
25 |
Device CRC = 0xD933, File CRC = 0xD933 (range 0xFFF40000-0xFFFFFFFF) -> CRC Check OK
|
Den DataFlash konnte ich ohne Probleme löschen und programmieren
1 |
Erasing 2 blocks from device
|
2 |
Erasing... 'EBB'...
|
3 |
Erased block EBB (0x00060000 - 0x00060FFF)
|
4 |
Erasing... 'EBA'...
|
5 |
Erased block EBA (0x00061000 - 0x00061FFF)
|
6 |
Erase complete
|
7 |
|
8 |
Writing image to device... [0x00060000 - 0x000600FF]
|
9 |
Writing image to device... [0x00061000 - 0x000611FF]
|
10 |
Data programmed at the following positions:
|
11 |
0x00060000 - 0x000600FF Length : 0x00000100
|
12 |
0x00061000 - 0x000611FF Length : 0x00000200
|
13 |
768 Bytes programmed in 0 seconds
|
14 |
Device CRC = 0x2819, File CRC = 0x2819 (range 0x00060000-0x00061FFF) -> CRC Check OK
|
Aber beim E2 Data Flash beiße ich mir gerade die Zähne aus:
1 |
Erasing 1 block from device
|
2 |
Erasing... 'E2Data0'...
|
3 |
Error No 15005: 'COM6' read time out
|
4 |
Error No 15005: 'COM6' read time out
|
5 |
Error No 15005: 'COM6' read time out
|
6 |
...
|
Da er "nur" einen Timeout brachte aber nicht von selbst abbrach, habe ich ihn einfach mal laufen lassen. Nach laaaanger Wartezeit kam irgendwann ein Complete:
1 |
...
|
2 |
Error No 15005: 'COM6' read time out
|
3 |
Error No 15005: 'COM6' read time out
|
4 |
Erased block E2Data0 (0x00062000 - 0x00063FFF)
|
5 |
Erase complete
|
Danach habe ich versucht zu programmieren:
1 |
Operation on E2 Data Flash
|
2 |
Writing image to device... [0x00062000 - 0x0006206F]
|
3 |
Error No 15005: 'COM6' read time out
|
4 |
Error No 17775: Detected Write Error state in E2 Data Flash
|
5 |
Error No 17159: Unable to download file
|
6 |
Operation failed
|
Wenn ich den E2 Data Flash zurücklese bekomme ich so ein "halb gelöschtes" Flash, d.H. im Vergleich zum vorherigen Inhalt sind sehr viele Bytes auf FF gesetzt worden, aber eben nicht alle.
Auch dauert der Lesevorgang des E2 Flash im Vergleich zu den anderen und seiner Größe von nur 8KB extrem lange (ca. 5 Minuten).