Hallo,
in der loader.c gibt es eine Stelle, die ich nicht verstehe:
1 | address = (const unsigned char __memx *)((unsigned long)bits << 16);
|
2 | address = (const unsigned char __memx *)((unsigned long)address | ((unsigned long)*p++ << 8));
|
3 | address = (const unsigned char __memx *)((unsigned long)address | *p++);
|
4 | [...]
|
5 | // Prepare for incoming data chunks by copying the page
|
6 | // contents into the page buffer
|
7 | case TYPE_PREPARE:
|
8 | {
|
9 | unsigned char *q = pageBuffer;
|
10 | const unsigned char __memx *r = address;
|
11 |
|
12 | do
|
13 | {
|
14 | *q++ = *r++;
|
15 | }
|
16 | while (--size);
|
17 | break;
|
18 | }
|
In der Appnote nennt sich das "FLASH PAGE PREPARE"
So wie ich das verstehe, wird der Flash in den RAM geladen. Wofür
braucht man das bei einem Bootloader?