eddy_em: (Default)
[personal profile] eddy_em
Как оказалось, не так-то и просто собрать для него компилятор: в случае с crossdev никаких примеров в интернете нет, совершенно непонятно, какие опции нужны (попробовал несколько вариантов, но все закончились ошибкой). Тогда решил попробовать вручную. И завелось!
Алгоритм простой:
  1. качаем тулчейн git clone --depth=1 https://github.com/riscv/riscv-gnu-toolchain;

  2. конфигурируем под CH32V003 и CH32V203 (нужные флаги я подсмотрел в их Makefile) ./configure --prefix=/Big/riscv --with-multilib-generator="rv32ec-ilp32e--;rv32imac-ilp32--" (я на всякий случай в качестве корня указал доступную для меня директорию — мало ли, что там из непроверенных источников попрет при сборке);

  3. запускаем make
  4. и… вдруг оказывается, что попытка клонировать нужные репозитории (gcc, newlib и binutils) вусмерть зависают; ОК, клонируем их руками:
    git clone --depth=1 https://gcc.gnu.org/git/gcc.git
    git clone --depth=1 https://sourceware.org/git/newlib-cygwin.git
    ln -s newlib-cygwin newlib
    git clone --depth=1 https://sourceware.org/git/binutils-gdb.git
    ln -s binutils-gdb binutils
    

  5. теперь уже можно запустить сборку make -j16.


Какое-то время комп подумал-подумал, и собрал. Ну, а теперь остается попробовать какой-нибудь пример. В отличие от CH203, под который я вообще вменяемого кода не нашел, для CH003 добрый человек почти всю нужную работу проделал, отделяя зерна от плевел. Клонируем:
 git clone --depth=1 https://github.com/cnlohr/ch32v003fun.git

Там же есть и утилита minichlink, которую нужно собрать (я это сделал еще когда получил девборды, чтобы проверить, что wch-link работает и "видит" камни).
Ну и всë: захожу в examples/blink, делаю export PATH=$PATH:/Big/riscv/bin, запускаю make. Бинарник собирается и тут же запускается minichlink, прошивающий его в камень. Подключаю набортные светодиоды проводочками к PD0 и PD4 (или PC0) — мигают! Ураааа!!!!11
Теперь надо из этого "fun" сделать окружение наподобие того, что я делал для STM32. Пожалуй, и некоторые макросы я по аналогии переделаю, чтобы удобней было. И из ld-скрипта надо выкинуть крестовые секции, чтобы не мешались, но добавить секцию для эмуляции EEPROM…

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 11th, 2026 10:02 am
Powered by Dreamwidth Studios