-
- У STM32H7 в SPI есть FIFO и доступ к нему через TXDR посредством 8,
16 или 32 битного доступа вызывает запись соответствующего
количества бит. Для любого вменяемого компилятора VladislavS.(333 знак., 28.10.2020 08:22)
- Для такой фичи вменяемый пейсатель хедеров замутил бы юнион. SciFi(227 знак., 28.10.2020 08:27)
- Мисра смотрит на тебя с негодованием. - s_h_e(28.10.2020 09:45)
- Скорее, индусские говнокодеры. Надо думать, ихний SVD формат это не умеет. - SciFi(28.10.2020 10:09)
- Мисра смотрит на тебя с негодованием. - s_h_e(28.10.2020 09:45)
- Для такой фичи вменяемый пейсатель хедеров замутил бы юнион. SciFi(227 знак., 28.10.2020 08:27)
- большая просьба ! опубликуйте плиз определение регистра TXDR! - Aleksey_75(26.10.2020 22:28)
- вот, например: SciFi(1990 знак., 26.10.2020 22:30, ссылка)
- в точку - Constantin24(28.10.2020 13:01)
- с какого проца определения ? - Aleksey_75(26.10.2020 22:35)
- предлагаю чуть меньше пить и курить, чуть больше читать :-) - SciFi(26.10.2020 22:36)
- вот, например: SciFi(1990 знак., 26.10.2020 22:30, ссылка)
- Не хватает типа 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)
- Это невозможно. Разве что в каком-нибудь экзотическом древнем г-не мамонта типа 8051. - SciFi(26.10.2020 14:48)
- Автор не смог написать "*((__IO uint16_t *)&SPIx->TXDR) =
TxData" ? - fk0(26.10.2020 14:09)
- Наверное заголовочные функции для разных компиляторов разные. - BlackMorda(26.10.2020 14:28)
- при чем часто встречается что в hal, что в ll для GNU "царский" указатель. - Constantin24(26.10.2020 14:30)
- а где взять SPIx->TXDR ??? - Aleksey_75(26.10.2020 14:10)
- Ну у него оно же где-то берётся! Иначе бы не компилировалось. - fk0(26.10.2020 14:30)
- ну эт само собой, может кто "познавший" ручками его прописал! Вот и
хочу знать заветное число, у себя бы проверил - Aleksey_75(26.10.2020 14:33)
- #define SPIx SPI1 - BlackMorda(26.10.2020 14:39)
- речь не об адресе интерфейса, а адресе регистра TXDR - Aleksey_75(26.10.2020 22:29)
- #define SPIx SPI1 - BlackMorda(26.10.2020 14:39)
- ну эт само собой, может кто "познавший" ручками его прописал! Вот и
хочу знать заветное число, у себя бы проверил - Aleksey_75(26.10.2020 14:33)
- Ну у него оно же где-то берётся! Иначе бы не компилировалось. - fk0(26.10.2020 14:30)
- Наверное заголовочные функции для разных компиляторов разные. - BlackMorda(26.10.2020 14:28)
- и на какой адрес ссылается spitxdr ??? я так понял при записи в
SPIx->DR реальная запись идет в TXbuf, а при чтении с
SPIx->DR с RXbuf! А вот адресацию я найти так и не смог! Aleksey_75(1 знак., 26.10.2020 13:57, картинка)
- Откуда сведения, что ТС работает с STM32? - SciFi(26.10.2020 14:13)
- подправил. действительно stm32h7 - Constantin24(26.10.2020 14:29)
- предположил! )))) - Aleksey_75(26.10.2020 14:15)
- Откуда сведения, что ТС работает с STM32? - SciFi(26.10.2020 14:13)
- Надо уметь воспринимать мир со всеми его противоречиями, и не искать смысла там, где его нет :-) Спроси у автора. Ставлю бутылку, что не услышишь вразумительного ответа :-) il-2(58 знак., 26.10.2020 13:56)
- скорее всего это связано с настройками SPI (количество байт), недавно эта тема косвенно затрагивалась - VLLV(26.10.2020 13:43)
- возможно, какая то ручная оптимизация кода. - ASDFS(26.10.2020 13:36)
- Или борьба с каким-нибудь предупреждением. - SciFi(26.10.2020 13:42)
- У STM32H7 в SPI есть FIFO и доступ к нему через TXDR посредством 8,
16 или 32 битного доступа вызывает запись соответствующего
количества бит. Для любого вменяемого компилятора VladislavS.(333 знак., 28.10.2020 08:22)