-
- Архитектура ARM позволяет к одной и той же области памяти (к
области ввода вывода периферии в частности) обращаться с разной
разрядностью. Для некоторых регистров особо оговариваются условия
разрядность доступа, а к некоторым (к большинству?) можно
обращаться как угодно. Всё зависит от реализации периферийного
модуля - как он реагирует на сигналы шины, к которой подключён. Так
что доступ возможен с любой разрядностью, а вот реакция периферии
на этот доступ зависит от Nikolay_Po(21 знак., 11.05.2023 23:49)
- Тут можно пример привести не из АРМ... POV(512 знак., 11.05.2023 23:55)
- не без этого. у 51 периферия регистры 8 бит, а по смыслу пару
регистров образует "единый регистр " и тут (бывает) важен порядок
чтения/записи. Но зачем искать приключения там где можно "тупо"
считать целиком регистр модифицировать значение и записать обратно
? накой ляд приводить тип данных/регистра разной размерности? - Zoro(12.05.2023 00:37)
- Способ, порядок, момент записи могут иметь значение для модуля периферии. А приведение типа к другому размеру как раз меняет способ доступа. Был (volatile uint16_t) - доступ выполнялся ассемблерной командой доступа к слову, с выравниванием 16 бит. Переопределили тип в (volatile uint8_t) - компилятор, для того же адреса, использует другую команду ассемблера - для доступа к байту, с байтовым выравниванием. - Nikolay_Po(12.05.2023 00:46)
- не без этого. у 51 периферия регистры 8 бит, а по смыслу пару
регистров образует "единый регистр " и тут (бывает) важен порядок
чтения/записи. Но зачем искать приключения там где можно "тупо"
считать целиком регистр модифицировать значение и записать обратно
? накой ляд приводить тип данных/регистра разной размерности? - Zoro(12.05.2023 00:37)
- Тут можно пример привести не из АРМ... POV(512 знак., 11.05.2023 23:55)
- Архитектура ARM позволяет к одной и той же области памяти (к
области ввода вывода периферии в частности) обращаться с разной
разрядностью. Для некоторых регистров особо оговариваются условия
разрядность доступа, а к некоторым (к большинству?) можно
обращаться как угодно. Всё зависит от реализации периферийного
модуля - как он реагирует на сигналы шины, к которой подключён. Так
что доступ возможен с любой разрядностью, а вот реакция периферии
на этот доступ зависит от Nikolay_Po(21 знак., 11.05.2023 23:49)