- Как лучше делать отладочный вывод текстов на Cortex-M0? Хочется что
бы это действие занимало не много времени, что бы в прерываниях
можно было использовать, н и вообще не сильно мешало. Из отладочных
штуковин у этого ядра есть SWD. SWO там вроде бы нет, ITM тоже нет.
Вроде бы у Сегера было какое-то решение, когда через SWD
читались/писались данные из какого-то буфера в ОЗУ и таким образом
выводилась информация. Но в Кейле я подобного не вижу, видимо метод
не стал стандартом. AlexBi(189 знак., 18.07.2022 21:45, ARM, полностью)
- Вопрос знатокам АРМ-ов. Бapбoc(342 знак., 04.08.2022 15:21, ARM, полностью)
- Расковырял это вот это всё. Основной функционал шевелится, осталось
прикрутить рюшечки и помпончики. Но. Какая падла писала доки? В
pdf-нике изначальном, где описана серия и пин дефинишен, нумерация
периферийных модулей начинается с нуля, а в основном документе с
единицы. Моя-то, как тот сын программиста из анекдота начал считать
"ноль, один, два...". А оно как для простых смертных. Поубивал бы. - Бapбoc(20.08.2022 13:04)
- Кто так пишет? Шлите им лучи поноса. Туда идёт адрес регистра
обычно. Например, (int)&USART1->DR. Upd: я почти угадал,
0x40004404 == (int)&USART2->DR. - SciFi(04.08.2022 15:33 - 15:43)
- Гы. Задыфало. Мне-то нужен был USART3. Никогда не подумал бы, что
стану радоваться тому, что поделие отвечает сообщением об ошибке
"недопустимые адреса". - Бapбoc(04.08.2022 18:15)
- как я рад, что минул всё это (благодаря Куб эМикс и ф-циям Хал).
:-))) - Лaгyнoв(04.08.2022 19:20)
- По странному совпадению сегодня тыкал уарт и дма. Вот полная
конфигурация дма во всей её невообразимой сложности: SciFi(420 знак., 04.08.2022 18:43)
- А вокруг этого сколько всего? Мне прислали кучку файлов,
оформленных в проект, выдраных из другого проекта. Когда поиск по
файлам запускаешь, говорит поиск произведён по 111 файлам. Лучше бы
начал с нуля. Грёбаное импортозамещение, грёбаный Гигадивайс,
грёбаный СТМ и CMSIS. Верните мне ДСПик. А не то, пропью долото. - Бapбoc(04.08.2022 19:02)
- а что вас смущает кол-во файлов в проекте (многовато конечно) ???
удобно когда каждый модуль в своем файле, удобно переносить из
проекта в проект, а если еще слой bsp по уму сделан то вообще кайф! Aleksey_75(90 знак., 04.08.2022 19:16)
- Меня всё не смущает. Меня кое-что выводит из равновесия. Моя
программулька в МПЛАБ собирается за несколько секунд. А пока
собирается этот проект, я успеваю Сахару глянуть и пару сухариков
сжевать. Зачем так сложно? Впрочем, деваться некуда. Вот пивка
попил, вроде полегчало. - Бapбoc(04.08.2022 19:26)
- Нынче мода такая - чем больше обёрток у конфетки, тем больше кайфа
у потребителя. Причём обёртки придумываются всё более замысловатые,
вплоть до аналогов сейфов с кодовыми замками. Это чтобы кайфа было
ещё больше. До эрекции - argus98(04.08.2022 22:16)
- Обязателен редактор с удобной навигацией по коду. Как минимум не
хуже, чем VS Code. - SciFi(04.08.2022 19:39)
- Notepad++ пойдёт? Или я просто не знаю, что есть "навигация по
коду"? - Бapбoc(04.08.2022 19:43)
- Не пойдёт. Срочно всё бросать и осваивать VS Code. Вы просто не
знаете, чего себя лишаете. - SciFi(04.08.2022 19:46)
- Refactoring C кода оно поддерживает? - RxTx(04.08.2022 20:53)
- Переименование функций, переменных, типов, полей. Может, ещё что-то
есть, но что ещё можно рефакторить в сях? - SciFi(04.08.2022 22:02)
- Что вспомнилось: двигать функции и переменные из файла в файл.
Делать Extract function (из кода в функцию с автоматическим
созданием параметров) и наоборот inline function в код в место
вызова, extract variable, constant, macro, parameter (и наоборот).
Преобразовывать switch в if между собой. Менять логические условия
в if. У функции Change Signature (изменять порядок и количество
параметров, втч автоматически в местах вызова), split in the
declaration and assignment (и RxTx(82 знак., 04.08.2022 23:29)
- хм, может я что-то не так понимаю, но рефакторинг кода это совсем
не переименование функций и данных... выражение "Refactoring C кода
оно поддерживает?" меня ввело в ступор, типа отдельная кнопочка
"Refactoring" - Aleksey_75(04.08.2022 22:18)
- ОК. Спасибо*100. По совокупности советов. - Бapбoc(04.08.2022 19:51)
- Я так предполагаю через DMA можно копирование сделать. Регистры ж
промаплены на адресное пространство. Чего бы туда адрес ОЗУ не
записать и инкремент? - POV(04.08.2022 15:46)
- Поэтому и затупил. Лучи слать не могу,
Конфуций не велит получил матерьял от руководства. Спасибо. - Бapбoc(04.08.2022 15:41)
- Прописываются адреса от куда брать данные и куды класть эти данные.
Источником и приемником могут в общем случае что угодно, и цифры
соответственно адрес периферии, а точней адрес регистра периферии
например приемный буфер UART. - PeterD(04.08.2022 15:29)
- Нужна помощь зала. Третий день сижу. Имеется AT32F421 в QFN32 и с
кварцем 24 МГц. Пытаюсь запустить МК на штатной верхней частоте 120
МГц (периферийные шины - 60 МГц, хотя максимум и там 120). При
включении тактирования на GPIO уходит в HardFault. Если после
инициализации домена осциллятора поставить пустой цикл, то вертится
в нем и внешне все ОК. Если редуцировать частоты шин до AHB=60MHz,
APB1/2=60MHz/8, то все работает. НО!!! Можно на лету переключить
редукцию шин my504(191 знак., 10.08.2022 17:08, ARM, картинка, полностью)
- Кто-нибудь разбирался, как у GD32 с сенсорными кнопками? С
некоторыми понятно, есть специальный блок - TSI. А если TSI в
даташите не упоминается? - AlexG(07.08.2022 07:42, ARM)
- Прошу помощи у знатоков куба и подобного от СТ. Переношу проект
чужой с stm32f072 на gd32f350, из используемого только уарт и,
самое неприятное, USB. Все на STM32F0xx_StdPeriph_Driver и
STM32_USB_Device_Driver /STM32_USB_Device_Library, которые есть в
самом проекте и он собирается иаром. Andreas(286 знак., 05.08.2022 15:10, ARM, полностью)m16
- Раздразнили, сцуко... Ну и разминка, чтобы не заплесневеть ;) Гyдвин(2090 знак., 22.10.2017 22:32 - 22:35, ARM, картинка, полностью)
- Маладца. Это по нашему. Барыгам бой! - Codavr(02.08.2022 07:42)
- Это было прекрасно! - apollo(28.07.2022 15:39, )
- Респект!!! - vesago(25.10.2017 08:47)
- Олег как всегда красава. я по другому с ниссановскими балалками поступил. Aleksey_75(123 знак., 24.10.2017 22:30)
- Реально крут! - De_User(24.10.2017 19:58)
- Маладца! - Shatun_(24.10.2017 19:57)
- Вопрос: а магнитолка в системе не привязана? Как понял, серийник-то сменился, признает ли авто магнитолку своей? - ROBINZONE(24.10.2017 12:11)
- забыли сказать "на все про все 15 минут" - Argon(23.10.2017 13:05)
- У кого ниссаны - "ховайся в жыто!" ;) - VLLV(23.10.2017 13:02)
- Там калибровка могла быть рядом с пином записана. Потом вроде работать будет, только как-то плохо. - fk0(23.10.2017 12:51)
- Калибровка чего? - Hives(23.10.2017 13:54, )
- Напряжения/тока, частоты. Сейчас кучи подстроечных резисторов нет, но не значит, что ничего на производстве не подстраивали. Конечно в магнитоле особо нечего крутить, но мало ли. Типовой пример - чувствительность приемника сильно просядет. А так и fk0(22 знак., 23.10.2017 23:09)
- Не кури это больше. - Hives(24.10.2017 10:49, )
- Суровая правда, что многие образцы связной техники имеют калибровки в eeprom. Бытовой техники не так сильно касается, но не так чтоб уж совсем не было. Кварц тот же в синтезаторе гетеродина имеет погрешность и она учитывается, контура пч fk0(74 знак., 25.10.2017 09:45)
- Список бедблоков NAND, как это ни странно, храниться в NAND. - misyachniy(25.10.2017 13:50)
- Ты там в схемотехнике 70-х застрял? НЕ КУРИ этого больше. - Hives(25.10.2017 13:46, )
- Из тех приборов, в разработке которых принимал участие у части натурально были важные калибровки (правда больше по части механики) в eeprom. Если варварски так зашить - работать перестанет. Перенастроиыь конечно можно, но надо знать как - для fk0(34 знак., 25.10.2017 23:19)
- Не знаю уж что там в настройках прописано, но доказано практикой, что многие магнитолы с прошивками таких же аппаратов работают плохо, либо не работают совсем. Не все, но есть несколько моделей. - =AlexD=(25.10.2017 14:04)
- +1. Кроме того, ТС стартер публично гордится, что устроил демпинг, отобрал у кого-то кусок хлеба. Не надо после этого удивляться, если какой-нибудь ардуинщик радостно сообщит, что он сделал работу за три рубля, а жадные ембеддеры хотели содрать Экспериментатор(15 знак., 25.10.2017 14:36, )
- Так же чужие служебные области флеши в телефонах заливают только в крайнекирпичном случае. И подобных примеров несчесть. А товарисч похоже сам застрял во временах подстроечных конденсаторов - 1111111(25.10.2017 14:33)
- Как ни странно, зачастую подстроечный конденсатор или резистор намного удобнее в работе, чем две кнопки + и -. Давеча настраивал ГБО 4поколения в автомобиле, величина множителя в конкретной точке графика, при которой машина прет наиболее резво, Yurasvs(282 знак., 26.10.2017 20:27)
- Чтобы было удобно разраб хоть немного должен шарить в эргономике. А еще лучше - самого пинками загнать экспуатировать поделие недельку-другую. На почте вот уже десятый год наблюдаю как операторы считают на калькуляторе объем посылки в 1111111(135 знак., 26.10.2017 21:27)
- ыы, у нас на почте чтобы выдать посылку, работнику надо открыть
одно окно мышкой, ткнуть считывателем в штрихкод посылки, потом
закрыть окно, открыть другое, тоже несколько раз ткнуть мышкой в
разных местах (хз что там, не видел), потом считать штрихкод
удостоверения. С учетом скорости работы с мышкой почтовиков, и
древности компьютеров, а также кол-ва посылок - это писец какой-то. - AVF(02.08.2022 06:34)
- Офигеть! - Andreas(23.10.2017 08:39)
- фшоке... - Крок(22.10.2017 23:24)
- круто - scorpion(22.10.2017 23:21)
- Мастер, что сказать. - General(22.10.2017 22:56)
- РЕШЕНО Куда делась скорость?
Промахи кэша? Кэш ни при чём. Dingo(1012 знак., 24.11.2017 10:40 - 25.11.2017 12:39, ARM, полностью)
- В куске кода 5 функций. Для начала нужно разобраться, куда именно уходит ресурс, иначе разговор ни о чем. - VLLV(25.11.2017 09:40)
- Могу посоветовать сделать переменные 32-разрядные - uint32_t. - Bill(24.11.2017 12:23)
- Во-первых, удобнее не SysTick->VAL, а DWT->CYCCNT. Во-вторых, что есть func(&struct1)? Может быть, там биткоины майнятся? В-третьих, не надо ничего инлайнить, нужно включить оптимизацию по сумме всех исходников. В gcc это называется link time SciFi(45 знак., 24.11.2017 10:45)
- 1)В чём разница, если таймер запущен? В доках от STM не вижу, только в хидере нашёл. В каком документе читать? 2)Нет, работа с периферией, подключенной как внешняя PSRAM. Через вставку дрыгноги замерял, меньше 1/8 периода съедаю. 3) Пошёл читать и Dingo(13 знак., 24.11.2017 11:03)
- Кстати, да, надо проверить регистр FLASH->ACR на предмет включения ускорителей. Причём в первой ревизии 407 был глюк, из-за которого нужно выключать PRFTEN, ЕМНИП. - SciFi(24.11.2017 11:12)
- STM (почти) не перепечатывает доки от Арма. См. тут, например --> - SciFi(24.11.2017 11:08, ссылка)
- Оно логично, но почему поиском ничего не найти? Хотя бы в карте регистров могли упомянуть?.. Да и по вашей ссылке понятно только, что оно там есть, не более. #3) не даёт эффекта. Dingo(172 знак., 24.11.2017 11:26)
- Кстати, учу кликать строчки в оглавлении, дорого -->. На самом деле они хитрые жуки, конечно. Пишут "DWT registers are described in the ARM®v7M Architecture Reference Manual". Потом пишут "This document is only available in a PDF version to SciFi(94 знак., 24.11.2017 11:33 - 11:39, ссылка, ссылка)
- Вы - не вы, если не подколите. Нашёл уже. Оказывается, ещё и от ARM-а документы надо грызть, не только 4(DS, PM, RM, Errata) от изготовителя. (Вспоминается AVR8 с одним как сказка.) Dingo(231 знак., 24.11.2017 11:58)
- Выходит, включено. Кстати, куда торопимся? Может быть, оно и так всё успеет? Или уже подтверждено, что не успеет? - SciFi(24.11.2017 12:37)
- Код. Но, видимо, копать дальше буду понедельник. Dingo(2365 знак., 24.11.2017 13:28 - 13:33)
- Не успеет. Надо за 500 мксек по внешнему прерыванию записать во "внешнюю память" 9 байт по 8-ми битной шине, отправить пакет из 28 байт, принять при наличии такой же по размерам. Ещё и держать это всё в буфере, пока своей очереди не дождётся. Dingo(304 знак., 24.11.2017 13:10 - 13:22)
- ОЗУ - сомневаюсь, что будет выгода, да и делать это надо умеючи (не забыть ремап на 0, исполнение с адресов 0x20000000 медленное). Ну и вот эти операции "по 8-битной шине" (небось, и скорость там 1 МГц) надо бы делать в фоне, через DMA что ли, SciFi(54 знак., 24.11.2017 13:27)
- пересылки можно зацепить на DMA, причем часто в STM32 такое можно сделать через "ивенты", а не вручную из обработчика прерывания - Vit(24.11.2017 13:26)
- Видел в документации, но не разбирался. Генерятся тогда же, когда и прерывания. Можете обзорно человеческим языком? - Dingo(24.11.2017 13:38)
- ивенты, триггеры и запросы прерывания из одной тарелки. Точно не помню, но, КМК, ивентов может быть больше, чем триггеров, а триггеров больше, чем запросов. генерятся ивенты (перепады), они могут запускать чегой-то, триггеры срабатывают либо тогда Vit(119 знак., 24.11.2017 13:44)
- Поиском найти, в гугле, например. Доки от Арма, скажем так, специфические, к ним ещё привыкать надо. Ну а PRFTEN - это и есть "ART Accelerator prefetch queue instruction is not supported", вот так криво они выразились. Я на практике реально ловил SciFi(49 знак., 24.11.2017 11:29)
- Есть ли в Кейле такая кнопка, что бы сделала билд, как F7, записала
во флеш, как F8, и запустила как CTRL_F5 - F5? Или можно такого
добиться выбирая галочки? Сейчас у меня все это отдельные действия,
не удобно. AlexBi(189 знак., 22.07.2022 18:40, ARM, полностью)
- Други, поделитест пожалуйста .bat файлом для заливки прошивки в
процессор с помощью J-Link. - Moлoдoй кoллeгa(18.07.2022 20:06, ARM, полностью)
- Случайно заметил, что аппаратные прерывания у АРМа вызываются с
некоторой задержкой. Т.е. у меня есть таймер, тактируется от
основного генератора, у него флаг переполнения, по которому
вызывается прерывание и этот же флаг опрашивается в цикле. Я
полагал что в таком случае в цикле я увидеть этот флаг не смогу,
т.к. прерывание его перехватит раньше, а оказалось что нет, т.е.
между его появлением и прекращением выполнения основного цикла есть
некоторое время. AlexBi(47 знак., 18.07.2022 18:51, ARM, полностью)
- KEIL: Какой файл заливает Keil по команде Download(F8)? Настроил
keil так, что после сборки запускается батник и модифицирует файл,
указанный на вкладке Output. Но в самом микроконтроллере
модифицированные данные отсутствуют. - Nikolaev_Aleksey(15.07.2022 12:26, ARM, полностью)
- Доброго всем, помню обсуждали здесь startup code без ассемблера.
Что-то найти не могу. Может кто кинет ссылку? - Constantin24(18.07.2022 09:55, ARM, полностью)m16
- Заметил интересный момент при изучении ассортимента китайских МК: у
тайваньских микроконтроллеров MM32F Performance Line ядро не
какой-нибудь типичный Cortex, а Arm China STAR-MC1. AlexG(9 знак., 16.07.2022 18:11, ARM, ссылка)
- AT32F403A: StandBy и WAKEUP pin. На данном МК перешел в Standby.
(см. код ниже) По документу при подаче "rising edge on the WKUP
pin", он должен сброситься. По факту сброс происходит всегда, пока
на wakeup есть высокий уровень. Где я ошибся? Nikolaev_Aleksey(821 знак., 13.07.2022 15:05, ARM, полностью)
- Можно ли какими-то сравнительно простыми способами посмотреть что
Кейл для АРМ сделал из моего исходника? Сейчас я могу загрузить
результат в устройство, запустить отладчик и смотреть что во что
превратилось. В идеале хотелось бы что бы компилятор сгенерил
листинг с разбивкой по исходнику. - AlexBi(11.07.2022 10:28, ARM, полностью)