Нет не ткнет , следить за выходом за границы массива вам самим. Причем DMA может работать не только с RAM но и с флеш, здесь естественно только чтение.
Нет не ткнет , следить за выходом за границы массива вам самим.
Хорошо, а по какому параметру DMA определяет, что надо переходит на начало массива, если сам массив ему нужен только как начало? Ведь его не интересует размер массива! Это параметр number of data? После него начинается новый цикл записи с начала буфера?
DMA ничего не знает о массивах, структурах и прочего это просто контроллер периферии . И начните читать .
К примеру Circular mode
После полного завершения тансфера - счетчик транзакций равен нулю, контроллер DMA перезагружает значения из регистров управления в свои внутренние регистры. И начинается заново.
Спрашивай , скоро придет осознание и все заколосится...
Вот примерный план для изучения DMA . 1 Помигать светодиодом 2 Помигать светодиодом с помощью таймера ( в прерывании) 3 Помигать светодиодом выплевывая массив из флеш в порт через DMA пинаемого таймером 4 Запустить ADC 5 Заполнить массив в RAM значениями ADC с помощью DMA .
Да, действительно, скорость измеряется в км/ч... Я постараюсь быть точнее в определениях... PS надо же как я сразу не заметил этой проблемы...
Добавлено after 45 minutes 25 seconds: Я тут решил покопаться в дебаггере, понять все. Из знакомых понятий только "копаться" - я же могильщик... Так вот обьясните пожалуйста, что такое я пометил двумя стрелками. С остальным, вроде как, разбираюсь. Распечатал вот кода асм.. И что подразумевает комментарий в первой строке?
Добавлено after 13 minutes 44 seconds: хотя нет. Ни хрена не понимаю я кроме команды "загрузить - LDR"
Карма: 38
Рейтинг сообщений: 621
Зарегистрирован: Пн апр 06, 2015 11:01:53 Сообщений: 3092 Откуда: москва, уфа
Рейтинг сообщения:1
левая стрелка - адрес команды в памяти, правая - опкод, грубо - представление команды в бинарном виде, как оно и есть там внутри процессора. Комментарий - что будет записано в регистр
khch, вы когда-нибудь пробовали 15-20 котят собрать в кучку? они же как ртуть - на вилку не наколешь! ваши попытки решить сразу взятую задачу напоминают именно этот процесс: вы хватаете одного котенка - пятеро убегают. собираете этих пятерых - первый уже удрал, а еще трое бегут сразу в 4 стороны... единственный способ справиться с этой задачей - ловить по одному и ФИКСИРОВАТЬ то есть подступать шаг за шагом, не метаясь от заголовочников HAL к ассемблеру, от регистров DMA к скорости SPI... добрые люди вам даже наметили программу изучения - либо следуйте ей, либо откажитесь от этой затеи. ведь иначе, кроме усталости, такая работа ничего не даст - разбегутся котятки...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
ARV Есть такое... с котятами. Но это я просто решил так отдохнуть. Поизучаю пока дебаггер - благо и там проблем не мало. Вот например: Могу ли я в режиме дебага подавать на вход с кнопки сигнал. Ну или прерывание там... Чуть отойду, потом снова на штурм!!!!!
Вот например: Могу ли я в режиме дебага подавать на вход с кнопки сигнал. Ну или прерывание там...
А в чем проблема? Если речь о ловле события - ставим бряк на обработку события , пускаем дебаггер в RUN . Одно но , периферия не тормозится дебаггером по дефолту. Да и многие флаги сбрасываются просто чтением в том числе и считыванием дебаггером...
Смотрите. Ведь тут же все написано понятно!!! Любой поймет!!! Кроме меня.
Вот к примеру. In input mode (MODE[1:0]=00): 00: Analog mode 01: Floating input (reset state) 10: Input with pull-up / pull-down 11: Reserved In output mode (MODE[1:0] > 00): 00: General purpose output push-pull 01: General purpose output Open-drain 10: Alternate function output Push-pull 11: Alternate function output Open-drain Вот что это все значит?? MODE[1:0]=00 MODE[1:0] > 00 В какой части регистра запихали условие равенства или сравнения!!!!
Вот не надо придираться к словам. Формально вы правы, но, например, в англоязычных источниках формулировка clock speed вполне обыденна и измеряется эта speed там в Герцах. Если сделать кальку в русский, что в хайтеке происходит на каждом шагу, то скорость в мегагерцах уже и не является чем-то сильно режущим глаз. Так, издержки перевода.
Мурик Поразительно!!! Вы кинули мне скан именно того места, откуда я скопировал свой вопрос. Просто я не смог вставить таблицу.... Так где это MODE [1:0] = 00 MODE [1:0] > 00 место??? Я не имею ввиду где это написано - это я сам вижу. Где должно выполняться это условие, чтобы абсолютно одинаковые комбинации нулей и единиц давали, тем не менее, разный метод работы пинов: на вход и на выход.
Сейчас этот форум просматривают: HardWareMan и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения