1892ВМ10Я: различия между версиями
Etiunova (обсуждение | вклад) (Новая страница: « =Вопросы по программному обеспечению= =Вопросы по технической части= =Нестандартные вопросы=») |
Pivanovv (обсуждение | вклад) Нет описания правки |
||
(не показаны 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.