-
- Оно все равно написано из разряда вон плохо! Eddy_Em(418 знак., 11.05.2023 17:08)
- SPL - лучшая библиотека от ST (imho). А метапрограммирование на
шаблонах тут Владислав_С проповедует/просвещает. Но дубы крепки.
:-) - Costic(11.05.2023 19:30)
- А я - балерина ☺ Eddy_Em(648 знак., 11.05.2023 19:34, ссылка)
- О! Чувак, ты крут! С регистрами работать, ты, пожалуй, умеешь! Заценил! Поднять USB на предельной скорости bare metal - это довольно серьёзно! - Nikolay_Po(11.05.2023 22:41)
- VCP+MSC на SPL (на базе примеров от ST) писал года 3 назад. Накопителем подключил AT45 со своей прослойкой накопителя, и Fat-FS. Чтение/запись - 700/500 кбайт/с. - POV(11.05.2023 19:38)
- А я - балерина ☺ Eddy_Em(648 знак., 11.05.2023 19:34, ссылка)
- Нет там оберток. при flto инлайнит gcc нещадно. Внутри обертки
обращение к одному регистру - значит только это обращение в код и
будет помещено. - POV(11.05.2023 17:10)
- Не стоит забывать еще и об отсутствии культуры написания кода: я
неоднократно встречал записи вида Eddy_Em(1115 знак., 11.05.2023 17:18)
- Оно иногда бывает важно, чтобы именно так. Сначала один бит взводим, потом второй сбрасываем и только потом - взводим третий бит. Конкретно у STM такое не припоминаю, но вообще в однокристаллках - запросто встречается, типо первый бит включает периферийный модуль, второй - сбрасывает установленный флаг прерывания, третий - разрешает прерывания. При попытке сделать одной командой - можно неожиданно улететь в обработчик прерывания с неправильным контекстом. - LightElf(11.05.2023 20:10)
- Насчёт траты лишних тактов: а как ты сделаешь модификацию избранных
бит регистра, не меняя неизвестные остальные биты? Такое часто
встречается. Я оптимизирую так там, где можно записать регистр
целиком за раз, когда нет неизвестных бит, которые надо сохранить -
пишу сразу. Но в универсальном коде, каким является сабж, ты не
имеешь права менять других бит, так как не ты их устанавливал и
предысторией не владеешь. Поэтому и сброс/установка через
маскирование. - Nikolay_Po(11.05.2023 18:38)
- В большинстве случаев инициализации периферии вполне можно и даже желательно писать весь регистр, чтобы получить гарантированное состояние. Но в примерах и библиотеках очень часто по одной функции ставят и вместо одной прямой записи несколько модификаций. А предысторией не владеешь обычно во всяких регистрах включения тактирования, питания...., их не так много. - Andreas(11.05.2023 19:19)
- Для этого я просто считаю содержимое, применю битовую маску и верну взад. Eddy_Em(146 знак., 11.05.2023 18:52)
- Не стоит забывать еще и об отсутствии культуры написания кода: я
неоднократно встречал записи вида Eddy_Em(1115 знак., 11.05.2023 17:18)
- SPL - лучшая библиотека от ST (imho). А метапрограммирование на
шаблонах тут Владислав_С проповедует/просвещает. Но дубы крепки.
:-) - Costic(11.05.2023 19:30)
- Оно все равно написано из разряда вон плохо! Eddy_Em(418 знак., 11.05.2023 17:08)