Hallo zusammen,
hoffe mal wieder auf das Schwarmwissen hier... Und zwar versuche ich an einem PIC32CZ8110CA... µC eine Updatefunktion für das Program zu implementieren. Folgendes Problem:
- Ich nutze den µC ohne dass ich einen eigenen Bootloader geschrieben hätte.
- Ich würde gerne im normalen Programablauf den neuen Programcode empfangen und diese in die zweite Application-Flash-Bank schreiben. Das funktioniert auch soweit.
- Nun wird das neue Program verifiziert und dann wäre der µC bereit für den Bank-Swap und einen Restart.
- Nach dem Restart sollte nun das neue Program laufen.
Aber genau an der Stelle mit dem Bank-Swap komme ich nicht weiter. Vermeintlich setze ich das passende Bit, es wird aber nach einem Neustart das alte Program weiter ausgeführt, als wäre nichts gewesen.
Ein ähnliches Problem hatte ich schonmal an einem ATSAMD51, da wurde mir hier damals gesagt, dass die Funktion für den Bank-Swap eine RAMFUNC sein müsse. Klingt im nachhinein logisch, hat dann dort auch funktioniert. Beim PIC32CZ scheint das nicht das Problem zu sein.
Hier noch die relevanten Bereicht vom Code:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
Hier noch der Link zum Datenblatt: https://onlinedocs.microchip.com/oxy/GUID-A52628F4-6F6F-4C77-80CB-113A0C62DB75-en-US-9/GUID-C2C1D64B-5CB2-490B-AFC0-EB77229549A4.html
Beste Grüße und vielen Dank, Fabian