Будет ли код запуска по-прежнему доступен после переназначения адреса на RZ / A1L в режиме загрузки 0? - PullRequest
0 голосов
/ 03 апреля 2020

В соответствии с разделом «Переопределение адресов» группы « RZ / A1L, RZ / A1LU, RZ / A1L C Руководство по группе », операция повторного отображения на этот MCU заставляет диапазон адресов 0x20000000 - 0x204FFFFF присваивать 0x00000000 - 0x004FFFFF. В разделе 3.5.1 руководства также говорится, что в режиме загрузки 0 «выполнение программы начинается с H'0000_0000». Таким образом, в режиме загрузки 0 вектор сброса / загрузки должен быть помещен в 0x00000000.

Таким образом, если MCU загружается в режиме загрузки 0, а переопределение адреса выдается вскоре после этого во время запуска, будет ли код запуска (и обработчик сброса) будет доступен после переназначения? (Предполагается, что он связан / загружен в начало пространства CS0) Другими словами, будет ли код запуска работать в диапазоне от 0x00000000 до 0x004FFFFF? Или лучше запустить в зеркальном пространстве CS0 (0x40000000 - 0x43FFFFFF)?

Я понял, что после переназначения доступ к диапазону 0x00000000 - 0x004FFFFF будет интерпретироваться MMU как доступ к диапазон 0x20000000 - 0x204FFFFF, поэтому в конечном итоге целесообразно переназначить таблицу векторов.

1 Ответ

0 голосов
/ 05 апреля 2020

Благодаря комментариям пользователя @ old_timer, я смог выявить недоразумение с моей стороны в отношении концепции отображения памяти. После «соединения точек» и разрешения этого недоразумения он уступил место ответу на этот вопрос.

То, чего я раньше (смущенно) не понимал, заключалось в том, что вся цель операции переотображения состоит в том, чтобы перенастроить набор адресов, которые связаны с конкретным c запоминающим устройством / интерфейсом (например, SPI, fla sh, SRAM и т. д. c.) с другим.

С учетом этого при загрузке (и перед операцией повторного отображения) пространство CS0 отображается на указанное устройство c: SRAM с выбором байтов или последовательным ПЗУ (асинхронным или синхронным), как указано на стр. 181 Руководства пользователя ) , В режиме загрузки 0 загрузочный код впоследствии необходимо будет загрузить в это же устройство, каким бы оно ни было (либо SRAM, либо пакетное ПЗУ). В режиме загрузки 1 код запуска должен располагаться в пространстве шины SPI multi-I / O (serial fla sh memory); в режиме загрузки 2 контроллер SD (NAND fla sh память); et c.

После переназначения адресное пространство CS0 впоследствии отображается во встроенную оперативную память. Код, который выполнялся до переназначения, все еще находится в нем и выполняется там, где он был загружен.

...