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

Vodkin

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

Ev3658

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

Vodkin

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

Vodkin

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

Vodkin

Guest
В продаже имеется весьма недорогой JTAG адаптер, клон "Altera USB-Blaster".
Он точно работает с CPLD и FPGA "Altera" .
Проверил работу с RISC-V GD32VF103 (на плате Sipeed Longan-nano-lite).
При соответствующей настройке файлов в среде Platformio, этот адаптер вполне работает.
Наверняка его можно использовать и с МК "Амур". Он значительно дешевле, чем "Olimex ARM-USB-OCD".
И в случае, если "сгорит" МС буфера, то она была/есть в "Чип и Дип" и заменяется несложно (проверено).
Тут несколько рабочих файлов для Longan-nano и несколько полезных ссылок

 

ejsanyo

Active member
Значит, попробовал я раскурить этот самый USB Blaster. Разумеется, не оригинал от Альтеры, а его кетайскую копию имитацию. Вот такие настройки в m-link.cfg :
C-like:
adapter driver usb_blaster
usb_blaster vid_pid 0x09fb 0x6001
transport select jtag
В ответ OpenOCD мне выдал
Код:
Open On-Chip Debugger 0.12.0+dev-syntacore-2023-08-release-g45609341 (2023-08-10-00:05)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
Warn : incomplete ublast_vid_pid configuration
Warn : Transport "jtag" was already selected
jtag
Info : set servers polling period to 200ms
Info : No lowlevel driver configured, using ftdi
Info : usb blaster interface using libftdi
Error: unable to get latency timer
Info : This adapter doesn't support configurable speed
Info : JTAG tap: riscv.cpu tap/device found: 0xdeb11001 (mfg: 0x000 (<invalid>), part: 0xeb11, ver: 0xd)
Info : TAP riscv.sys does not have valid IDCODE (idcode=0xfffffffe)
Info : [riscv.cpu] datacount=0 progbufsize=6
Error: Debugger is not authenticated to target Debug Module. (dmstatus=0x400302). Use `riscv authdata_read` and `riscv authdata_write` commands to authenticate.
Error: [riscv.cpu] Fatal: Hart 0 failed to halt during examine()
Warn : target riscv.cpu examination failed
Info : starting gdb server for riscv.cpu on 3333
Info : Listening on port 3333 for gdb connections
Error: Target not examined yet

Using MIK32V2
Start Linear Address: 0x80000000
ERROR: The connection to OpenOCD is not established. Check the settings and connection of the debugger
В общем, он чип видит, но где-то "не может авторизоваться"...что бы это ни значило.
 

ejsanyo

Active member
Какой средой разработки пользуетесь?
Той самой сборкой "Mikron IDE", последней выложенной версией. PlatformIO не очень нравится, слишком уж Visual Studio подвязана на сервисы Микрософта. Но наверно это не важно, скрипты и там и там одни и те же. Или нет?
 
Сверху