Поддержка радиолюбительства

Vodkin

New member
Взял примерчик на ассемблере из статьи Тимофеева и доработал под "Longan-nano".
Работает и на "железе" и в симуляторе "QtRVSim".
RISK-V_LED_blink_asm
Делалось под Endless OS. У этой ОС имеются некоторые особенности.
 

Ev3658

New member
Так как это микроконтроллер. Очень интересует его периферия по UART, возможно DMA и само собой таймеры.
Программы пишутся под микроконтроллер желательно в большей степени с знанием кол-во тактов и занятость/производительность процессора.
То-есть работая с устройствами следует знать многое, к примеру сколько тактов уходит на смену значений регистра порта и его обновление. Вообщем много-много всего.
Это-же мелкий микроконтроллер, не процессор же ))))
 

Vodkin

New member
То-есть работая с устройствами следует знать многое, к примеру сколько тактов уходит на смену значений регистра порта и его обновление.
Это практически невозможно знать точно. RISC-V не исключение.
В AVR проще, там один конвейер. В RISC-V более одного конвейера.
На самом деле точное знание и не нужно с практической т.з. .
Если нужны относительно точные интервалы, так есть таймеры и прерывания.
Имеются статьи про упомянутый GD32VF103 :
Изучаем RISC-V с нуля, часть 1: Ассемблер и соглашения
Изучаем RISC-V с нуля, часть 2: прерывания и стыковка с Си
Светодиод, таймер и прерывания на RISC-V с нуля (на примере GD32VF103 и IAR C++)
В MIK32-амур контроллер прерываний проще, чем в GD32VF103 на ядре "Bumblebee".
Программная модель МК полно представлена в заголовочных файлах.
 

Vodkin

New member
Пример на ассемблере для MIK32-Амур :
MIK32_LED_blink_asm
Взят пример на C, транслирован на ассемблер RISC-V и упрощен.
В симуляторе работает.
На "железе" не проверялось, из-за отсутствия последнего в наличии.
 
Сверху