Читаю даташит на AT91SAM9G20 (раздел 13. AT91SAM9G20 Boot Program) и понять не могу что конкретно должны содержать "ARM exception vectors" и нужны ли они загрузчику (кроме шестого, конечно, в нем ведь размер загружаемой откуда-либо программы)?
Инструкции перехода на процедуры обработки этих самых исключений?
В качестве примера из даташита:
Цитата
13.4.2.1 Example An example of valid vectors follows:
00 ea000006 B 0x20
04 eafffffe B 0x04
08 ea00002f B _main
0c eafffffe B 0x0c
10 eafffffe B 0x10
14 00001234 B 0x14
18 eafffffe B 0x18
00 ea000006 B 0x20
04 eafffffe B 0x04
08 ea00002f B _main
0c eafffffe B 0x0c
10 eafffffe B 0x10
14 00001234 B 0x14
18 eafffffe B 0x18
Что это за жуткий прыжок на адрес "0xfffffe" во всех векторах?
Почему вектор по адресу 0x00 содержит инструкцию перехода на адрес 0x06?!
Как я понимаю, вектор по адресу 0x08 должен содержать инструкцию перехода на функцию main загрузчика?
Где можно посмотреть на реальный код загрузчика, размещаемого в Serial Flash, NAND и т. д?