Поздравляем teap0t с днём рождения!
- понадобилось проект разбить на две библиотеки (зачем - отдельный вопрос), часть объектников положил в одну, часть в другую (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)
- Разрешите прихвастнуть... UraGun1(381 знак., 03.11.2013 18:04 - 18:35, ARM, полностью)
- LPC1788 bootloader. Почему не происходит переход на user code? Sylvan(1274 знак., 12.11.2013 10:52, ARM, полностью)
- обнаружил интересную вещь: STM32F100R8T имеет реально не 64кБ флеши, а 128кБ koyodza(485 знак., 08.11.2013 20:11, ARM, полностью)
- Нашел интересную фичу, спецэффект так сказать, хочу посоветоваться с экспертами. UraGun(973 знак., 11.11.2013 21:08 - 21:12, ARM, полностью)
- Портировал тут модбасы писанные мной с АТМеги на STM32F4, выяснились некоторые интересные нюансы, вдруг кому пригодится. У меня в старом проекте всё работало на УАРТе в режиме - 38400, 8бит, 1стоп бит, четность - Even. Переколбасил всё под STM32, UraGun(515 знак., 12.11.2013 14:28, ARM, полностью)
- Ещё такой вопросец. У IAR для AVR есть возможность вывести LST файл в виде html. UraGun(192 знак., 11.11.2013 22:20, ARM, полностью)
- Что-то половина новых lpc2103 не дышат на частоте 55 МГц. Помнится в старой еррате было что-то про напряжение ядра до 1.95В для работы на верхних частотах. Но щас-то МК последних ревизий... - Argon(11.11.2013 19:18 - 19:20, ARM, полностью)
- По сравнению с многими другими АРМ-ами у ST очень демократичные цены на отладочные платы Discovery. Это на одной плате программатор + целевой контроллер. Цены на ValueLine были порядка $12, сейчас порядка $18. Купил плату, подключил к порту USB, KT(46 знак., 08.11.2013 11:39, ARM, полностью)fk0
- Примерно за полторы недели смог помигать светодиодом на STM32. Работает, но пока не совсем понимаю, как. Вопросы следующие: Леонид Иванович(437 знак., 06.11.2013 20:38, ARM, полностью)
- Книженция, мб ранее пробегала. издание 13го года - RED_DRAGON(09.11.2013 01:16, ссылка)
- спасибо - m16_home(09.11.2013 18:04)
- Мне вот поражает количество плат для STM32 на сайтах типа изиэлектроникс :) в различных вариациях - RED_DRAGON(09.11.2013 01:04)
- Вот товарисчь хорошо написал, как эффективно воспринимать всё околоСТМ32шное. UraGun(145 знак., 08.11.2013 19:00)
- Просто парадигма Освоить От И До здесь дает отказ - не хватает времени. Приходится пользоваться навязываемыми абстракциями и неоптимальными решениями. Камень для умеющих обуздать свои перфекционистские амбиции в угоду получения результата на Юра(29 знак., 08.11.2013 14:35, )
- Как много тут красиво написано! :-) Может и мне изменить Зилогу? И отдаться STM32? :-))) Эх-х-х... Задач только таких (чуть серьёзней) не предлагают. Если вот только всё же созреют управлять солнечной энергией. - Лагунов(08.11.2013 06:03)
- Блин, Иваныч, не напрягай меня ! Ну, при всех твоих, этих, генераторах, и все такое. Че там STM32 ??? _basile(119 знак., 07.11.2013 23:58)
- Такой длинный флейм говорит о громадном интересе ко всей линейке STM32. KT(517 знак., 07.11.2013 13:31)
- STM32 - это аццкий кошмар. Никогда не думал, что по сравнению с AVR будет НАСТОЛЬКО сложнее. Прямо напичкан лишним. - Леонид Иванович(07.11.2013 13:56)
- с nxp было бы тоже самое, единственное - нету кривых бмблиотек - RED_DRAGON(07.11.2013 15:20)
- он действительно намного сложнее, но это плата за возможности и только сначала :) я на stm32f100c4 замутил себе универсальную платку для поделок - 4 реле, 2 аналоговых входа с оу, 4 дискретных, 4 кнопки + экран от нокии 5110, которые на ебэее по AVF(174 знак., 07.11.2013 14:11)
- тогда зачем он Вам? Используйте AVR и дальше, раз тут всё лишнее - koyodza(07.11.2013 14:10)
- А чего стоит только STM Studio. Попробуйте! - KT(07.11.2013 14:07)
- Леонид Иванович, что же лишнее? Слишком богатая периферия? Не включайте клок и не придётся настраивать! - _keil(07.11.2013 14:07)
- Это только первое впечатление :) - KT(07.11.2013 14:05)
- лучше иметь лишнее, чем не иметь нужного. - Nikolay801_(07.11.2013 13:59)
- В свежей версии standard_peripheral_library есть много интересного , примеры , заготовки системных файлов.Описание их применения , а идеология применения иногда меняется.Ну и поскольку постоянно и одновременно программирую на ИАР и КЕЙЛ для plainuser(101 знак., 07.11.2013 13:12)
- На Кинетисе я аналогичного результата достиг за полчаса. При помощи копеечного девборда FRDM-KL25Z и бесплатного АРМ-овского компилятора mbed - =AK=(07.11.2013 11:30, ссылка)
- IAR ??? Иваныч, не смеши. При твоих - то опытах.... Скажи че надо. Я те в Яре за пол-часа накидаю. - _basile(06.11.2013 21:37)
- STM32 я только начинаю изучать. - Леонид Иванович(06.11.2013 21:47)
- Кстати, очень простая инициализация! Если, скажем, Вам не нужен SPI - просто забудте о нём! Когда понадобится, включите тактирование и запишете регисты управления по вкусу - Keil(06.11.2013 22:10, )
- Леонид Иванович, уверен stm32 Вам понравится. Как минимум: производительность, богатая периферия, ввод-вывод как операции со структурами и др. - Keil(06.11.2013 22:07, )
- Подходить надо аккуратно. Вот, скажем, у LPC - последовательные интерфейсы - с FIFO. STM ставит на DMA. _basile(19 знак., 06.11.2013 22:41)
- Пока кроме отрицательных эмоций нет ничего. Вторую неделю над мигающим светодиодом мучаюсь. - Леонид Иванович(06.11.2013 22:14)
- Этот процесс не может пройти мгновенно и безболезненно. Двигайтесь дальше и обрящете - Keil(06.11.2013 22:21, )
- потерпите. Дальше пойдёт легче, если не будете противостоять так упорно - koyodza(06.11.2013 22:15)
- По ссылке нашел такой текст (это правда?): Леонид Иванович(06.11.2013 23:10, ссылка)
- В голове полная каша. Никак не могу разобраться со startup. Леонид Иванович(450 знак., 06.11.2013 22:51)
- Универсального startup*.s не существует в природе - слишком много принципиально разных процов на едином ядре. Нужно подключать свой startup_stm32f10x_ld_vl.s соответствующий семейству - _keil(06.11.2013 23:00)
- Поскольку *.S - ассемблер, попробуйте asm(.include 'include\startup_stm32f10x_ld_vl.s'); Он не *.h и не *.c - стиль #include "include\stm32f10x.h" _keil(95 знак., 06.11.2013 22:57)
- Его можно открыть блокнотом и посмотреть! Самое интересное - скелет для обработчиков прерываний. Важная штука - имена процедур. Потребуется если будете писать свой обработчик - _keil(06.11.2013 23:04)
- Прежде чем подключить, хотелось бы знать, что он делает. - Леонид Иванович(06.11.2013 23:00)
- Содержит interrupt vector table - _keil(06.11.2013 23:18)
- и не только. Но для начала можно считать этого знания должно быть достаточно - koyodza(06.11.2013 23:21)
- Посмотрел. Действительно там таблица векторов, Леонид Иванович(458 знак., 06.11.2013 23:38)
- Прикол в том, что фся периферия структурирована. Например, запись в регистр ничем не отличается от записи в элемент структуры. Доставляет !-) И во всех однотипных блоках (например, uart) единый конфиг. Нет такого, чтобы какой-нибудь дополнительный _keil(95 знак., 07.11.2013 09:16)
- Там в стартапе возле имен обработчиков есть волшебное слово weak. И для Cortex не нужно писать модификаторы __interrupt и номер вектора - оно само в этой таблице. И если Вам нужно подменить пустышку на свою функцию, то Вы её просто пишете. - Vit(07.11.2013 00:07)
- Не редактируйте SystemInit(), startup_stm32f10x_md_vl.s, system_stm32f10x.c ! Пользуйтесь HSI или пишите свой init(), вызываемый в начале main() - _keil(07.11.2013 00:05)
- можно написать вообще всё своё, только замучитесь. Да и если уж делать это, то не в первом проекте - koyodza(06.11.2013 23:44)
- Леонид Иванович, target вторичен и имеет смысл для сценария cmsis из комплекта компилятора. Лучше берите с сайта производителя кристалла. #define STM32F10X_LD_VL нужен, т.к. один и тот же cmsis содержит описание периферии нескольких весьма по Keil(151 знак., 06.11.2013 21:28, )
- Я хочу просто выбирать Target и не набирать ручками #define STM32F10X_LD_VL. При выборе Target наверняка определяется какой-то символ, неужели никто не автоматизировал включение STM32F10X_LD_VL? Леонид Иванович(99 знак., 06.11.2013 21:34)
- С EFM32 в Keil нужно аналогичный дефайн задавать в свойствах проекта, но не для семейства, а просто для того же проца:) Можно обратиться в саппорт и за умеренную плату они сбецают генерилку. Я так думаю:) Vit(102 знак., 06.11.2013 23:57)
- startup_stm32f10x_ld_vl.s заботливо и неявно подключил компилятор. То, что Вы его не набрали явно, не означает, что его нет - Keil(06.11.2013 22:03, )
- Target - только для 'встроенного' cmsis. Рекомендую cmsis специально качать с st.com и явно включать в проект. В этом сценарии нет иного способа отличить скажем stm32f100 от stm32f107 кроме как #define STM32F10X_LD_VL - Keil(06.11.2013 22:01, )
- блин, да один раз набрать. Вам больше заняться нечем как искать обход подобной ерунды? - koyodza(06.11.2013 21:37)
- Некрасиво, что два раза нужно в разных местах задавать одно и то же - тип процессора. Неужели никто не автоматизировал? Я в шоке. - Леонид Иванович(06.11.2013 21:46)
- Посмотрите внимательнее. Под LPC автоматизировано, при выборе таргета определяется нужный дефайн. Под Stm32 я перешел на gcc, но вряд ли в iar для LPC и STM будут делать принципиально отличающиеся настройки проекта. - 3m(06.11.2013 21:52)
- по факту у меня есть проекты, где не одно и то же. Эти проекты работают на разных МК. Не принципиально разных типа F1 и F4, но например на F100 и F103, которые всё же много чем отличаются - koyodza(06.11.2013 21:49)
- Хм, оказывается, всё еще сложнее. А для каких целей Вам пришлось указывать разные процессоры в разных местах? Нельзя было, скажем, для старшего скомпилировать? - Леонид Иванович(06.11.2013 21:51)
- Нельзя. Ибо они очень разные по начинке! Поищите фразу #ifdef STM32F10 в файле stm32f10x.h и увидите - Keil(06.11.2013 22:27, )
- если в проекте указать 100, а не 103, то в кейле недоступна удобная отладка периферии. А стартап вообще доработанный получился, потому что некоторые вектора прерываний у них разные. Но на начальном этапе Вам это не нужно koyodza(38 знак., 06.11.2013 21:56)
- А где правильно настраивать тактирование, в файле стартапа или в своем исходнике? Меня смущает, что я не знаю, на каком генераторе сейчас работает процессор. - Леонид Иванович(06.11.2013 22:01)
- Можно накатать мигалку на 1 секунду расчетную, залить+запустить F8, замерять секундомером, провести обратный перерасчет... - Vit(06.11.2013 23:12)
- Если речь о stm32f100c4, то hsi 8 MHz. Нужно больше? Включите PLL. Почитайте официальный даташит, там описаны RCC->CFGR и RCC->CR - Keil(06.11.2013 22:36, )
- Два пути - писать свой init() или пользоваться API от st. Главное - не забывайте включать тактирование перед настройкой. Например, RCC->APB1ENR|=RCC_APB1ENR_PWREN; - Keil(06.11.2013 22:31, )
- это вопрос типа как надо делать: красиво или быстро. Каждый делает по-своему koyodza(1125 знак., 06.11.2013 22:08 - 22:15)
- А что делать при неудачном включении тактирования? - Леонид Иванович(07.11.2013 00:03)
- Уж точно не подключать внешний генератор и перешивать фьюзы! Достаточно ресет и убрать неудачный код. Снова получите голый HSI - _keil(07.11.2013 00:19)
- это от функционала прибора зависит. Если Вы о БП, то там можно работать от HSI на 8МГц и вообще не трогать тактирование. Для работы UART кварц не нужен, стабильности внутреннего генератора достаточно koyodza(136 знак., 07.11.2013 00:06)
- Если PLL тактировать от HSI, тогда, вроде, достаточно этого: Леонид Иванович(461 знак., 07.11.2013 01:35)
- Только я бы писал CFGR = (CFGR & ~CFGR_SW) | CFGR_SW_PLL; Так биты SW в регистре CFGR не будут кратковременно сброшены в 0. В данном случае это ничем не грозит, но вообще говоря может стать источником проблемы. - йцукен(07.11.2013 20:22, )
- Можно подробнее, почему в этом случае не грозит, и в других случаях будут проблемы? - Леонид Иванович(07.11.2013 22:44)
- Ну представьте, что вы собирались перейти с HSE на PLL, при этом первой строчкой временно перешли на HSI, а он выключен. Тогда ядро остановится, и до второй строчки дело не дойдёт. В данном случае это мнимая угроза, потому что, если я правильно йцукен(268 знак., 08.11.2013 13:13, )
- В кратковременном переключении на HSI ничего страшного не вижу. Но если Вы решите выполнить полный код более одного раза, возникнет коллизия - PLL уже используется, а Вы принудительно ей пытаетесь поменять множитель. Пусть и кратковременно. - _keil(08.11.2013 05:00)
- Понимаю while(77){} - оно специально для посмеяться при чтении, а вот (xxx == 0) под while ненавижу - Vit(07.11.2013 01:52)
- В CooCox автоматизировано. Vit(1693 знак., 06.11.2013 20:59)
- Попробуйте Какос. он весь проект раскладыват по полочкам, CMIS, startup, libs etc // ps не знаю как иар. - RED_DRAGON(06.11.2013 20:54)
- У IARa есть примеры, там всё вроде прозрачно. Компилится сходу и работает так-же. Это я про настройку тактирования. Кстати в файле system_stm32f10x.с Это и делается. Менял константы - меняются частоты, проверено. - UraGun(06.11.2013 20:45)
- TE-ST-Link кто пользует? Как обновляется? От оригинального чем отличается? 4 контакта на плате это SWD? RED_DRAGON(81 знак., 08.11.2013 20:38, ARM, полностью)
- хорошее название для этой странички: АРМ-агеддон... - Крок(08.11.2013 13:58, ARM)