- У меня тут очередная рассинхронизация между своим мировоззрением и
даташитом на STM32G070xB. Дело касаемо подбора емкостей и резистора
в схеме включения кварца (HSE). il-2(587 знак., 01.12.2020 17:49, ARM, полностью)
- В общем, я для себя так понимаю (отредактировано): il-2(530 знак., 02.12.2020 12:09)
- transconductance - параметр обратно пропорциональный сопротивлению,
проводимость по нашему. Видимо с менее добротными кварцами
запускаться может. - Visitor(01.12.2020 18:42)
- Да с Oscillator transconductance все ясно. Я про другое спрашивал.
Что есть Maximum critical crystal transconductance, нахрена он
указан в даташите и как им пользоваться по назначению (читай - как
рассчитать номиналы для обвязки кварца) ??? - il-2(02.12.2020 05:15)
- В тексте (по ссылке) говорится, что при слишком высоком
эквивалентном последовательном сопротивлении резонатора добротность
кварца снижается настолько, что схема генератора уже не способна
обеспечить стабильность частоты и может запускаться на гармониках. - teap0t(02.12.2020 09:12, ссылка)
- Так??? -> - il-2(02.12.2020 11:28, ссылка)
- Ну, скажем, в таблице 35 в DS, где описываются параметры HSE для Gm
(maximum critical crystal transconductance) указано условие
"Startup". При большем сопротивлении генератор просто не
запустится. Почему Max, если цифра маленькая? Наверно, они имеют в
виду эквивалентное сопротивление. В физике с терминологией довольно
сложно, а это ещё и тема довольно узкая. Надо в схемотехнический
раздел вопрос задавать: там есть народ, работающий с кварцами. teap0t(02.12.2020 12:01, ссылка)
- ХЗ. Непонятно, что имеется в виду под термином "критическая
проводимость (или крутизна)". По физике, чем ниже эквивалентное
сопротивление, тем выше добротность контура, т.е. с энергетической
точки знения дешевле сохранить устойчивые колебания. Кварц будет
меньше греться, а генератор будет меньше жрать. А как узнать, что
думает индеец, писавший AN или DS? - teap0t(02.12.2020 11:43)
- Это параметр кварца, при выборе кварца учитывается - General(02.12.2020 07:08)
- Наверно, речь идёт о достижимой точности результирующей схемы. - teap0t(01.12.2020 18:49, ссылка)
- stm32f303CB i2c я чего то не понимаю или в даташите неправильно?
Суть проблемы: если считать что i2c clk = SYSCLK (все настроено)
все тайминги получаются вдвое меньше расчетных, такое ощущение, что
они завязаны на i2cclk/2. Куб тоже считает как будто i2cclk =
SYSCLK /2, где это внятно написано? Ни на тактовых шинах, ни на i2c
делитель на 2 нигде не указан и в описании регистра I2Cx_TIMINGR
явно указано отсутствие делителей, кроме прескалера, но я его
учитываю. AVF(107 знак., 30.11.2020 19:48, ARM)m16
- может кому встречалась документация? У STM32 у некоторой периферии
(USB/CAN... ) есть свой ОЗУ! Вопрос о её адресации, и совсем
замечательно мапа (но скорее всего там тупо куча или стек) ... но
всетаки - Aleksey_75(26.11.2020 21:02, ARM, полностью)
- Поломалась отладка в STM32SW4 (eclipse). Подскажите куда копать.
Уже два раза все удалил и заново переставил (SW4, драйверты и
сервер stlink разные версии) с перезагрузкой, весь доступ и порты в
файрволле проверил, не работает. Причем с неделю назад, со
второго-третьего раза подключался, вчера вообще перестал. ST-Link
через STVP и из SW4 контроллер и пишет и читает и стирает.
Настройки правильные т.е. (software reset, с разными скоростями
пробовал). Тот же проект, тот AVF(772 знак., 15.11.2020 08:52, ARM, картинка, полностью)
- UPD: победил. Бл...дь, сто лет назад удаленный COMODO файрвол
остался в виде драйвера к сетевой карте и жил своей жизнью, это
писец какой-то. Мало того, его еще видно не было, тут переставлял
VirtualBox и он проявился. - AVF(24.11.2020 07:24)
- еще такой момент, что если именно про ST-Link речь (обычно люди
перешли уже на Segger и его китайские клоны), то st-шники недавно
поменяли драйвер на новый и только новая софтина CubeProgrammer с
ним совместима, а среда может про новый драйвер ничего не знать. - NAUT(22.11.2020 18:45)
- есть подозрение что дело вообще в USB, то ли питания не хватает, то
ли напряжение ниже чем надо, то ли драйвер, в общем попробуйте
через USB-хаб и в внешним питанием на девайс... - NAUT(22.11.2020 18:42)
- update - пока не решил, но проблема в gdb+ОС. Переустановка SW4,
разных версий драйверов, установка Atollic True Studio,
STM32CubeIDE (все на базе эклипса), удаление антивируса/файрвола
(avast), не помогли, хотя антивирус и на ноутах стоит. Отладка из
Keil работает (и через STLink и через ULink), STM32CubeIDE
позволяет работать через JLink - тоже не работает, на том же этапе
- gdb не подключается. При этом пока запущен openocd, gdb из
консоли windows подключается к openocd и AVF(427 знак., 22.11.2020 15:43)
- Пару недель назад студенты парились с программированием через TE -
Link, из под ИАР, если актуально будет, спрошу. - Visitor(15.11.2020 12:10)
- процесс openocd завис, либо его что-то блокирует antm(120 знак., 15.11.2020 12:10)
- Системный подход. Для начала качаешь STLinkUtility и проверяешь,
видит ли она: 1) STLink, она может его видеть без подключения к
камню. 2) Камень на STlink'е. Сначала надо проверить именно это.
Потом уже Eclipse. И еще: драйверы для STLink видны среди драйверов
Windows. - RxTx(15.11.2020 11:55)
- Железка подключена к ПК напрямую или через сеть? - evgeniy1294(15.11.2020 11:46)
- напрямую - AVF(15.11.2020 12:14)
- Либо openocd не смог подцепить отладчик, либо порт что-то
блокирует. У вас ОС какая? - evgeniy1294(15.11.2020 12:17)
- Вин 10, и здесь и на ноутах (домашний и рабочий), на ноутах
нормально работает. И обновления одинаковые установлены. - AVF(15.11.2020 12:23)
- Еклипс на win обычно тянет с собой сборку openocd, а также компилер
и gdb. evgeniy1294(303 знак., 15.11.2020 12:34)
- То что он их ставит, это однозначно, а где посмотреть полный лог,
что запускает эклипс? у меня есть подозрения что он что-то не то
запускает. OpenOCD в диспетчере появляется ненадолго. - AVF(15.11.2020 12:57)
- В папке plugins - evgeniy1294(15.11.2020 13:02, ссылка)
- Перетащил папку Ас6 с ноута на комп, стал показывать ошибку: AVF(71 знак., 15.11.2020 14:47)
- Запустите openocd руками: evgeniy1294(396 знак., 15.11.2020 15:17)
- Спасибо! На вид все нормально, по крайней мере gdb подключился к
ocd и прошли дальше listening, почему то не дает вставить ответ в
сообщение, в общем если кратко: AVF(524 знак., 15.11.2020 19:50 - 19:56)
- Чтобы запустить отладку нужно дать команду "continue" или, сокращенно "c". gdb - линуксячий софт, а пути в линуксе разделяются /, а в винде
разделитель \. - evgeniy1294(15.11.2020 19:57)
- Но ответ он выдает с \. Вопрос что с этим делать - AVF(15.11.2020 19:57)
- Это он адаптировал выхлоп под винду, вроде так и должно быть.
Вообще советую работать на нормальной операционной системе, а не на
этом поделии для домохозяек. - evgeniy1294(15.11.2020 20:00)
- мне результат надо, а линукс это пожиратель времени, я конечно
использую линукс на чпу, но там больше ничего нет. Ну ладно, это
лирика, в общем на "с" gdb говорит: AVF(158 знак., 15.11.2020 20:07)
- Чего-то странно немного, target not halted быть недолжно. - evgeniy1294(15.11.2020 20:15)
- Upd. в диспетчере видно что запускается, командная строка
"путь\arm-none-eabi-gdb.exe --interpreter mi2 --nx", но получается
к ocd он не подключается. - AVF(15.11.2020 20:57)
- сделал так, остановил ocd, запустил отладку из эклипса, пока он
пытался подключиться, запустил подключение gdb из его консоли, из
консоли подключение прошло. Потребовало ресета, но в принципе
сработало. Потом эклипс закрыл ocd. Суть в чем - видимо эклипс как
то не так запускает gdb или вообще его не может запустить.
И пути в переменных и команду запуска полностью не
показывает или я не знаю где смотреть. Проверил - путь правильный, значит проблема в другом :( AVF(93 знак., 15.11.2020 20:49)
- Программа на процессоре выполняется. Может что я не то сделал, по
сути то связка gdb ocd работает, потому что из эклипса он зависал
на 3333 listening - AVF(15.11.2020 20:20)
- Ага, похоже или не запускается gdb (или блокируется 3333 порт, хотя
второе сомнительно), потому что openocd запускается, слушает 3333
порт, а потом закрывается по таймауту. - AVF(15.11.2020 13:16)
- OpenOCD в составе эклипса хранится по адресу <папка с
эклипсом>/plugins/<что-то с именем openocd> (
Например
SystemWorkbench/plugins/fr.ac6.mcu.externaltools.openocd.linux64_1.23.0.201904120827/)
. Скрипты для openocd хранятся там же (Например
SystemWorkbench/plugins/fr.ac6.mcu.debug_2.5.0.201904120827/resources/openocd/) - evgeniy1294(15.11.2020 12:52)
- Руками из командной строки openocd/gdb нужной версии запускали?
Есть соединение? - s_h_e(15.11.2020 09:55)
- Как J-link ом записать OB_RDP_LEVEL_1 (stm32f0)? - Balda(13.11.2020 22:21, ARM, полностью)
- Пытаюсь мигать светодиодом на BluePill + mbed. Не мигает! Mty1(809 знак., 14.11.2020 22:03, ARM, полностью)
- Филосовский вопрос - можно ли на вход STM32F103CB, запитанный от
3.3В подать цифровой сигнал 1.8В? il-2(179 знак., 13.11.2020 17:07, ARM, полностью)
- Статья про подделки и клоны stm32 - Visitor(09.11.2020 13:13, ARM, ссылка, полностью)
- А вот как вам такое? - mr-x(12.11.2020 23:24, ссылка)
- и разговорчики-то ходят с 2015-го - RxTx(11.11.2020 02:12, ссылка)
- Картиночка невозбранно умыкнута у Сваричевского - RxTx(11.11.2020 02:10, ссылка)
- «флеш-хранилище» «кеша» А вот отечественная статья - RxTx(11.11.2020 01:28, ссылка)
- По ссылке - табличка, на каком железе собраны электровеники Сяоми
разных поколений. В двух словах - в ранних моторчиками управляли
STM32F103VCT6, в поздних перешли на GD32F303ZET6.
"Импортозамещение". Cидopгeк(9 знак., 09.11.2020 14:36, ссылка)
- Жызненно. - Kpoк(09.11.2020 13:47)
- Статейка так себе. Хотелось бы, все-таки, подробный разбор клонов.
Преимущества и недостатки и все такое. Ну и обидно, что клонируют
F103 - первый блин весьма комом вышел у ST, в отличие от более
поздних. - LightElf(09.11.2020 13:43)
- наткнулся на от iar. смутило Confusing implicit casting: Bit shift an unsigned 32 bit object 15 times Constantin24(167 знак., 28.10.2020 13:10, ARM, ссылка, полностью)
- Наткнулся на код. в чем сокральный смысл сего? Constantin24(207 знак., 26.10.2020 13:28 - 14:29, ARM, полностью)MBedder
- У STM32H7 в SPI есть FIFO и доступ к нему через TXDR посредством 8,
16 или 32 битного доступа вызывает запись соответствующего
количества бит. Для любого вменяемого компилятора VladislavS.(333 знак., 28.10.2020 08:22)
- большая просьба ! опубликуйте плиз определение регистра TXDR! - Aleksey_75(26.10.2020 22:28)
- Не хватает типа TxData. Предположу что он 16битный, тогда это
конструкция заставляет gcc исползовать 16битную команду записи, а
не расширить вначале TxData и затем уже записать 32 битный блок.
Для некоторых странных переферий это может быть важно. На другом
компиляторе видимо этого расширения не происходит (что само по себе
довольно сильное предположение). - Kabdim(26.10.2020 18:31)
- похоже опять 50.4.13 Data packing . Возможно гнусь и другие
компиляторы по разному организуют доступ к регистру, когда регистр
описан как 32битный, а переменная 16битная. - Andreas(26.10.2020 14:45)
- Автор не смог написать "*((__IO uint16_t *)&SPIx->TXDR) =
TxData" ? - fk0(26.10.2020 14:09)
- и на какой адрес ссылается spitxdr ??? я так понял при записи в
SPIx->DR реальная запись идет в TXbuf, а при чтении с
SPIx->DR с RXbuf! А вот адресацию я найти так и не смог! Aleksey_75(1 знак., 26.10.2020 13:57, картинка)
- Надо уметь воспринимать мир со всеми его противоречиями, и не
искать смысла там, где его нет :-) Спроси у автора. Ставлю бутылку,
что не услышишь вразумительного ответа :-) il-2(58 знак., 26.10.2020 13:56)
- скорее всего это связано с настройками SPI (количество байт),
недавно эта тема косвенно затрагивалась - VLLV(26.10.2020 13:43)
- возможно, какая то ручная оптимизация кода. - ASDFS(26.10.2020 13:36)
- Stm32f0 настройка CAN на 125 kbps Balda(71 знак., 22.10.2020 18:36, ARM, картинка, полностью)
- stm32 чтот непонятки, создал массив в раме volatile uint8_t
__attribute__ ((at (ADR))) tmp_buf[22528] = { 0 }; Смотрю
отладчиком а но вообще и не обнулен, мусор... принудительное
обнуление через memset на ПО не влияет, т.е. почему то не инитится,
вопрос почему ? - Aleksey_75(21.10.2020 01:03, ARM, полностью)
- Как и обещал, сделаю развернутое пояснение. Для начала стоит
обратить внимание на выхлоп компилятора, для чего скормим файл
прошивки программе readelf (в качестве примера я взял пример blink
из своей либины): evgeniy1294(3147 знак., 21.10.2020 21:56)
- 1. Проверка if (dl != ds) не нужна. На этапе компиляции значения dl
и ds неизвестны, их линкер подставляет. Поэтому оптимизация тут не
сработает. А дальше while и без этой проверки всё правильно
сделает. VladislavS.(1485 знак., 22.10.2020 08:32)
- Спасибо за развернутый ответ! А вы уверены что ZI-дата обнуляется
именно так а не копируется напрямую с флеши ? мелкие массивы
копируются напрямую точно знаю! - Aleksey_75(21.10.2020 22:12)
- У тебя же не gcc? Мешаете тёплое и мягкое. - SciFi(21.10.2020 22:28)
- не gcc... вопрос! а с gcc можно собирать без установки пакета? ну
т.е. бросил два екзешника компилер и линкер в репозиторий и на
любом компе собрал ? - Aleksey_75(22.10.2020 00:22)
- Почему-то многие думают, что gcc — это просто экзешник, который к
тому же умеет все архитектуры (опен соус жеж!). GCC — это проект с
большим деревом исходников, который рождает множество разных
компиляторов. А на самом деле тебе интересен тулчейн (его тоже
часто называют gcc), и туда кроме компилятора входит, например,
такая немаловажная часть, как стандартная сишная библиотека, и это
уже не gcc, а другой проект, но кому это интересно... - SciFi(22.10.2020 09:20)
- Ну не два экзешника, но просто распаковать toolchain в отдельную
папку, прописать к нему пути и собирай make. - VladislavS.(22.10.2020 08:00)
- Нужно завести секцию .bss_RAM<что-то> по нужному адресу и
соответственно размещать в секции. Тогда будет нормальная
инициализация. - Kabdim(21.10.2020 12:26)
- Потому что обнуляемые значения покоятся в секции bss, а у вас
массив черт знает где (ADR). Секция bss обнуляется в стартапе, вам
придётся либо разместить массив в ней, либо обнулять вручную. evgeniy1294(144 знак., 21.10.2020 01:11)
- Знатоки STM32 и читатели даташитов! SPI сконфигурирован на 1 байт,
нужно ли приводить SPI->DR к одному байту? Если записать, как
есть, сколько байт передаст SPI? - VLLV(09.10.2020 04:31, ARM, полностью)
- stm32 сильно разные, например на L4 я пару часов потратил на бубен,
там надо было не только DR приводить к одному байту, но еще
периферию нетривиально настраивать. В других обходилось без бубна. - AVF(13.10.2020 12:48)
- Из даташита на STM32F10x: il-2(460 знак., 09.10.2020 15:29)
- При передаче всё просто. Само собой будет 1 байт. Если задан байт.
А вот при приеме да, надо смотреть наличие ФИФО. Я 3 года назад
накувыркался с STM32L476. :-) - Лaгyнoв(09.10.2020 08:38)
- Вот это читали? - teap0t(09.10.2020 07:56, ссылка)
- Спасибо! Теперь смотрите, в чем проблема - такое приведение убивает
признак volatile у DR! В IAR на максимальной оптимизации этот код
не работает. - VLLV(09.10.2020 09:00)
- Блин, да не выдумывайте проблемы на ровном месте. Всё проще пареной
репы. VladislavS.(452 знак., 09.10.2020 09:19)
- По поводу volatile эти примеры ничего не доказывают, т.к.
неизвестна оптимизация и прочие условия. По поводу размерности -
вот брошу все и сам проверю. - VLLV(09.10.2020 09:26)
- Чего? Вы видели определение регистров процессора в заголовочных
фалах? Там стоит __IO aka volatile. И ни один компилятор не имеет
права выкинуть/оптимизировать доступ к этим регистрам на любом
уровне оптимизации. Мои примеры скомпилированы на максимальной
оптимизации в IAR. Ну это же азы эмбеддерства, даже удивительно,
что такие вещи объяснять надо. - VladislavS.(09.10.2020 10:13)
- Имею интересные впечатления от компилятора cosmic для stm8. Он
просто не обращает внимания на volatile. Это логично, учитывая, что
код генерит на манер "что вижу, то и пишу", хитрых оптимизаций нет.
Но на код "var += 2;" выдаёт "INC mem INC mem", например. Зануды
скажут "какой же это volatile!", а я скажу "ну и что, зато код
компактный получается"... - SciFi(09.10.2020 10:26)
- Наверно, Вы не знаете перевода volatile - "летучая", то она есть,
то ее нет. В вашем случае есть, в моем - нет ;) - VLLV(09.10.2020 10:22)
- Какой такой "этот код"? Прячете? Снова военная тайна? - SciFi(09.10.2020 09:05)
- Это от контроллера зависит. Есть контроллеры с FIFO на SPI, у них
есть разница в поведении при байтовом или пословном доступе к DR.
Конкретно в RM на чип надо смотреть. - VladislavS.(09.10.2020 07:49)
- На сколько сконфигурирован, столько и передаст - il-2(09.10.2020 07:36)
- Несколько интервью по личным вопросам. Продолжение_5. Продолжение_4
по ссылке. - teap0t(04.10.2020 15:09, ARM, ссылка, полностью)
- Музыкальное сопровождение действа. - Evgeny_CD(04.10.2020 16:52, ссылка)
- #15 Разбирая библиотеки обнаружил такой вид адресной арифметики.
Насколько такой метод подходит/не_подходит под понятие "говнокод"?
Имеем такой фрагмент (коменты мои): (UPD подправил слегка) teap0t(2324 знак., 04.10.2020 15:21 - 16:05)
- Основная статья расходов это зарплата. STMicroelectronics -
огромная корпорация, отличительной чертой которой является найм
дешевой рабочей силы из Туниса, Морокко, Сингапура, Индии. (Также
как Microchip или Microsoft забиты ныне под завязку индусами).
Сейчас понятие "дешевый программист" включает девочек бывших
студенток (в основном не белых). Во всем этом легко убедиться, если
почитать ответы на ST форуме, посмотреть авторов комитов и
загуглить юмора ради имя. Так что RxTx(429 знак., 10.10.2020 16:00)
- Соглашусь. Впервые в жизни познакомился с "индусским кодом", и, что
характерно, сразу его узнал. Комменты - прямо феерия. Большую часть
можно просто удалить. Но у библиотек ST есть три очень серьёзных
достоинства. 1. Они работают. 2. Они хорошо документированы
(HAL/LL). 3. Они работают с железом, документация на которое
написана не слишком понятно (индусский текст), и являются отличным
дополнением к такому описанию. Да и вообще, периферия очень сложная
(и порождающая teap0t(211 знак., 10.10.2020 17:50)
- В ST же должны одни месье и д’Артаньяны работать :-) - OlegPowerC(10.10.2020 17:18)
- А потом мне говорят , чего ты пишешь велосипед. - OlegPowerC(10.10.2020 16:41)
- Если некое средство пользуется спросом, то со временем оно
допиливается. Скажем, IAR тоже когда-то был "поделкой финских
студентов" :). - Kceния(10.10.2020 16:08)
- Тупо не было в хедере на проц значений из enum. Извратились по
месту как умели - Vit(05.10.2020 18:24)
- В CubeMX всюду одна и та же система: пользователь выражает свои
требования путем заполнения полей соответствующий заданию структуры
предназначенными для этой цели мнемониками. Типа анкету заполняет.
А затем отсылает ее на исполнение соответствующей функции
XXXXX_Init(эта структура). После чего функция инициализации либо
выполнит требования пользователя, либо откажется, вернув ошибку. Те
случаи, когда внутри кода этой функции используется "косвенная
адресация" относятся Kceния(397 знак., 04.10.2020 19:39)
- Не, это уже другой уровень абстракции при написании софта. Я пока
поближе к железу. - teap0t(04.10.2020 20:43)
- йцyкeн прав - это не ради повышения уровня абстракции сделано. Но в
отличие от него я знаю зачем :). Во-первых, для контроля
устанавливаемых параметров: здесь все поля структуры имеют
свои/разные типы, а допустимые для них параметры определены через
enum, благодаря чему чужой параметр или произвольное число из
головы туда не подставишь. Но главное - второе, это особенность
архитектуры ARM, когда большинство периферийных регистров не имеют
жесткой специализации (как, Kceния(788 знак., 05.10.2020 14:56)
- Да в том-то и глупость, что это не другой уровень абстракции. Это
тот же уровень, только регистры периферии заменены на поля
структуры. Зачем - непонятно. - йцyкeн(04.10.2020 21:30)
- Затем, что один и тот же код должен одинаково работать на всех STM
микроконтроллерах. Используя прямую запись в регистры построить
такой код не удастся. - RxTx(10.10.2020 15:30)
- Такого даже ПИКи себе не позволяют, чего уж ожидать от СТМов. - Kpoк(11.10.2020 22:48)
- - Ну хорошо, вы не помните, как попали в самолёт. Но как вы вышли
оттуда, вы должны помнить? - Помнить должен. Но не помню. - йцyкeн(10.10.2020 16:56)
- Они решают это типичным паттерном "вызов API-функции". Программист
заполняет ряд параметров. Так как их много это поля структуры. Этим
высказывается абстрактное намерение. Затем вызывается API функция
инициализации. Функция находится в файле отвечающем за обслуживание
конкретного семейства, поэтому извне она черный ящик,
абстрагирующий параметры(поля структуры) от регистров и
особенностей инициализации семейства. - RxTx(10.10.2020 16:07)
- Не думаю, что о совместимости кода для всех STM-контроллеров кто-то
заботится. Уж который раз CubeMX перелицовывают - старые проекты
давно уже не компилируются его новыми версиями (хотя всегда можно
достать старую - она по согласию заливается, если на новую версию
переходить отказываешься). Хуже другое - меняются не только сами
структуры (например, у STM32F4 в структуре больше полей, чем у
STM32F1), но и многочисленные списки enum, которые в эти поля
подставляются. Например, Kceния(123 знак., 10.10.2020 16:05)
- Очень понятно. Потом исчезнуть библиотеки и "Reference manuals", и
АГА! Сначала примеры по применению, потом библиотеки в исходниках,
потом в бинарниках, потом без описания аппаратуры. "Здравствуй,
бабушка!". - teap0t(04.10.2020 22:05)
- Разве не это позволяет драйверу периферии работать с несколькими
группами регистров, например UART ? - VLLV(04.10.2020 21:47)
- +1. Я это называю "пустая абстракция". Лишняя сущность. - Cкpипaч(04.10.2020 21:35)
- Это не абстракция. Это "двое из ларца" для бедных, т.е. тех, у кого
нет денег на оплату услуг настоящих двоих из ларца. - SciFi(04.10.2020 20:54)
- Конструкция типа EXTI_InitStruct->EXTI_Mode это обращение к
полю структуры с именем EXTI_Mode, на которую указывает
EXTI_InitStruct, всё это эквивалентно (*EXTI_InitStruct).EXTI_Mode ЫЫyкпy(187 знак., 04.10.2020 16:47)
Это "библиотечная" реализация, видимо индус сделал так,
чтобы не зависить от именования регистров Interrupt и Event в CMSIS
для разных микроконтроллеров. Хотя не совсем, я ошибся. Там смысл такой: evgeniy1294(903 знак., 04.10.2020 15:32 - 15:55)
- Этот enum в приведённом коде вообще не используется. - ЫЫyкпy(04.10.2020 15:38)
- stm32... я где-то накосячил, не пойму где... POV_(1098 знак., 07.10.2020 09:43,
, ARM, полностью)
- Были либы говенные I2C для F1xx.Пришлось попотеть конкретно пока
это говнище не заработало более-менее.От большого начальственного
ума внедрившего I2C в промоборудование. - PlainUser(08.10.2020 16:42)
- 1) Может быть проблема при MAX_SWITCH < 3. Если на платформе
NULL==0 то делать так: arhiv6(480 знак., 07.10.2020 11:53)
- Попробовать применить к структуре атрибут пакед? Чтобы везде была
упакована и размер был по месту? Nikolay_Po(36 знак., 07.10.2020 09:54)
- Отладчик в зубы и в бой. Современная техника позволяет отслеживать
значения переменных на лету. - SciFi(07.10.2020 09:47)
- Само исправилось.. Блядь, опять "Ленин в прошивку бомбу заложил" - POV_(07.10.2020 14:16,
)
- Может быть дело в инкрементной компиляции, что-то не
пересобиралось? Какого-то криминала в коде я не увидел. Есть
замечательная утилиты nm/readelf в gnu binutils, умеют выводить
список всех символов с их адресами. Аналогичные утилиты есть в
любом приличном компиляторе, помогают отличить косяки с размещением
в памяти от ошибок времени исполнения. - evgeniy1294(07.10.2020 14:27)
- это самое страшное, если само исправилось, то может и само
сломаться))) надо искать что это было, иначе горя можно хапнуть по
самое не балуйся )) - Aleksey_75(07.10.2020 14:26)
- Ну тут еще накладываются косяки i2c в стм32ф1хх... POV_(1435 знак., 07.10.2020 23:19,
)
- Да синей проблем не особо много - только нуженосцилограф/логический
анализатор , и все можно быстро понять - OlegPowerC(08.10.2020 08:01)
- Я использую программный I2C. Контролирую все подтверждения слэйвом
и ситуации, когда он притормаживает обмен. Иногда у меня на плате
на одной шине по 4-5 разных микрух. Всё работает нормально. Самое
главное, что полностью предсказуемо! И развести шину можно на любые
две ноги. - FDA(08.10.2020 07:36)
- "i2c в стм32 такой говённый или мои мозги" — ну ты уже
догадываешься, каков ответ на этот вопрос. i2c там не фонтан,
конечно, но косяки описаны в официальных доках. Нужно лишь
прочитать, осмыслить (обратите внимание на слово "осмыслить") и
применить на практике. И нет, раскидывание задержек по-пионерски в
разных местах таки не канает. - SciFi(08.10.2020 06:53)
- вот я тоже i2c не люблю никогда , одним словом "болгарин", поэтому
за i2c ничего говорить не буду! Да и по честному вешать флешку на
i2c это надо быть сам себе буратиной - Aleksey_75(07.10.2020 23:34)
- J-link ловит доступ к адресу памяти - VLLV(07.10.2020 11:06)