16+
Пятница
26 апреля
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

ARM-контроллеры

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
evgeniy1294  (22.03.2019 10:03, просмотров: 919)
В ядрах ARM есть такая фишка, как bitbanding: биты первого мегабайта SRAM, а также 1-го мегабайта памяти для каждого периферийного блока адресуются в виртуальные 32 мбайта адресного пространства. 
Пример для STM32:
  uint32_t offset = (uint32_t)&GPIOD->ODR - 0x40000000; 
  uint32_t bit = 12;
  uint32_t* addr = (uint32_t*)(0x42000000+(offset*32)+(bit*4));
Этот код позволяет читать и изменять 12 бит регистра GPIOD->ODR. Это быстрее, чем использование OR/AND операций, т.е. подходит для оптимизации критических частей кода
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX