-
- Пробовал и так, и эдак. Ничего не получается. Ну и ладно, оставлю
внукам… Пока куча дел, которые "нужно было сделать вчера". - Eddy_Em(31.10.2023 20:28)
- Что там на этой амёбе может не получиться? Периферия как у
stm32f103 считай. CSR-регистры что-ли не поборол? Там главное -
отладку запустить. Дальше дело техники. - VladislavS.(01.11.2023 08:39)
- А хрен бы ее знал. Ругается "Target does not support this command" на любое содержимое "asm volatile". В результате затыкается на первой же инструкции стартапа и уходит в хардфолт. А т.к. прерывания не разрешены, то тупо зависает и ни на что не реагирует (gdb тоже подвисает в итоге, а то бы я прошагал и посмотрел, что там еще не так). Eddy_Em(268 знак., 01.11.2023 09:00)
- Неделя в корзину. К вопросу об элементной базе для (относительно) новых разработок. - Cкpипaч(31.10.2023 21:57)
- Что там на этой амёбе может не получиться? Периферия как у
stm32f103 считай. CSR-регистры что-ли не поборол? Там главное -
отладку запустить. Дальше дело техники. - VladislavS.(01.11.2023 08:39)
- Для V003. VladislavS.(2 знак., 25.10.2023 14:22, ссылка, картинка)
- Спасибо, буду смотреть. Eddy_Em(34 знак., 25.10.2023 14:50)
- Чтобы линкер ругался, когда память на исходе. Я вон из RAM код запускаю, а в V003 его всего то 2К. Компилятор, кстати, из MRS GCC12 вытащил. Все плючшки чипов WCH поддерживает - расширение системы команд XW (код реально чуть меньше получается) и атрибут WCH-Interrupt-fast. - VladislavS.(25.10.2023 14:58)
- Спасибо, буду смотреть. Eddy_Em(34 знак., 25.10.2023 14:50)
- Вот блин, хочется сделать так: Eddy_Em(755 знак., 23.10.2023 19:39)
- Ох, туплю: там же адрес векторов устанавливается специальным
регистром, можно что угодно делать… Eddy_Em(149 знак., 23.10.2023 20:59)
- Не забывай про выравнивание в памяти таблицы векторов прерываний!
Не говори потом, что не предупреждали :) - VladislavS.(24.10.2023 05:21)
- В линкер скрипте указано. - Eddy_Em(24.10.2023 07:59)
- Этого мало. Ты же на картинке видел, что таблица векторов, которая
должна быть выровнена на 0x10, реально начинается с 0x14. Таким
образом, команда J Reset_Hanler расположена в секциии _start, но
налазит на первую запись в таблице векторов. Можно разрешить
таблице на 0x20 переехать, тогда без всяких хитростей будет, но вот
такой я жадный до лишних байт :) - VladislavS.(24.10.2023 10:27)
- Как вариант, весь Reset_Hanler в секцию старт, а таблицу векторов
уже "где получится" с нужным выравниванием. Тоже норм вариант,
кстати, если не гнаться за последним байтом. - VladislavS.(24.10.2023 10:50)
- Я именно так и планирую сделать. И вместо j reset_handler можно просто писать main()… Eddy_Em(126 знак., 24.10.2023 11:40)
- Как вариант, весь Reset_Hanler в секцию старт, а таблицу векторов
уже "где получится" с нужным выравниванием. Тоже норм вариант,
кстати, если не гнаться за последним байтом. - VladislavS.(24.10.2023 10:50)
- Этого мало. Ты же на картинке видел, что таблица векторов, которая
должна быть выровнена на 0x10, реально начинается с 0x14. Таким
образом, команда J Reset_Hanler расположена в секциии _start, но
налазит на первую запись в таблице векторов. Можно разрешить
таблице на 0x20 переехать, тогда без всяких хитростей будет, но вот
такой я жадный до лишних байт :) - VladislavS.(24.10.2023 10:27)
- В линкер скрипте указано. - Eddy_Em(24.10.2023 07:59)
- А на третий день Орлиный Глаз заметил, что у сарая нет одной стены. :))) - VladislavS.(24.10.2023 05:06)
- Не забывай про выравнивание в памяти таблицы векторов прерываний!
Не говори потом, что не предупреждали :) - VladislavS.(24.10.2023 05:21)
- Ох, туплю: там же адрес векторов устанавливается специальным
регистром, можно что угодно делать… Eddy_Em(149 знак., 23.10.2023 20:59)
- Вот так утаптывается стартовый код в таблицу векторов. Заодно
команду J в функцию завернул. VladislavS.(1 знак., 22.10.2023 12:20, картинка)
- Владислав, а какая у вас версия Visual Studio и как настроена для
работы с контроллерами? С STM32 тоже могёт? - Costic(24.10.2023 19:05)
- За работу с микроконтроллерами в VS отвечает VisualGDB. ARM и
кортексы для него основное направление. STM32 само собой тоже. Для
RISC-V как раз приходится поплясать с бубном. Версия VS не помню,
какая-то из последних Community. - VladislavS.(24.10.2023 19:15)
- Спасибо. А может быть нормальное лекарство есть (в ЛС)? Я нашёл
какое-то, антивирус его определяет как "trojan.addrop/malcrack". - Costic(24.10.2023 20:09)
- В аплоаде VisualGDB-6.0-beta2.msi - VladislavS.(09.11.2023 09:21)
- Спасибо. Это с офиц сайта или уже импорто(спи)замещённый? - Costic(09.11.2023 16:39)
- Кошерный. Можно пользоваться. - VladislavS.(10.11.2023 07:25)
- Спасибо. Это с офиц сайта или уже импорто(спи)замещённый? - Costic(09.11.2023 16:39)
- VisualGDB 5.6 r9 (5.6.109.4777). В аплоад положил, пишут
вылеченный. - enc(24.10.2023 20:33)
- Спасибо! - Costic(25.10.2023 15:24)
- На рутрекере есть. VladislavS.(129 знак., 24.10.2023 20:27, ссылка)
- Присоединяюсь. - Гyдвин(24.10.2023 20:19)
- В аплоаде VisualGDB-6.0-beta2.msi - VladislavS.(09.11.2023 09:21)
- Спасибо. А может быть нормальное лекарство есть (в ЛС)? Я нашёл
какое-то, антивирус его определяет как "trojan.addrop/malcrack". - Costic(24.10.2023 20:09)
- За работу с микроконтроллерами в VS отвечает VisualGDB. ARM и
кортексы для него основное направление. STM32 само собой тоже. Для
RISC-V как раз приходится поплясать с бубном. Версия VS не помню,
какая-то из последних Community. - VladislavS.(24.10.2023 19:15)
- Посмотрел ваш hexdump. А что, в V307 таблица векторов до адреса
0x14 пустует? Eddy_Em(106 знак., 23.10.2023 19:47)
- Как обычно - статическими функциями с ассемблерными вставками. Там же risc-v.hpp рядом со сартапом приложен. На ARM так же было, если в CMSIS заглянуть. Разница только в хитровыпендринутом доступе к CSR-регистрам. Тут как раз плюсы хорошо помогают, но можно и ручками сделать - стартап один раз пишется. - VladislavS.(24.10.2023 05:07)
- Владислав, а какая у вас версия Visual Studio и как настроена для
работы с контроллерами? С STM32 тоже могёт? - Costic(24.10.2023 19:05)
- О, и на V203 нашёлся. Только не помню, насколько там проверено всё.
Вроде должен быть рабочий. В любом случае, как источник вдохновения
пойдёт. Там основная идея - cекцию VladislavS.(174 знак., 22.10.2023 08:35, ссылка)
- Спасибо. Eddy_Em(55 знак., 22.10.2023 09:10)
- Ох, сколько тебя ещё сюрпризов на RISC-V ожидает :) Есть для V307
на плюсах. Основные моменты можешь подсмотреть. Асмовый стартап у
них корявенький. Мой раза в два меньше кода даёт в итоге. VladislavS.(1 знак., 22.10.2023 08:11, ссылка)
- Спасибо! На арм уже отвык от стартапов в асме. Особенно меня выкосило, что в листинге есть асм инструкции которые "виртуальные" и надо ключами просить чтобы вывел "настоящие"... - Sergei_sR(23.10.2023 10:57)
- Спасибо! - Eddy_Em(22.10.2023 09:09)
- Пробовал и так, и эдак. Ничего не получается. Ну и ладно, оставлю
внукам… Пока куча дел, которые "нужно было сделать вчера". - Eddy_Em(31.10.2023 20:28)