Например TDA7294

Форум РадиоКот • Просмотр темы - Массив и DMA
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 27, 2025 07:44:14

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Массив и DMA
СообщениеДобавлено: Вт июн 25, 2019 08:04:27 
Открыл глаза

Зарегистрирован: Вт ноя 03, 2009 07:44:57
Сообщений: 62
Рейтинг сообщения: 0
Здравствуйте, такой вопрос, Есть массив uint8_t А[8][16] и два масссива uint8_t B[16] C[16] можноли как то настроить DMA memory to memory чтобы в массив В заносились данные с массива А построчно сначала А[0][ ] потом А[1][ ] а в С с массива А начиная с А[4]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Массив и DMA
СообщениеДобавлено: Вт июн 25, 2019 18:37:51 
Прорезались зубы
Аватар пользователя

Карма: 5
Рейтинг сообщений: 30
Зарегистрирован: Пн июл 04, 2016 16:51:22
Сообщений: 234
Откуда: Россия, Омск
Рейтинг сообщения: 0
Такой код сработал бы в STM32F4/F7 и аналогичных.
Для F1/F0/F3 придётся подобрать соответствующие названия регистров.

Код:
DMAx_StreamY->M0AR = (uint32_t)&(A[0][0]);
DMAx_StreamY->PAR = (uint32_t)&(B[0]);
DMAx_StreamY->NDTR = 16;


Либо я неправильно понял Ваше пожелание.
Если нужно сделать так:
A[0][0] -> B[0]
A[0][1] -> B[1]
A[0][2] -> B[2]
<...>
То всё сработает.
Если так:
A[0][0] -> B[0]
A[1][0] -> B[1]
A[2][0] -> B[2]
То не сработает. DMA проходит по памяти побайтно и не будет прыгать через массив.

И, да, запрягать DMA для копирования 16 байт - стрелять по воробьям из пушки. Проще сделать самим процессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Массив и DMA
СообщениеДобавлено: Ср июн 26, 2019 07:38:31 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1661
Рейтинг сообщения: 0
Здравствуйте, такой вопрос, Есть массив uint8_t А[8][16] и два масссива uint8_t B[16] C[16] можноли как то настроить DMA memory to memory чтобы в массив В заносились данные с массива А построчно сначала А[0][ ] потом А[1][ ] а в С с массива А начиная с А[4]

Да, возможно. Например EDMA3 в OMAP-L1xx-процессорах умеет выполнять 3-х-мерные передачи и может как угодно переставлять строки/столбцы массивов при пересылке.

Добавлено after 46 seconds:
То не сработает. DMA проходит по памяти побайтно и не будет прыгать через массив.

Не говорите за все процессоры - вы всех не знаете. 8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Массив и DMA
СообщениеДобавлено: Ср июн 26, 2019 08:36:37 
Электрический кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 135
Зарегистрирован: Сб мар 09, 2013 11:29:22
Сообщений: 1029
Откуда: 40RUS, Жуков
Рейтинг сообщения: 0
jcxz

Такой код сработал бы в STM32F4/F7 и аналогичных.
Для F1/F0/F3 придётся подобрать соответствующие названия регистров.

_________________
IVL ex UA6PJ


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Массив и DMA
СообщениеДобавлено: Ср июн 26, 2019 08:51:14 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1661
Рейтинг сообщения: 0
jcxz

И...?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Массив и DMA
СообщениеДобавлено: Ср июн 26, 2019 09:36:07 
Открыл глаза

Зарегистрирован: Вт ноя 03, 2009 07:44:57
Сообщений: 62
Рейтинг сообщения: 0
Спасибо за ответы, да мне нужно было бы
A[0][0] -> B[0]
A[1][0] -> B[1]
A[2][0] -> B[2]

проц STM32F1,
придется делать в цикле


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Массив и DMA
СообщениеДобавлено: Пт июн 28, 2019 17:24:14 
Прорезались зубы
Аватар пользователя

Карма: 5
Рейтинг сообщений: 30
Зарегистрирован: Пн июл 04, 2016 16:51:22
Сообщений: 234
Откуда: Россия, Омск
Рейтинг сообщения: 0
Не говорите за все процессоры - вы всех не знаете. 8)

Согласен, всех не знаю :facepalm:
Но предположил (и неожиданно, угадал) что это STM32Fx
Про F1 подумывал.
Как-никак они больше распространены среди любителей (да и на прилавках магазинов тоже).


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

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


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y