-
- Интересуюсь: используешь рекомендуемый инструмент от WCH
(MounRiver) или какой-то другой (например, оригинальный xPack GNU
RISC-V Embedded GCC)? Мне оценочные платы с ch32v тоже должны
приехать, думаю, на чём начать работу. VVB(339 знак., 06.04.2023 08:57, ссылка, ссылка)
- Если С++ не в приоритете, то используйте GCC из комплекта
MounReiver. - VladislavS.(06.04.2023 15:27)
- C++ (даже при использовании как С) даёт существенные преимущества
(хотя бы по более строгой статической проверке типов), так что я
чистый С уже давно не использую. - VVB(06.04.2023 16:22)
- Тогда для использования современных стандартов придётся
пожертвовать расширением XW и использовать xPack с патчем на
__attribute__((interrupt("WCH-Interrupt-fast"))). - VladislavS.(06.04.2023 16:30)
- думаю что результат
__attribute__((interrupt("WCH-Interrupt-fast"))) делается ручками
без левого аттрибута. нужно попробывать это сделать. а вот с xw
возможно прийдется потрахатся. - klen(06.04.2023 16:35)
- Прерывания делаются. Это сочетание "naked" и mret руками. Неудобно.
Так что не имеет смысла, ведь патч на это дело есть. - VladislavS.(06.04.2023 17:00)
- мне наоборот удобно! нахуй левые расширения каких то левых гаражных
мастеров которые портят глобальную концепцию riscv! вы просто
задумайтесь - почему, о ужас! в первородном riscv нет регистра
статуса процессора. не надо портить то что умные люди на загоризонт
событий продумали. так! все. стоп - держу себя в руках! - klen(06.04.2023 17:33)
- Извращённая логика -> VladislavS.(1013 знак., 06.04.2023 18:40)
- ни один из пунктов(совсеми согласен - но удобно Вам - не значит
удобно ВСЕМ!!) не противоречит моим утверждениям ибо это факты. вы
не поняли моей мысли. урл патча дайте - хочу посмотреть как они
инструкции в машину RTL добавили(там есть не один способ надеть
штаны через голову) - возможно мне придется таким же заниматься. - klen(06.04.2023 23:53)
- Просто альтернатива "WCH-Interrupt-fast" это атрибут "naked" и руками расставлять mret. При этом молиться, чтобы компилятор в оптимизирующем порыве где-нибудь не вышел мимо mret. Как это может быть удобнее? - VladislavS.(07.04.2023 02:09)
- Никто ничего не добавлял. Компилятор под RISC-V имеет как атрибут
"Interrupt-machine" для определения функций обработки прерываний
(сохранение/восстановление контекста и выход по mret), так и
атрибут "naked" для подавления сохранения/ VladislavS.(549 знак., 07.04.2023 01:30, ссылка, ссылка)
- это просто замечательно! посмотрел по диагонали - перепилю
некоторые моменты и попробуем собрать свежак из транка 13. а где
патч с кодогенератором расширений инструкций XW? пилить так уж все
полностью. - klen(07.04.2023 12:15)
- У WCH, вестимо. - VladislavS.(07.04.2023 14:56)
- У WCH где? шарился по их сайту - не нашел. ссылку можешь дать? - klen(07.04.2023 23:40)
- Удивляюсь вашей способности выборочного чтения. Во-первых, я писал,
что не нашёл ничего по расширению XW. Во-вторых, GNU GPL v3 вам о
чём-нибудь говорит? Пишите в WCH запрос исходников - обязаны
предоставить. На OpenOCD, кстати, на подобный запрос они исходники
отдали. - VladislavS.(08.04.2023 04:22)
- уж не обижайтесь, стараюсь читать и понимать. Я напишу телегу в WCH но если вы уже это делали то может сэкономите мне время ... klen(309 знак., 08.04.2023 10:52)
- Удивляюсь вашей способности выборочного чтения. Во-первых, я писал,
что не нашёл ничего по расширению XW. Во-вторых, GNU GPL v3 вам о
чём-нибудь говорит? Пишите в WCH запрос исходников - обязаны
предоставить. На OpenOCD, кстати, на подобный запрос они исходники
отдали. - VladislavS.(08.04.2023 04:22)
- У WCH где? шарился по их сайту - не нашел. ссылку можешь дать? - klen(07.04.2023 23:40)
- У WCH, вестимо. - VladislavS.(07.04.2023 14:56)
- это просто замечательно! посмотрел по диагонали - перепилю
некоторые моменты и попробуем собрать свежак из транка 13. а где
патч с кодогенератором расширений инструкций XW? пилить так уж все
полностью. - klen(07.04.2023 12:15)
- ни один из пунктов(совсеми согласен - но удобно Вам - не значит
удобно ВСЕМ!!) не противоречит моим утверждениям ибо это факты. вы
не поняли моей мысли. урл патча дайте - хочу посмотреть как они
инструкции в машину RTL добавили(там есть не один способ надеть
штаны через голову) - возможно мне придется таким же заниматься. - klen(06.04.2023 23:53)
- Извращённая логика -> VladislavS.(1013 знак., 06.04.2023 18:40)
- мне наоборот удобно! нахуй левые расширения каких то левых гаражных
мастеров которые портят глобальную концепцию riscv! вы просто
задумайтесь - почему, о ужас! в первородном riscv нет регистра
статуса процессора. не надо портить то что умные люди на загоризонт
событий продумали. так! все. стоп - держу себя в руках! - klen(06.04.2023 17:33)
- Прерывания делаются. Это сочетание "naked" и mret руками. Неудобно.
Так что не имеет смысла, ведь патч на это дело есть. - VladislavS.(06.04.2023 17:00)
- думаю что результат
__attribute__((interrupt("WCH-Interrupt-fast"))) делается ручками
без левого аттрибута. нужно попробывать это сделать. а вот с xw
возможно прийдется потрахатся. - klen(06.04.2023 16:35)
- Тогда для использования современных стандартов придётся
пожертвовать расширением XW и использовать xPack с патчем на
__attribute__((interrupt("WCH-Interrupt-fast"))). - VladislavS.(06.04.2023 16:30)
- C++ (даже при использовании как С) даёт существенные преимущества
(хотя бы по более строгой статической проверке типов), так что я
чистый С уже давно не использую. - VVB(06.04.2023 16:22)
- новых команд я пока не нашел. а вот отличие в наборе регистров
процессора есть(mtime отсутствует в отличие от GD). на данный момен
исползовал все тулсы из MounRiver linux + плагин FreeRTOD и
SysRegView. klen(167 знак., 06.04.2023 11:00)
- У ядра QingKeV4 есть расширенный набор коротких команд. Их пока
только WCH-ный GCC порддерживает. - VladislavS.(06.04.2023 15:08)
- в выходе ихнего компилятора я их не нашел. плохо искал? дайте
ссылку на доку с их описанием. в компиллере я не нашел никаких
особых флагов чтоб указать расширения арча. - klen(06.04.2023 15:14)
- Вот пример с опкодами VladislavS.(121 знак., 06.04.2023 15:35)
- А это разве не стандартные compressed команды? - пpoxoдимeц(06.04.2023 23:16, )
- а кусок кода на С/С++ который в это превращается - мне для опытов
нужно. - klen(06.04.2023 18:18)
- Сейчас нет под рукой, сорян. Что-то мне подсказывает, что в листинге поиск по sh даст искомое. - VladislavS.(06.04.2023 18:53)
- Расширение XW. VladislavS.(1 знак., 06.04.2023 15:32, картинка)
- да, да. я на это посмотрел когда читал - подумал пожже разберусь.
вот и пришло время. - klen(06.04.2023 18:19)
- Я кроме этого абзаца в сети больше ничего не нашёл. Вот это и есть
слабое место RISC-V. Недокументированный зоопарк его погубит. - VladislavS.(06.04.2023 18:55)
- нет. его ничего не погубит - потому как он не реализация а ИДЕЯ!! а
идеи как известно бессмертны (в первом приближении), это как машина
ФонНеймана и машина Гарварда... ну где они здохли? - klen(06.04.2023 23:52)
- Только не машины, а архитектуры. И где они в чистом виде остались? Можно на примере современного контроллера VladislavS.(1 знак., 07.04.2023 01:51, картинка)
- нет. его ничего не погубит - потому как он не реализация а ИДЕЯ!! а
идеи как известно бессмертны (в первом приближении), это как машина
ФонНеймана и машина Гарварда... ну где они здохли? - klen(06.04.2023 23:52)
- Я кроме этого абзаца в сети больше ничего не нашёл. Вот это и есть
слабое место RISC-V. Недокументированный зоопарк его погубит. - VladislavS.(06.04.2023 18:55)
- да, да. я на это посмотрел когда читал - подумал пожже разберусь.
вот и пришло время. - klen(06.04.2023 18:19)
- Вот пример с опкодами VladislavS.(121 знак., 06.04.2023 15:35)
- в выходе ихнего компилятора я их не нашел. плохо искал? дайте
ссылку на доку с их описанием. в компиллере я не нашел никаких
особых флагов чтоб указать расширения арча. - klen(06.04.2023 15:14)
- Спасибо! VVB(154 знак., 06.04.2023 11:24)
- Никак. Ругнётся. - VladislavS.(06.04.2023 15:09)
- :-) Я иронизировал - VVB(06.04.2023 16:25)
- Никак. Ругнётся. - VladislavS.(06.04.2023 15:09)
- У ядра QingKeV4 есть расширенный набор коротких команд. Их пока
только WCH-ный GCC порддерживает. - VladislavS.(06.04.2023 15:08)
- Если С++ не в приоритете, то используйте GCC из комплекта
MounReiver. - VladislavS.(06.04.2023 15:27)
- Интересуюсь: используешь рекомендуемый инструмент от WCH
(MounRiver) или какой-то другой (например, оригинальный xPack GNU
RISC-V Embedded GCC)? Мне оценочные платы с ch32v тоже должны
приехать, думаю, на чём начать работу. VVB(339 знак., 06.04.2023 08:57, ссылка, ссылка)