Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32L15x + DMA + Bit Banding
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
ArtDenis
Случайно обнаружил, что для регистров DMA не работает bit banding (для другой периферии вроде всё нормально). Почему это может быть? Может я что-то не так настраиваю?
jcxz
Цитата(ArtDenis @ Aug 4 2015, 14:23) *
Случайно обнаружил, что для регистров DMA не работает bit banding (для другой периферии вроде всё нормально). Почему это может быть? Может я что-то не так настраиваю?

Вероятно они у Вас не в области памяти bitband.
ArtDenis
Нет. Путём научного тыка выяснилось, что когда обращаешься к регистрам DMA через bit banding, нужно обязательно читать или писать двойное слово (4 байта). Чтение/запись любого другого количества байт приводит HardFault. Т.е. для примера:

Код
// Включаем half transfer interrupt (CCR, DMA_CCR_HTIE)
*(volatile uint8_t*) 0x424c0108 = 1; // HardFault
*(volatile uint16_t*)0x424c0108 = 1; // HardFault
*(volatile uint32_t*)0x424c0108 = 1; // OK


Для регистров другой периферии такого не наблюдается.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.