- мож кто поделится рабочим примером использования usb c STM32f10xx? при помощи библиотек, желательно на ИАРе - Constantin24(27.11.2013 13:01, ARM, полностью)
- keil 4.53 vs keil 4.72a Mikla(1041 знак., 27.11.2013 21:29, ARM, полностью)VL
- stm32f103 + SD в MCI режиме + USBMSD. Какова максимальная/средняя скорость записи? больше 66кб/сек выжать не получается :( - RED_DRAGON(27.11.2013 13:12, ARM, полностью)
- STM32F429IIT6 в QFP176 загружается но не выполняет UraGun(359 знак., 26.11.2013 18:52, ARM, полностью)
- Под впечатлением фейла Тоеты захотелось спросить: какие доступные мелкие оськи делают контроль стеков, контроль взаимной залочки задач и прочие ненужные вещи? - ASDFS(26.11.2013 15:22, ARM, полностью)
- Вот Микриум заявляет о какой то сертификации на ответственные применения. Кто нить разбирался что эта сертификация означает кроме соответствия стиля написания всяким МИСРАм? - ASDFS(26.11.2013 19:53)
- это делают не оськи а MMU. мы например во FreeRTOS для ARMа включаем - для прикладных программистов, конечно гемор, когда они не могут брать все, что захотят без спроса, но устойчивость работы и скорость отладки повышается - ыыыыыыы(26.11.2013 16:04,
)
- Я имел в виду сервис по мониторингу глубины заюзанного стека. Понятно что без аппаратной поддержки пресекать злостный выход за пределы стека невозможно. - ASDFS(26.11.2013 19:09)
- это про память, ну а по поводу "залочки" : вращение приоритетов только в uC/OS наверно отсутствует (да и то не уверен) это называется priority inheretance или priority rotation - ыыыыыыы(26.11.2013 16:14,
)
- Отсутствует и не только у uCOS. Потому как накладно это, приоритеты наследовать и решить можно другими путями. - Apтём(26.11.2013 16:36 - 16:38)
- в простейшем случае (<32 приоритетов) это одно слово в контексте и проверка ждущих задач в переключателе - очень небольшой оверхед - ыыыыыыы(26.11.2013 17:31,
)
- Мне как-то кажется, простейшие случаи -- это чего-то вроде protothreads, что далеко от реальной жизни. Это надо перетряхнуть очередь ожидающих (их там 100500). Кому-то поднять приоритет (перятряхнуть ещё дцать очередей после чего, где найденный fk0(47 знак., 26.11.2013 18:04)
- ну так для этого и ограничивают <32, чтобы путем логических операций and/or и т.п. эта процедура имела минимальное время. protothread я увы не пользовал, но учитывая, что это пришло из "больших" компьютеров предполагаю, что там сложнее - ыыыыыыы(26.11.2013 18:13,
)
- Причём тут ассемблер. Очередь -- это скорей binary heap уже отсортированный по приоритету. И нужное где-то в середине, поиск за O(N) (или ещё как-то по критерию адреса упорядочивать дополнительно -- затраты на каждый чих в два-три раза выше, fk0(1247 знак., 26.11.2013 18:39)
- Чего-то переусложняете вы. Наследование приоритетов как раз очень просто реализовывается и время выполнения там фиксированное. Оверхед - один-два байта в структуре мутекса (исходный приоритет текущего владельца мутекса и нынешний приоритет). LightElf(132 знак., 27.11.2013 09:18)
- выступлю за противный :) лагерь: если в нашем случае (с задачами 1,2,3) во время ожидания задачей 3 семафора, произошло событие и запустились задачи 4,5 (приоритеты 5>4>3) и 5 задача полезла за тем же семафором, после завершения задачи 1 (уже с 5 ыыыыыыы(332 знак., 27.11.2013 15:54,
)
- не-не-не, после освобождения семафора его старому владельцу просто возвращается свой приоретет. aoreh(298 знак., 27.11.2013 16:01)
- ну так вопрос в том, когда 5 закончилась, а 3 продолжает ждать, какой приоритет у 1, держащий 3? и вот зачем нужна была 4. если оставить 5 приоритет, то нарушение приоритетов - 4 задача ждет 3, если вернуть 1, то "залочка" с 3,2 - ну как-то так - ыыыыыыы(27.11.2013 16:44,
)
- Долго тут обсуждать, работать нужно. Если вкратце, то проблема наследования известна и исследована и есть общее мнение, что наследование ресурсоёмко. Есть полно публикаций на тему. Поэтому есть альтернативные способы вроде вроде priority ceiling. fk0(93 знак., 27.11.2013 16:27)
- в ecos (с которой я имел больший опыт) хорошо объясняется как делать жесткий реалтайм с комфортом - смысл в том, что для разных классов задач (в одном приложении) доступны разные API сервисов синхронизации: ISR имеет жесткие ограничения, DSR имеет ыыыыыыы(627 знак., 26.11.2013 19:13,
)
- а если к этому добавить что может быть целая каша из всего этого, то случай может оказаться совсем не простейшим... - aoreh(26.11.2013 18:07)
- Как-то вы упрощаете...Или нет? Не представил короче... - Apтём(26.11.2013 17:51)
- От залочки оно не поможет. - fk0(26.11.2013 16:38)
- обрисуйте мне схему залочки, плиз. может мы о разном? - ыыыыыыы(26.11.2013 17:27,
)
- если речь об инверсии, то, как пример... aoreh(549 знак., 26.11.2013 17:38)
- Это не залочка. Залочка (взаимоблокировка, deadlock) от приоритетов вообще не зависит, это когда A ждёт B, а B ждёт A. Можно ещё ввести в дело C, D... но сути уже не меняет. Возникает обычно при программировании из головы, без этапа fk0(70 знак., 26.11.2013 17:59, ссылка)
- ну так посмотрите, что означает термин, три названия которого тут приведены: для этого примера это значит, что задача 1 получает приоритет равный задаче 3 пока не отдаст семафор - ыыыыыыы(26.11.2013 17:47,
)
- А вот как вы выразились "залочка" - это когда задача 1 захватила ресурс, в этот меомент вытесняется задачей 2, которая хватает другой ресурс и входит в ожидание ресурса блокированного 1-й, в этот момент управление возвращается 1-й задаче и она aoreh(143 знак., 26.11.2013 17:56)
- еще на 0 делить можно, ну или с железкой писать в управляющие регистры случайные числа (хотя ММE от этого помагает) - есть таймауты, если думать лень/ну или слишком сложно и нужно патчить а не думать, ну а вообще есть обычно некоторый датафлоу из ыыыыыыы(79 знак., 26.11.2013 18:07,
)
- На ноль делить НУЖНО, если числа не целочисленные. А если у вас не делится на ноль -- нужно сжечь компилятор и его авторов. fk0(320 знак., 26.11.2013 18:22)
- уважаемый, вы суть проблемы понимаете или нет? если вы разрабатываете свой новый девайс с 2-3-я задачами, то все отлично, если вам необходимо, н-р, поддерживать чей-то код с 25-30 потоками, который +- отлажен и много лет работает, то как минимум aoreh(339 знак., 26.11.2013 18:13)
- Нет, термин значит, что задача с высоким приоритетом (3) ждет завершения задачи с более низким (2), хотя она даже и не блокирует ресурс нужный 3 - налицо поднятие приоритета задачи 2 выше задачи 3. Инверсия - общеупотребительный термин - aoreh(26.11.2013 17:53)
- инверсия приоритетов это - Mahagam(26.11.2013 16:28)
- Для этого ОС не нужна. Понимаю, закат солнца вручную... Против FreeRTOS у меня сильно предубеждение, после того как прочитал, что TLS у них нет и библиотека C там, практически -- минное поле с граблями. Как с такими особенностями её (FreeRTOS) fk0(2024 знак., 26.11.2013 15:49, youtube)
- FreeFros стек контроллирует, но такой контроль в любую ось можно добавить самому. - Apтём(26.11.2013 15:25)
- Нет никого желающего поковыряться в чужой прошивке? Сразу говорю - не моё. Лагунов(719 знак., 25.11.2013 17:36, ARM, полностью)
- а что проще всего подключить к STM32F103 для чтения/записи содержимого? Или только фирменные JTAG-устройства? - Лагунов(21.11.2013 17:29, ARM, полностью)
- а вот взять и откуда скачать прямо сейчас что-то из программных средств для STM32F103? Пока не до реальной отладки, а так с эмулятором, с дизассемлером. Потрогать чтоб. - Лагунов(23.11.2013 09:49, ARM, полностью)
- Особенности Data Breakpoint в Cortex-M4 vmp(467 знак., 22.11.2013 21:35, ARM)
- Вышел MDK Version 5 - VVB(21.11.2013 07:15, ARM, ссылка, полностью)
- Всем привет. Хм? В STM32F303 в DAСe во втором канале не работает связка дма и второй канал. До тех пор пока не проинициализировать канал 1. Это фишка такая или я не дочитал чего-то? Вроде в регистре настройка для каждого канала отдельная. - M@RS(19.11.2013 18:38, ARM, полностью)
- понадобилось проект разбить на две библиотеки (зачем - отдельный вопрос), часть объектников положил в одну, часть в другую (ar) часть оставил в виде исходников. линковаться проект перестал - то есть появились андефайные символы. повозившись, ыыыыыыы(374 знак., 18.11.2013 20:30,
, ARM, полностью)
- Посоветуйте, пожалуйста, книгу по ассемблеру для ARM с примерами. Спасибо. - Леонид Иванович(09.11.2013 20:31, ARM, полностью)
- У нас их есть... - д__(12.11.2013 11:11, ссылка)
- Бля, Иваныч, давай я те реальный проект скину. - _basile(11.11.2013 23:53)
- пора открывать раздел платных консультаций :) - zeleny(11.11.2013 22:19 - 23:49, ссылка)
- если эти темы не троллинг - то посоветую BF от AD посмотреть, последний из процев, для которого я писал большой кусок на асм-е. если не серийные дивайсы для конкуренции с китайцами, а немного удовольствия от процесса - то самое то: там ыыыыыыы(93 знак., 11.11.2013 12:29,
)
- Вот список книг и ссылок, которые мне показались полезными: Ozelot(830 знак., 11.11.2013 12:24)
- Уж, извините, херовый троллинг. (Скоро буду в Минске) - Ациль Шифер(10.11.2013 01:36)
- ЛИ, а вот интересно. Вы в сторону STM8 смотрели? Наверное, я не совсем такой, как надо, но я именно с него начинал при
переходе уходе от AVR... - ut1wpr(09.11.2013 23:36)
- Иваныч, на STM32 на асме - это мазохизм. Примерно как на асме под виндой. Чтобы работать с STM32 нужно мозги немного переключить. Представь, что это не МК, а писюк с виндой (да, даже и с досом). - _basile(09.11.2013 22:28)
- А, вот, и, не надо! Для начала, есть и асм под вин... Ну, это ерунда. НО! смотреть код для проца, в "сыром" виде, крайне необходимо (моё личное). - Ациль Шифер(09.11.2013 23:03)
- Нифига! Надо ставить задачу, и решать ее с минимальными затратами (времени и тд и тп). А ибадзе - это уж когда делать нефига (времени дофига), но нонче такого не бывает. - _basile(10.11.2013 00:44)
- Если бы я это делал на работе, так себя и вел бы. Но делаю для себя. - Леонид Иванович(10.11.2013 00:51)
- А представить, что на работе ? Ну, ладно, расколюсь. Первый мой опыт с STM32 был такой. Обратился по интернету пацан. Типа, ему прогу написать надо было, чтобы АЦП с максимальной частотой опрашивала и в ком порт выплевывала. Ну, и хули - ни _basile(63 знак., 10.11.2013 01:08)
- 15 тысяч российских? Ну Вы и рвач.. - Леонид Иванович(10.11.2013 01:32)
- И какова скорость получилась? На мой взгляд, тут СОМ-порт будет тормозом, а не АЦП и не МК. - Ксения(10.11.2013 01:16)
- Скорость - нормальная. Там нужен был кусок, а не непрерывно. То есть АЦП, через ДМА. Получили - сбрасываем в усарт. Даже Ксения откликнулась - приятно. - _basile(10.11.2013 01:25)
- Xmega по нынешним временам тоже так может. Не хотите ли назад на AVR? :) - Ксения(10.11.2013 02:05)
- XMega может аналоговый сигнал оцифровать с частотой выборки 7,2 МГц ??? Не смешите мои тапки, их и так кот обоссал. - _basile(18.11.2013 21:21)
- Xmega это уже не тот AVR, который мы знали... - Леонид Иванович(10.11.2013 02:15)
- Тот AVR, который мы знали, это примерно как 8051 лет 20 назад. После повсеместного распространения ARM, AVR остался интересен только тем, что его в любом ларьке купить можно, или в качестве сдачи при покупке спичек получить. Ну, и еще - DIP-40 - _basile(191 знак., 18.11.2013 21:42 - 21:51)
- И, тем не менее, сходства вполне достаточно. И на ассемблере с ней приятно работать, если кто-то это раньше освоил на старых AVR. А STM32 это помрачение рассудка. :) - Ксения(10.11.2013 02:30)
- А водка - кончилась. Иду баиньки. - _basile(10.11.2013 01:53)
- Не собираюсь я его на ASM программировать. Но с ужасом обнаружил, что я совершенно не могу разобраться в том, что выдает компилятор. Поэтому следует сначала поднатаскаться в ASM. - Леонид Иванович(09.11.2013 23:02)
- Для этого нужно читать книгу? Мне хватило переводов с gaw.ru и ARM instruction set quick reference card. - fk0(09.11.2013 20:46)
- без картинок, но воспринимается легко -> - Argon(09.11.2013 20:46, ссылка)
- FRDM-KL02Z продолжение. Негодую. Убил пол дня на такое гуано... Еле нашёл. Vit(1116 знак., 16.11.2013 22:28, ARM, ссылка, полностью)
- Кстати, Иваныч! А чем тебя не устраивает библиотека STM32 ? - _basile(11.11.2013 23:57, ARM, полностью)MBedder
- Дело не только в STM32 (хотя на нем эффект заметнее). Проблема в том, что результат действия зависит от обстоятельств. Например, чтобы ножкой дернуть даже на самых простых МК, зачастую приходится предварительно переключить этот пин на out. А в Ксения(1047 знак., 14.11.2013 23:47)
- Что делает ветка про библиотеки для STM32 (ARM) в общей ветке по микроконтроллерам? - Леонид Иванович(14.11.2013 14:12)
- ну скажем так. Nikolay801_(478 знак., 13.11.2013 09:46)
- Отвечу за ЛИ. Он это же мнение уже выражал. Зачем изучать вызовы индусской библиотеки с кривым (да да изрядно кривым) кодом, если можно просто писнуть значение в регистр и с вероятностью 99% сразу же получить нужный результат? Избавление от 1111111(91 знак., 12.11.2013 00:58)
- Приведите примеры глобальной "кривости". - KT(13.11.2013 17:40)
- Не доверять чужому коду легко. Но чаще имеется неприятие чужого кода из-за банального неумения его читать (я не о буквах со словами, а о программах). Традиция обвинять использующих либы в нечтении DS и прочая известна тоже. Нужно же объяснить, Vit(1250 знак., 13.11.2013 16:07, ссылка, ссылка)
- Да дадно, там регистров столько... (потому что возможностей - через край). Индусские библиотеки напрягают проверкой передаваемых параметров (отключаю сразу). Ну, и если чисто ногодрыжество - тоже, ясен пень. - _basile(12.11.2013 21:28 - 21:33)
- Три примера кривизны в студию! - plainuser(12.11.2013 11:34)
- там достаточно тупо заменить многие ф-и инлайнами, заполнение регистров - дефайнами, оптимизировать некоторые вычисления - на пару часов работы, можно раза в 2 сократить объем кода и поднять скорость. Непонятно какую дурь они курили (видимо zeleny(93 знак., 14.11.2013 20:43)
- Насколько помню неатомарные обращения к регистрам разрешения тактирования различных модулей. Если это в многозадачной среде, то чревато. - Юра(14.11.2013 19:47,
)
- USB стек от STM для VCP - он не допилен до ума. Зависает в своих прерываниях при определенных условиях. - User_(12.11.2013 14:55)
- Если не выходить за пределы ногодрыга, то ошибок можно и не заметить. Пару раз при детальном изучении реализации некоторых вещей в либах натыкался на полную неработоспособность того что там накалякано левой ногой. Злорадных записей чтобы потом 1111111(123 знак., 12.11.2013 12:12)
- Серьезно интересуюсь.Используем уже 3й год SPI,ADC,DMA,UART,RTC,Flash,IRQ,Tim,I2C начинали напрямую без либ.Сейчас все через либы.Как-то глюки не встречались.Непонятки бывали , несовершенство тоже присутствует.Что-то где-то ручками добавить plainuser(34 знак., 12.11.2013 13:45)
- ага, библиотеки кривые. А мы тут значит после 5 минут изучения документации (да, всех 10000 страниц) сразу ещё за 5 минут всё напишем, при том сразу всё не криво, а прямо - koyodza(12.11.2013 01:12)
- Не понял сарказма. Можно подумать, на освоение библиотек достаточно 5 минут или использование библиотек гарантирует от ошибок. Проблема в том, что авторы библиотек не сумели поднять интерфейс пользователя на более высокий уровень абстракции. Да, йцукен(153 знак., 12.11.2013 15:04,
)
- зачем нам "всё"? будем писать по мере надобности... Какой смысл пользовать этот идиотизм? вместо просмотра доки на конкретную периферию смотреть доки на чьеи-то константы, а потом опять-таки доку на периферию, что бы понять и уверовать, как оно aoreh(39 знак., 12.11.2013 12:33)
- Увы но. Периферия всех МК имеет много общего и уж дотошного чтения каждой буквы мануала не требуется, смысл ловится на лету. А библиотека, да, приличный говнокод. - fk0(12.11.2013 02:20)
- Для опытного мастера чтение этих 1000 страниц никчему (почти троллинг). Несложная периферия и без чтения описания заработает, ибо у всех более менее одинаковая. Уарт к примеру легко поднимается за 5 минут. А в сложную вроде адских таймеров у stm32 1111111(91 знак., 12.11.2013 01:28)