Ранее после сброса, программатор сразу же отравлял начальное сообщение.
Подобное поведение неудобно, поскольку требует сперва запустить скрипт
прошивки, и только после этого делать сброс.
Теперь же программатор ждет начальной команды и только после этого,
отправляет сообщение по UART.
* Предложения по дополнению и улучшению лабораторной 15
* Apply suggestions from code review
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
* Предложения по изменению вводной
* Предложения по лабораторной 14
* Еще немного изменений
* Apply suggestions from code review
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
* Apply suggestions from code review
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
---------
Co-authored-by: Mikhail Popov <mikhail.popov@bsc.es>
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
* Предложения по дополнению и улучшению лабораторной 15
* Apply suggestions from code review
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
* Предложения по изменению вводной
---------
Co-authored-by: Mikhail Popov <mikhail.popov@bsc.es>
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
* Предложения по дополнению и улучшению лабораторной 15
* Apply suggestions from code review
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
---------
Co-authored-by: Mikhail Popov <mikhail.popov@bsc.es>
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
Ранее, чтобы секция данных начиналась с адресов, кратных размеру
памяти данных (поскольку при обращении к ячейкам памяти данных мы
отбрасываем старшие биты адреса) в скрипте компоновщика размер секции
.text приравнивался размеру памяти данных, что сбивает с толку.
Вместо этого добавлен тернарный оператор для выбора подходящего
стартового адреса.
Кроме того, добавлена проверка того, что размер памяти инструкций и
данных является степенью двойки.
В примере использовалось два указателя, через которые происходило
взаимодействие с вымышленным периферийным устройством:
- указатель на структуру collider_ptr;
- указатель на массив collider_mem.
При объявлении указателя на структуру, происходил каст к неверному типу
(TIMER_HANDLE).
Указатель на массив collider_mem и вовсе не было объявлен.
Closes#51.
Раньше в вивадо была проблема с использованием mem-файлов.
Они нормально моделировались, но при этом не использовались в
синтезе, пока им не выставишь тип "Memory Initialization File".
Однако с выставлением этого типа файл нельзя было открыть в
вивадо (и даже поменять тип этого файла).
Поэтому, все файлы в курсе носили расширение .txt, чтобы их можно
было легко открыть в любом другом редакторе, а в вивадо
выставлялся злополучный тип "Memory Initialization File" вручную.
Сейчас же, судя по всему, вивадо нормально выполняет синтез и
с "Memory File" тоже, а значит нет нужды в каком-либо изменении
типов, лишь бы файлы носили расширение .mem. При этом файлы этого
типа можно открывать и редактировать в редакторе вивадо.