1892ВМ10Я: различия между версиями

Материал из WIKI ELVEES
(Новая страница: « =Вопросы по программному обеспечению= =Вопросы по технической части= =Нестандартные вопросы=»)
 
Нет описания правки
 
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:


=Вопросы по программному обеспечению=
 
=Вопросы по технической части=
= Вопросы по программному обеспечению =
=Нестандартные вопросы=
'''Как считать/запись значения регистров СР0 в программе на С?'''
<blockquote>Для работы с регистрами CP0 в языке Си необходимо использовать ассемблерные вставки.<br>
Компилятор GCC предусматривает специальные конструкции, упрощающие работу с такими вставками. Они описаны в документации на компилятор, в частности здесь:  https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/Extended-Asm.html#Extended-Asm
</blockquote>
'''Как сбросить бит EXL регистра CP0 Status? '''
<blockquote>Сброс бита EXL происходит при переключении из привилегированного режима процессора в обычный режим. Такое переключение осуществляется только командой "eret".</blockquote>'''Есть ли пример для работы с DSP на C?'''<blockquote>В примерах проектов MCStudio 4 для NVCom-02T существует пример dsp_library_main. При его запуске добавляется папка с примером dsplib. Для работы с ним необходимо сначала собрать проект dsplib, после чего собрать проект dsp_library_main. Отладка производится из проекта dsp_library_main.</blockquote>
 
= Вопросы по аппаратной части =
'''В руководстве пользователя на микросхему в разделе 8.4 "Каналы DMA для портов" указано допустимое число слов данных WN от 8 до 16 слов. Можно ли передавать меньше 8 слов?'''
<blockquote>Да, меньше 8 слов передать можно.<br>Реальное число слов данных, которое надо передать, задаётся через поле WCX.WN – это длина пачки слов, передаваемой по внутренней шине. Посредством этого параметра можно плавно изменять приоритет каналов DMA относительно других устройств и относительно друг друга.</blockquote>
'''Возможно ли настроить SPI c автоматическим выставлением сигнала SS[0] (SS_DO = 0), но с заданием задержки выставления сигнала SS[0] относительно MOSI?'''
<blockquote>Величиной задержки между падением SS в 0 и началом передачи слова можно управлять через регистр TSS_RATE. <br>Сам по себе этот регистр предназначен для управления задержкой между передачей двух слов (т.е. длительностью пребывания SS в 1). Однако вместе с этой величиной пропорционально изменяются ещё и задержки перед установкой SS в 1 и после его падения в 0.</blockquote>
'''Как разместить программу в кэш-памяти?'''
<blockquote>Расположить программу в кэш-памяти нельзя. Можно расположить ее в кэшируемом сегменте виртуальных адресов и включить кэширование. Кэширование сегмента включается записью нужного значения в соответствующее поле регистра CP0.Config (или CP0.Config1, в зависимости от сегмента). Часть сегментов виртуальных адресов является некэшируемой. Таким образом, в одном и том же диапазоне физических адресов могут быть расположены как кэшируемые данные/код, так и некэшируемые.<br>Подробнее о преобразовании адресов и кэшировании можно прочитать в одноименном документе https://elvees.ru/mc/data_sheets/mc_start_memory.pdf.</blockquote>
 
= Нестандартные вопросы =
 
[[Category:Процессоры]]
[[Category:Процессоры]]
[[Категория:Микропроцессоры|*]]

Текущая версия от 15:53, 28 июня 2023


Вопросы по программному обеспечению

Как считать/запись значения регистров СР0 в программе на С?

Для работы с регистрами CP0 в языке Си необходимо использовать ассемблерные вставки.

Компилятор GCC предусматривает специальные конструкции, упрощающие работу с такими вставками. Они описаны в документации на компилятор, в частности здесь: https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/Extended-Asm.html#Extended-Asm

Как сбросить бит EXL регистра CP0 Status?

Сброс бита EXL происходит при переключении из привилегированного режима процессора в обычный режим. Такое переключение осуществляется только командой "eret".

Есть ли пример для работы с DSP на C?

В примерах проектов MCStudio 4 для NVCom-02T существует пример dsp_library_main. При его запуске добавляется папка с примером dsplib. Для работы с ним необходимо сначала собрать проект dsplib, после чего собрать проект dsp_library_main. Отладка производится из проекта dsp_library_main.

Вопросы по аппаратной части

В руководстве пользователя на микросхему в разделе 8.4 "Каналы DMA для портов" указано допустимое число слов данных WN от 8 до 16 слов. Можно ли передавать меньше 8 слов?

Да, меньше 8 слов передать можно.
Реальное число слов данных, которое надо передать, задаётся через поле WCX.WN – это длина пачки слов, передаваемой по внутренней шине. Посредством этого параметра можно плавно изменять приоритет каналов DMA относительно других устройств и относительно друг друга.

Возможно ли настроить SPI c автоматическим выставлением сигнала SS[0] (SS_DO = 0), но с заданием задержки выставления сигнала SS[0] относительно MOSI?

Величиной задержки между падением SS в 0 и началом передачи слова можно управлять через регистр TSS_RATE.
Сам по себе этот регистр предназначен для управления задержкой между передачей двух слов (т.е. длительностью пребывания SS в 1). Однако вместе с этой величиной пропорционально изменяются ещё и задержки перед установкой SS в 1 и после его падения в 0.

Как разместить программу в кэш-памяти?

Расположить программу в кэш-памяти нельзя. Можно расположить ее в кэшируемом сегменте виртуальных адресов и включить кэширование. Кэширование сегмента включается записью нужного значения в соответствующее поле регистра CP0.Config (или CP0.Config1, в зависимости от сегмента). Часть сегментов виртуальных адресов является некэшируемой. Таким образом, в одном и том же диапазоне физических адресов могут быть расположены как кэшируемые данные/код, так и некэшируемые.
Подробнее о преобразовании адресов и кэшировании можно прочитать в одноименном документе https://elvees.ru/mc/data_sheets/mc_start_memory.pdf.

Нестандартные вопросы