Перейти к основному содержимому

ELIoT

Какие режимы загрузки микросхемы предусмотрены?

Микросхема загружается либо из накристальной флеш-памяти, либо из накристальной OTP-памяти, либо из внешней флеш-памяти.

Предусмотрена ли возможность формирования программных DMA-запросов, т.е. запросов по инициативе программиста, а не по инициативе связанного с периферийного блока?

Выбор типа запроса (программный/аппаратный) выполняется битами HS_SEL_SRC, HS_SEL_DST регистра CFGx канала DMA.Сами запросы формируются с помощью регистров, описанных в руководстве пльзователя в разделе 23.7.5 "Регистры Интерфейса Запросов".

Какие аппаратные средства предусмотрены для синхронизации работы двух ядер? Например, как обеспечить монопольный доступ одного ядра к определенной ячейке памяти или периферийному устройству? В некоторых зарубежных МК для этого предназначены аппаратные семафоры.

Для синхронизации в архитектуре ARM v8-M предусмотрены эксклюзивные обращения (Chapter B7 Synchronization and Semaphores, ARM v8-M Architecture Reference Manual). Подробнее здесь - https://www.st.com/resource/en/programming_manual/pm0264-stm32-cortexm33-mcus-programming-manual-stmicroelectronics.pdf, 2.3.8 Synchronization primitives. В ELIoT01 эксклюзивные обращения поддерживаются для всех банков SRAM0,1,2,3.

Как отдавать команды SD карте в процессе её инициализации и для записи/чтения данных, в каком формате записывать данные в FIFO для пересылки между CPU и контроллером, по какому адресу расположено FIFO?

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

Есть ли встроенный загрузчик для UART?

Возможность загрузки по UART есть: данные можно принимать во встроенную flash по нужному адресу. Загрузкой можно управлять пином GPIO (например, 1 - загрузка во flash, 0 - исполнение программы). Встроенного загрузчика нет.

Возникла проблема с библиотекой для работы с флеш-памятью контроллера. Функция Flash_WriteWord не записывает данные в память.

Выполнение FLASH_WriteWord из области флеш-памяти невозможно ввиду архитектуры микросхемы. Следует переместить код FLASH_WriteWord в SRAM-память. Например, с использованием атрибута .section: __attribute__((__section__(".ramfunc")))

Нужна информацию о процедуре калибровки процесса измерения температуры.

Для тестов ПО можно использовать такие коэффициенты:

wcal = 11'd1311;
tcal = 11'd129;
wtconf = 8'b00111101;
wtcalconf = 4'b0000;