mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
ЛР14. Уточнение комментариев
This commit is contained in:
committed by
GitHub
parent
dbaac864d2
commit
9e95dfc861
@@ -496,7 +496,7 @@ _Листинг 2. Пример содержимого файла первичн
|
||||
Исполняемый файл компилятора тот же самый, флаги компоновки будут следующие:
|
||||
|
||||
- `-march=rv32i_zicsr -mabi=ilp32` — те же самые флаги, что были при компиляции (нам все ещё нужно указывать архитектуру, иначе компоновщик может скомпоновать объектные файлы со стандартными библиотеками от другой архитектуры)
|
||||
- `-Wl,--gc-sections` — указать компоновщику удалять неиспользуемые секции (сокращает объем итогового файла)
|
||||
- `-Wl,--gc-sections` — указать компоновщику удалять неиспользуемые секции (сокращает объем итогового файла). Обратите внимание, что **после запятой не должно быть пробела** — это важно!
|
||||
- `-nostartfiles` — указать компоновщику не использовать стартап-файлы стандартных библиотек (сокращает объем файла и устраняет ошибки компиляции из-за конфликтов с используемым стартап-файлом).
|
||||
- `-T linker_script.ld` — передать компоновщику скрипт компоновки
|
||||
|
||||
@@ -739,7 +739,7 @@ _Листинг 4. Пример кода на C++, взаимодействую
|
||||
5. [Скомпилируйте](#практика) программу и [стартап-файл](startup.S) в объектные файлы.
|
||||
6. Скомпонуйте объектные файлы исполняемый файл, передав компоновщику соответствующий [скрипт](linker_script.ld).
|
||||
7. Экспортируйте из объектного файла секции `.text` и `.data` в текстовые файлы `init_instr.mem`, `init_data.mem`. Если вы не создавали инициализированных статических массивов или глобальных переменных, то файл `init_data.mem` может быть оказаться пустым.
|
||||
1. Если файл `init_data.mem` не пустой, необходимо проинициализировать память в модуле `ext_mem` c помощью системной функции `$readmemh` как это было сделано для памяти инструкций.
|
||||
1. Если файл `init_data.mem` не пустой, необходимо проинициализировать память в модуле `data_mem` c помощью системной функции `$readmemh` как это было сделано для памяти инструкций.
|
||||
2. Перед этим из файла `init_data.mem` необходимо удалить первую строку (вида `@20000000`), указывающую начальный адрес инициализации.
|
||||
8. Добавьте получившиеся текстовые файлы в проект Vivado.
|
||||
9. Запустите моделирование исполнения программы вашим процессором с помощью тестбенча из ЛР№13.
|
||||
|
Reference in New Issue
Block a user