- обнаружил интересную вещь: 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)
- Keil 5 MDK-ARM (с ограничением по коду 32к) и MT-link v5 от starterkit Dany(431 знак., 06.11.2013 16:18, ARM)MBedder
- Решил продублировать вопрос из off в тематическом форуме. Как в IAR загрузить и запустить на выполнение прошивку в STM32 через ST-Link без запуска дебаггера? Чтобы как можно меньше кнопок нажимать. - Леонид Иванович(01.11.2013 19:18, ARM, полностью)
- я проблемы не вижу/не понимаю, но вот такая хрень (ST-LINK utility) не поможет? www.st.com/web/en/catalog/tools/PF258168 - ыыыыыыы(05.11.2013 15:48,
)
- Я генерю хекс и запускаю одним кликом батфайл использующий ST-Link Utility для заливки в проц. - plainuser(05.11.2013 14:52)
- А я так и не научился дебажить из-под ИАРовского КикСтарта. Вроде код в VLDISCOVERY пишет, но перед этим не стирает ему флешу. Маразм. Стирал ST-LINKом. Поигрался с опциями и так и бросил - просто прошиваю через ST-LINK. - Юра(02.11.2013 11:34,
)
- +1 Уже давно это напрягает. Не думал что все так запущено. - КТ(02.11.2013 00:26)
- Не совсем понял цель. Тем не менее можно накатать батник к ST-LINK_CLI.exe (из ST-LINK Utility) и назначить ему в IAR кнопку - 1111111(01.11.2013 21:20)
- а почему именно ST-Link? Помнится у самого ST-линка настроек толком нет никаких koyodza(40 знак., 01.11.2013 20:23)
- Л.И, у CooCox-а есть автономный прошивальщик и он (вроде бы, не пробовал за отсутствием последнего) поддерживает ST_Link. Не попрёт? Кстати, пробовал, через Olimex-овские ARM-USB (-H, Tiny) шьёт. - Chum_A(01.11.2013 20:11, ссылка)
- Пойдет. А где взять отдельно прошивальщик? - Леонид Иванович(01.11.2013 23:15)
- в кокосе - RED_DRAGON(01.11.2013 23:39, ссылка)
- вот сейчас ЛИ прикрутит это к иару и будет продолжать откладывать кирпичи по поводу
как страшно жыть какой арм плохой вместо того чтобы научиться работать с ним как положено - koyodza(01.11.2013 23:49)
- А как положено? Или нажимать лишние кнопки для ARM - норма? - Леонид Иванович(02.11.2013 00:16)
- анекдот вспомнился про чукчу и камаз. И другой про бензопилу koyodza(783 знак., 02.11.2013 00:30, ссылка)
- Да знаю я этот анекдот. Но при чем он здесь? Вот выше человек плюсик поставил, у него та же проблема. Леонид Иванович(621 знак., 02.11.2013 00:55)
- против одного плюсика с той же проблемой есть ряд плюсиков в пользу другой точки зрения, которая хорошо проиллюстрирована выше картинкой. А также в анекдоте про Брежнева и водку - koyodza(02.11.2013 01:25, ссылка, ссылка)
- Я же не отказываюсь от отладчика (иначе шил бы через UART), пусть будет, возможно, в какой-то ситуации понадобится. Но чаще всего нужно просто запустить приложение. И такой возможности в IAR не было. Я искал решение. Что не так? - Леонид Иванович(02.11.2013 01:29)
- ну как это не было? Вы сэкономили один клик, и потратили больше времени здесь. Зато все, кто использует отладчик для загрузки - стая идиотов, а Вы в белом пальто ;) - Vladimir Ljaschko(02.11.2013 09:21)
- Народ, вы издеваетесь все? Как тогда нужно по-вашему? Если требуется запустить программу без отладки, то отключаем дебаггер, подключаем программатор? Так? - Леонид Иванович(02.11.2013 11:32)
- Это Вы издеваетесь. --> - Vit(02.11.2013 11:58, ссылка)
- Словами можно? Что не так? Зря я в ARM-ы полез... - Леонид Иванович(02.11.2013 12:13 - 12:15)
- Ваш АВР отличается только тем, что у Вас нет JTAGAVR MKII, поэтому Вы вынуждены использовать внешний программатор. Здесь же у Вас есть ST-link, который программирует флэш идентично в отладчике и внешней программирующей программой. Поэтому Ваши Vladimir Ljaschko(86 знак., 02.11.2013 13:51)
- Из Вас битый час выпытывали, нахрена нужно просто шить из IDE. Оказалось, что не просто шить, а ещё и запускать. Да ещё и в 99% после того, как изменили что-нить в том, что уже было залито и запущено. Т.е. вместо поправить, отправить на Vit(427 знак., 02.11.2013 12:38)
- А времени сэкономлю больше, так как перекомпилять и запускать приходится по сто раз на дню. - Леонид Иванович(02.11.2013 11:33)
- ну если уже не отказываетесь значит всё в порядке :=) - koyodza(02.11.2013 01:46)
- в кейле это делается одной кнопкой. В иаре не знаю, для арм не использую - koyodza(01.11.2013 19:52)
- Попробуйте в опциях отладчика в поле "Run to" указать вместо main имя какой-нибудь фиктивной функции, пусть на нее автоматом ставится точка останова. vmp(98 знак., 01.11.2013 19:39)
- Для STM8: ctrl-D (скомпилировать и загрузить в дебуге), ctrl-shift-D(выйти из дебуга и запустить программу). Думаю, для STM32 также. - Andreas(01.11.2013 19:36)
- зачем Вам это нужно? Никогда не понимал людей, использующих отладчик для заливки прошивки без отладки. Хотите просто заливать - используйте бутлоадер, можно настроить через командную строку - koyodza(01.11.2013 19:25)
- Кто-нибудь подсоединял LCD 480x272 к STM32F429? alexandrslep(159 знак., 05.11.2013 15:06,
, ARM)
- Пинаю блоху от Freescale на демушке FRDM-KL02Z (CM0+, 32K Flash, 4K RAM) и тихонько плююсь. "Отладчик" видится как махонький MSD со страничками перехода на сайт-разработчик таких досок и никак не видится в Keil и IAR (их CodeWarrior пока не Vit(1787 знак., 03.11.2013 16:45, ARM)
- Уже спросил в какой-то теме, но не могу её найти, пардон, не привык ещё к сахарскому интерфейсу. Вопросов два. UraGun1(605 знак., 02.11.2013 17:13, ARM, полностью)
- Прошу помощи в "запуске" самодельной платы на AT91SAM9X25 - разобрался !!! Сидоргек(556 знак., 01.11.2013 18:22 - 18:26, ARM, ссылка, полностью)