Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-авг-20 20:13

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: ошибка в библиотеке MDR32F9Qx_dma
СообщениеДобавлено: 2016-авг-15 10:10 
Не в сети

Зарегистрирован: 2013-ноя-07 19:07
Сообщения: 30
в MDR32F9Qx_dma.c у нас находится следующее:
DMA_CtrlDataTypeDef DMA_ControlTable[DMA_Channels_Number * (1 + DMA_AlternateData)] __attribute__((aligned(DATA_ALIGN)));

если DMA_Channels_Number = 18
и DMA_AlternateData = 1
то DATA_ALIGN будет равно 1024,
а выделено под структуры будет 16*18*2 = 576 байт
далее в памяти компилятор разместит всякие переменные и прочее.
таким образом, при доступе к 17-му альтернативному элементу управляющей таблицы DMA
по адресу DATA_ALIGN/2 + 16*17 = 784 будут повреждены какие-либо данные.

я думаю, надо сделать так:
DMA_CtrlDataTypeDef DMA_ControlTable[DATA_ALIGN / 2 * (1 + DMA_AlternateData)] __attribute__((aligned(DATA_ALIGN)));

всем спасибо за внимание.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB