- Перенес в MounRiver Studio 2 (RISC-V) из IAR(ARM) старый проект на
смеси C и C++, а конструкторы классов то и не вызываются. На
сколько я понимаю, в startup от WCH не хватает вызова функции
которая всё это делает. Где-бы взять нормальный полноценный startup
для CH32V? - AlexG(12.11.2025 00:07, ARM, полностью)
- Я давно про это писал, но народ как-то не ценит, никому не надо. il-2(474 знак., 12.11.2025 06:36, ссылка, ссылка)
- вот тут ещё есть об этом Zikon(4 знак., 12.11.2025 06:34, ссылка)
- а че его брать то - давай сами напишем... klen(9696 знак., 12.11.2025 00:57)
- Два варианта: или подождать, что скажет искушённый в C++ на WCH
товарищ Клён, или спросить в чате Телеграм Nikolay_Po(1 знак., 12.11.2025 00:29, ссылка)
- не могу перепрошить STLinkV3 на плате Nucleo-U575ZI в JLink.
Программа STLinkReflash пишет, что не видит STLink, хотя
STM32CubeProgrammer с платой успешно коннектится. - Rainman62(11.11.2025 18:40, ARM, полностью)
- Клава, Байкал закончился, больше не "выбивай"! ЗaвCeкциeй(1 знак., 10.11.2025 16:32,
, ARM, ссылка, полностью)
- Что можно покрутить в LWIP RAW. Имею 4 tcp pcb: работают как slave
modbus tcp. Обычно нагружено 3 pcb. Balda(390 знак., 06.11.2025 21:33, ARM, полностью)
- получилось цапнуть armv8 MVE (векторное расширение Helium) на
stm32n657. через интринсики и непосредственной векторизацией мой
gcc16.0.0 20251105 генерит код с MVE иструкциями и stm32n657
считает вектора вроде бы все правильно. klen(3279 знак., 06.11.2025 19:44, ARM, ссылка, картинка, полностью)
- а мне приехала stm32n657! на выходных буду мацать - хочу helium
заиспользовать для перемалывания циферок с ацп. интресная хренька. - klen(31.10.2025 19:37, ARM, полностью)
- Кто-нибудь разбирался как на RISC-V/GCC можно размотать стек
вызовов (сделать stack trace)? Для AVR/IAR это было элементарно и
очень полезно временами - при перезапуске в результате сбоя моя
прошивка сохраняла и показывала стек вызовов и либо сразу было
видно, где в программе произошел сбой, либо видно, что в стеке был
мусор и это какое-то переполнение. AlexG(597 знак., 16.10.2025 08:05 - 08:39, ARM, полностью)
- Коллеги, расскажите кто использует софтверные прерывания в АРМах и
как вы это делаете. - my504(13.10.2025 11:41, ARM, полностью, +1)
- Терминологическая непонятка: что вы имеете в виду под софтверными
прерываниями? Есть, как минимум, три расшифровки: инструкция SVC,
прерывание PendSV, программный вызов аппаратного прерывания путем
манипуляций с регистрами NVIC. - LightElf(13.10.2025 12:39)
- Смотря какой ARM. Есть специальные регистры, записью единицы в бит
которых, принудительно взводится любое прерывание. И я использовал
вектора прерываний неиспользуемой, выключенной периферии. - Nikolay_Po(13.10.2025 11:57)
- Кортекс 4. AT32F435. В системе команд есть инструкция софтверного
прерывания. Вот про нее и вопрос. Как вызвать и кто будет
обработчиком. Как пользоваться EXTINT-ом (там есть софтверный
триггер), а так же через свободную периферию, я знаю. Хотелось бы
узнать про внутриядерный механизм через упомянутую инструкцию. - my504(13.10.2025 12:04)
- LightElf ответил. Именно так. - Nikolay_Po(13.10.2025 13:44)
- инструкция SVC (раньше называлась SWI) вызывает исключение SVCall,
вектор 11. Дальше делаете что хотите. - LightElf(13.10.2025 12:42, +1)
- Спасибо. А как она выглядит в Си? - my504(13.10.2025 14:09)
- От компилятора зависит, это нестандартная вещь. - LightElf(13.10.2025 21:24)
- Наверное так (для GCC): Nikolay_Po(166 знак., 13.10.2025 14:24, ссылка, ссылка)
- Вопрос в догон. Обработчик SVC один - SVC_Handler. Что определяет
параметр этой инструкции? Как понимать 11 вектор? - my504(13.10.2025 14:31)
- Насчет вектора - непонятен вопрос. Номера векторов перечислены в
хедере на конкретный проц. LightElf(359 знак., 13.10.2025 21:11)
- Там два параметра. Первый, код, определяет условие, по которому
срабатывает исключение (можно, например, сравнивать значение с
допуском и по выходу за пределы - исключаться). Второе значение -
типа блокнотика, куда можно записать свою цифру, 8 бит, для
передачи обработчику - чтобы в обработчике прерывания прочитать и
принять к сведению. Nikolay_Po(91 знак., 13.10.2025 16:49)
- Тут почитать можно. Andrew_Q(2 знак., 13.10.2025 15:22, ссылка, картинка)
- Не про это? Из FREERTOS. Andrew_Q(1 знак., 13.10.2025 12:11, картинка)
- Дикпик что-то вещает на эту тему. - POV(13.10.2025 11:51)
- В вопросе должно содержаться половина ответа, а тут даже на
половину вопроса не тянет... :-) - il-2(13.10.2025 11:49)
- ++ Eddy_Em(30 знак., 13.10.2025 14:05)
- Элвис К1892ВГ1Я. два cortex-m33, 320кб озу, qspi, ... 1 500 руб. с
НДС klen(10 знак., 02.10.2025 01:38, ARM, ссылка, полностью)
- А есть ли у кого-нибудь работающий ИК-болометр на MLX90640 и
STM32F303CBT6? Хотелось бы производительность сравнить. Eddy_Em(331 знак., 11.09.2025 21:09, ARM, ссылка, полностью)
- Таки заработало! Eddy_Em(1501 знак., 25.09.2025 00:19, ссылка)
- если таки на МК, то предложу попробовать Raspberry Pi Pico 2
(RP2350) - там 2 ядра (CM33 или RISC-V) 150 МГц, 64-бит
FPU Double-Precision Coprocessor - DCP (по 2 шт. на ядро), 520к ОЗУ,
ну и цепляется PSRAM Vit(144 знак., 12.09.2025 04:53 - 08:18, ссылка, ссылка)
- Она у меня есть, но там Cortex-M0. Какие флоаты, если оно даже
делить не умеет? Eddy_Em(213 знак., 12.09.2025 08:18)
- то у тебя первая - на RP2040 - Vit(12.09.2025 08:20)
- Да все равно. Тут на новую линейку STM32 пока перейдешь, минимум
неделя пройдет. А здесь - вообще другой камень и другой подход.
Какой там толщины мануал? Это ж опять под новый камень USB писать,
да и прочие мелкие сниппеты: I2C, CAN, UART, SPI, ADC, DAC, таймеры
и т.д., и т.п… Eddy_Em(357 знак., 12.09.2025 08:54)
- ты бы посмотрел SDK, а не рассказывал как гордо полез бы в писанину
давно написанного. а то, что только М4 интересовал, ну вот и
уточнил. я же посмотрел в твой код, показалось, что там даблы. для
них СМ4 даже может быть хуже, чем СМ3. а вот расчеты в даблах,
например, на STM32F7 (который с double-precision FPU) с приведением
частоты (запускал на 200 МГц, пересчитывал на 80) на моих задачах
уделывают СМ4 минимум в 10 раз. короче, хватит пинать говно
мамонта:) - Vit(12.09.2025 12:36)
- И разогнать до 600МГц Zikon(7 знак., 12.09.2025 06:08, ссылка)
- я лет 15 назад писал софт модем на dsPIC33, в общем от концепции -
код на Си, до рабочей реализации - (код модулятора, демодулятора и
КИХ фильтров на ассемблере) разница в производительности была в 22
раза. Был еще промежуточный результат с использованием библиотечных
функций МАС - раза в 4 быстрее чем на Си. Правда это был последний
раз когда мне что-то понадобилось сделать на ассемблере. - AVF(12.09.2025 08:06)
- Пора сводный системный топик по PY32F002A делать. Нашел там
мегазасаду: в нем имеется недокументированный WWDG и все
соответствующие регистры и биты включая биты в Options. Похоже он
глючный и его просто не стали документировать а заодно вырезали из
хидеров и соответственно из LL. А в py32f0xx_ll_flash скрупулезно и
абсолютно везде накладывают маску на значения оставляя только
документированные биты. Это приводит к тому что при попытке прошить
Options любым валидным значением 3m(171 знак., 23.09.2025 15:02, ARM, полностью)
- Я тут ковырялся с ним - перетащил все программирование под GCC,
свой флешер делал - да и много чего, но не описывал - лениво VLT(4 знак., 23.09.2025 20:35, ссылка)
- Так давно уже известно что там чип PY32F030x6 - 32K/4K PLL 48MHz ,
DMA, 2xSPI, 2xUSART, 6xTimers, WWDG, IWDG & +++ Zikon(76 знак., 23.09.2025 15:29, ссылка)
- И снова PY32F002A. По ошибке поставил RDP Level=1. И как теперь его
сбросить ? Коннект по SWD есть но Option bytes программировать не
получается. - 3m(19.09.2025 16:16, ARM, полностью)
- Странная осциллограмма I2C у STM32F303CBT6. Eddy_Em(1219 знак., 13.09.2025 20:31 - 20:38, ARM, картинка, полностью)
- В общем, все более-менее получилось. Как причешу, сделаю пуш
коммита. Eddy_Em(731 знак., 19.09.2025 19:41)
- Странная штука происходит при чтении посредством DMA: читается
"левый" первый байт (в итоге потом остается один в "зависоне").
Пока решил этот косяк костылем: Eddy_Em(862 знак., 19.09.2025 15:08)
- О, на 500кГц получилось. Только фронты, конечно - та еще жесть! Во: Eddy_Em(436 знак., 13.09.2025 23:28, картинка)
- Какой же я дебил!.. Охренеть! Eddy_Em(535 знак., 13.09.2025 23:13)
- Убрал из следующего за записью адреса чтения I2C_CR2_AUTOEND,
"внезапно" все стало хорошо. Похоже, я не выдерживаю паузу перед
началом, поэтому этот STOP успевает попасть в регистр во время
окончания передачи со всеми вытекающими. Экспериментирую дальше. - Eddy_Em(13.09.2025 22:49)
- То, что на фото дугой выделено по-моему STOP, а следом
START-условие. А похожий импульс перед ACK я наблюдал неоднократно,
когда ACK формирует немного "тормозной" SLAVE. В принципе в этом
импульсе нет ничего криминального, т.к. перепад на SDA происходит
во время низкого уровня на SCL. - reZident(13.09.2025 20:40)
- Всплеск перед ACK - это легко. Мастер отпускает линию, а слейв
тянет её вниз чуть позже. Бывают там задержки у разных слейвов
разные, но спецификация I2C накладывает какие-то ограничения на
это. - SciFi(13.09.2025 20:34)
- Похоже в чипах Puya PY32F002A тоже траблы с зависанием I2C. Удалось
"на раз" повесить касаясь щупом осциллографа ножки SCL. Не может
выдать на шину START и в SR2 выставлен флаг BUSY. Блок I2C там
похож на F103-й как мне показалось. Для сравнения классический
103-й мне завешивать не удавалось. - 3m(09.09.2025 14:27, ARM, полностью)
- Одноразовый чип из вейпа? bodis(1 знак., 16.09.2025 21:40, ссылка)
- В F103 i2c запросто завешивается корочением шины. При этом если
соблюдать их мерзкую еррату, то отвешивалось. Может и тут так
попробовать? - Andreas(09.09.2025 18:01)
- Завис сигнал SCL или SDA? Процедура Bus clear реализована? reZident(1 знак., 09.09.2025 15:52, картинка)
- SCL, зависаний по SDA пока не обнаружено. Процедура развешивания не
реализована. Переделаю на программный обмен (да пошло оно все к
чертям!). А вообще ситуация с I2C в самых разных чипах реально
ЗАЕБАЛА!!! - 3m(09.09.2025 17:07)
- так везде :) в AVR тоже I2C автоматы разные везде :( а ещё
SMBUS-периферия есть :) мне, когда приходится прикручивать
всяку-разну периферию по I2C - каждый раз закончив - "крещусь" -
"свят, свят свят..." :)) - Adept(09.09.2025 17:42)
- А какой смысл в аппаратном И2Ц? Тот-жэ самый закат солнца вручную,
только "автоматически". Не считая всяких эррат и прочего дерьма. А
так, взял две любые ноги и навертел за пол-часа. - mse homjak(09.09.2025 19:07)
- +1 LДа... в тех же PIC' ушках I2С: и аппаратно (с нуля кодил,
вообще влёгкую после datasheet reading )- шарашит(100;400 кГц )
только в путь. И программно (сотенку точно)- вообще гибкость в
сервисе (полинг только чуток доставал :)). - SERGHIO(09.09.2025 21:37)
- Эррата даже на F103 не такая и жирная, особенно если только I2C
касаться. А у более вменяемых STM32 так вообще замечательно. И DMA
- классная штука. Ногодрыгом пусть унылые абдуринщики занимаются.
Чтобы "завис" аппаратный I2C, нужно очень сильно нарукожопить. Чаще
шину подвешивают тупые устройства, которые блокируют CLK, и все -
приплыли… Помогает только сброс питания. Поэтому для таких
"засранцев" я еще и отдельно управление питанием делаю. Благо,
обычно хватает Eddy_Em(62 знак., 09.09.2025 20:45)
- У меня все впечатления от аппаратного И2Ц из АВР. Т.е. дай команду
"старт", дождись флага-прерывания, дай команду "заслать в оркестр
данные", дождись.. дай команду "ждать АСК", дождись, дай
команду...додждись...дай команду... Если в СТМ нужно только
подготовить буфер "с" или "для", грузануть вручную тока
команду-адрес, а все аски-наски, старты-стопы сделает жэлезяка и
ДМА, то признаю, что неправ. - mse homjak(10.09.2025 13:30)
- Я разгонял i2c до 1 и даже 2 МГц. Там нужно было довольно много
туда-сюда гонять. Если бы это было ногодрыгом, проц больше ничем
заниматься не мог бы. - SciFi(09.09.2025 19:51)
- Ответ - тайминги. Джиттер. - Cкpипaч(09.09.2025 19:22)
- Это синхронный интерфейс, ташта, жыттер не играет никакой роли. Я
могу задерживать процэсс на секунды. Как, собсно и делал, в своё
время, на какой-то АВРке. У меня была программка монитора, с
возможностью писать и читать память и я, вручную, засылал в порты
И2Ц команды, чтобы отработать аппаратный интерфейс. Успешно. Потом
реализовал это в АСМ. Потом, посмотрел и переписал в бит-бэнг. И с
тех пор подобной хернёй не страдал. - mse homjak(09.09.2025 19:41)
- Щуп переключи на 1:10. - enc(09.09.2025 15:46)
- Cortex-M0 падает в HardFault на инструкции MSR PSP, R0. Что бы это
значило? AlexG(33 знак., 06.09.2025 10:34, ARM, полностью)