-
- ЕМНИП, исходно это аналог армовых LDREX/STREX. Но китайцы
пожалелиодин триггерих упростили до обычных load/store. Смысла использовать никакого нет, кроме необходимости использовать чужие бинарники. - LightElf(10.03.2026 21:06)- Спасибо. - Nikolay_Po(11.03.2026 16:53)
- А что за подопытный, можете точнее сказать? Хоть и не использую, но любопытно. UPD: Если это CH32V.. - то в CH32xRM.PDF описано всё. MODE имеет два бита в любом случае, придётся городить что-то вроде семафора; и да - BRy BSy влияют только на ODR (Output data regiser) :o( - Dingo(10.03.2026 18:30)
- Сам с архитектурой не работал, вот болванчик что сказал: Dingo(2 знак., 10.03.2026 13:40, картинка, картинка)
- Операции с ногами есть, опереций установки режима для одной ноги
нет - VladislavS.(10.03.2026 15:10)
- А там разве режим задаётся не так же как бит значения? Рассуждаю по
аналогии с АРМ. То есть условный GPIOC_MODE такой же как GPIOC_IO c
точки зрения адресации регистров и адресных пространств. Для
NUC9x6(ARM926EJ-S) вообще все регистры в абсолютных адресах заданы
в хидерах о производителя. Даже если структурой описан можно
сделать что-то вроде &(GPIOC->MODE) . Вот если режим
задаётся двумя битами - то да, сложнее будет. 1300 строка примерно Dingo(1 знак., 10.03.2026 17:49, ссылка)
- Там RMW, остальное уже не важно. - VladislavS.(10.03.2026 18:36)
- А там разве режим задаётся не так же как бит значения? Рассуждаю по
аналогии с АРМ. То есть условный GPIOC_MODE такой же как GPIOC_IO c
точки зрения адресации регистров и адресных пространств. Для
NUC9x6(ARM926EJ-S) вообще все регистры в абсолютных адресах заданы
в хидерах о производителя. Даже если структурой описан можно
сделать что-то вроде &(GPIOC->MODE) . Вот если режим
задаётся двумя битами - то да, сложнее будет. 1300 строка примерно Dingo(1 знак., 10.03.2026 17:49, ссылка)
- Операции с ногами есть, опереций установки режима для одной ноги
нет - VladislavS.(10.03.2026 15:10)
- Глобально запретить прерывания в QingKe-V4C через CSR достаточно
быстро должно быть. VladislavS.(357 знак., 10.03.2026 12:36)
- А ведь эти, установка и сброс бит, сами по себе не атомарными
будут... Радует только то, что, в итоге, каждый при своём останется
- или успел, или не успел, но содержимое CSR не пострадает. Но я
больше предпочитаю модифицировать PFIC_ITHRESDR. Так можно
заблокировать только достаточный для атомарности уровень
приоритета, не блокируя все прерывания насовсем. - Nikolay_Po(10.03.2026 15:14)
- Обещают атомарные VladislavS.(2 знак., 10.03.2026 15:23, картинка, картинка)
- Спасибо. Вспомнил - видел их в переключениях контекста FreeRTOS. - Nikolay_Po(10.03.2026 15:55)
- Обещают атомарные VladislavS.(2 знак., 10.03.2026 15:23, картинка, картинка)
- А ведь эти, установка и сброс бит, сами по себе не атомарными
будут... Радует только то, что, в итоге, каждый при своём останется
- или успел, или не успел, но содержимое CSR не пострадает. Но я
больше предпочитаю модифицировать PFIC_ITHRESDR. Так можно
заблокировать только достаточный для атомарности уровень
приоритета, не блокируя все прерывания насовсем. - Nikolay_Po(10.03.2026 15:14)
- Вот как используются нормальные, не упрощённые инструкции
Load+Reserve (lr) и Store Conditional (sc): Nikolay_Po(1116 знак., 10.03.2026 01:37, ссылка)
- ну то есть как обычно с riscv, списали с arm с его ldrex/strex, да
по дороге один сломали, второй потеряли. beefdeadbeef(132 знак., 10.03.2026 12:48)
- ldrex/strex ARM-ы сами слизали с Hitachi SH (или MIPS ll/sc?). А те ее подрезали в каком-то амерском НИИ. LightElf(22 знак., 11.03.2026 15:11, ссылка)
- А я и не знаю, можно ли? Я спрашиваю. Хочу? Да. Можно? Не знаю. - Nikolay_Po(10.03.2026 15:08)
- Для stm32 и друзей ответ -- нет, нельзя, через ahb и тем паче apb это всё не проходит. beefdeadbeef(103 знак., 10.03.2026 15:42)
- ну то есть как обычно с riscv, списали с arm с его ldrex/strex, да
по дороге один сломали, второй потеряли. beefdeadbeef(132 знак., 10.03.2026 12:48)
- А почему нельзя в прерывании ставить флаг, а в суперлупе менять? - Eddy_Em(10.03.2026 01:20)
- ЕМНИП, исходно это аналог армовых LDREX/STREX. Но китайцы