Да там еще до таймеров и ацп далеко будет - сначала надо тактирование из программы настроить.
Зачем? Тактирование настраивается в system_stm32fxxx.c После создания проекта, все готово к разработке программы и на настроку тактирования отвлекаться не нужно (если она такая как по умолчанию). Прочитайте для начала. http://purebasic.mybb.ru/viewtopic.php?id=575#p7256
Ярослав555 писал(а):
Теперь без CubeMx наверное не одну неделю периферию настраивать пришлось бы
Это совершенно не так. Наоборот библиотека SPL проще чем CubeMx в плане настройки периферии. Но это кто к чему привык.
ВячеславX писал(а):
Можно, например, в CubeMx сконфигурировать, а далее на ассемблере писать?
Если для вас важна стабильность и безопасность работы устройств и не хочется при выходе каждой версии куба изучать его библиотеки на предмет ошибок и исправлять файлы проекта из-за несовместимости версий, то куб не самый лучший выбор. SPL в этом плане лучше. Библиотека устроена проще и вероятность ошибок в ней меньше чем в HAL.
если stm32f303 затактировать ( при ограничении по внешней тактовой частоте в 32 МГц) от внешнего генератора 50 МГц , он заработает ? и не спрашивайте зачем(
У меня не работает покажите как Вы это делаете?Одни фиг после сброса МК стартует с адреса 0x800000, а программу я расположил чуть дальше. Меня интересует именно отладка, потому, что сначала Флэша там живёт бутлоадер и не охото его каждый раз перезаписывать после отладки.
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
перенесите программу на 0x800000 , отладите и перенесете обратно
с адреса 0x800000 прыгайте на старт программы, но тут есть нюанс что указатель на стек и на таблицу прерываний скорей всего нужно корректировать, пускай более опытные коты подскажут
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Мне бы таки по существу, я же вроде понятно описал задачу. Как и что переносить я знаю, но вначале памяти живёт бутлоадер и не хотелось бы его трогать))
baghear, в настройках отладчика поставить галочку Run to main. На вкладке Target вместо 0x8000000 указать свой адрес 0x800A000. При необходимости указать смещение таблицы векторов прерываний, первой строчкой в main
Что то я вообще запутался??? У Keil свой ассемблер, у IAR свой ассемблер, в мануалах по камню свой ассемблер... Зачем всё это сделано? Мне более естественен и понятен ассемблер который в мануале по нужному мне процессору. В какой программе можно использовать ассемблер, который в мануале по процессору? Myp3ik спасибо за пример, +, Ярослав555 спасибо за ссылки на pdf, +.
если stm32f303 затактировать ( при ограничении по внешней тактовой частоте в 32 МГц) от внешнего генератора 50 МГц , он заработает ? и не спрашивайте зачем(
Ну 50МГц довольно сложно правильно завести на кристалл. Не проще настроить PLL на умножение скажем 2МГц внешнего кварца и якобы получать номинальную частоту, а в реальности запаять кварц на 8МГц, к примеру?
Но предупреждаю - только для эксперимента. Я недавно наступил на такие грабли - XMega гарантировано работает на 32МГц, на столе стабильно работала на 48-ми. Вот я и зпустил так на обьекте, т-к не хватало вычислительной мощности. А потом получал чудные отчеты от клиента о зависаниях, и в итоге пришлось на поезде 600км туда/обратно ехать чтобы прошить МК.
Что то я вообще запутался??? У Keil свой ассемблер, у IAR свой ассемблер, в мануалах по камню свой ассемблер... Зачем всё это сделано? Мне более естественен и понятен ассемблер который в мануале по нужному мне процессору. В какой программе можно использовать ассемблер, который в мануале по процессору? Myp3ik спасибо за пример, +, Ярослав555 спасибо за ссылки на pdf, +.
Вторая ссылка на пдф содержит апноут для АТМЕЛА. Дана как пример Мб Вы не обратили на это внимания.
Вторая ссылка на пдф содержит апноут для АТМЕЛА. Дана как пример Мб Вы не обратили на это внимания.
Да я понял, что можно писать в асм. Я читал информацию в Интернете, что код написанный с ассемблерными вставками, а тем более на ассемблере в Keil не работает в IAR и наоборот. Типа как разные ассемблеры, но я до конца так и не понял.
Вам, пока вы там выбираете среду разработки, я бы хотел посоветовать все же прикинуть, насколько достижимы те цели, которые вы преследуете. Ассемблер -- это хорошо, но надеюсь вы в курсе, что такой точности со временем выполнения команд, как на AVR или PIC-ах, с ARM-ами у вас может и не быть.
Вам, пока вы там выбираете среду разработки, я бы хотел посоветовать все же прикинуть, насколько достижимы те цели, которые вы преследуете. Ассемблер -- это хорошо, но надеюсь вы в курсе, что такой точности со временем выполнения команд, как на AVR или PIC-ах, с ARM-ами у вас может и не быть.
Да, я в курсе, что в ARM есть алгоритм, который увеличивает скорость за счет параллельного выполнения внутрисхемных операций исходя из последующих инструкций, и что эта система не работает например при косвенном переходе и количество тактов на выполнение одной и той же инструкции может быть разной.
Не только в этом дело. На частотах выше 24мгц ядро начинает перемалывать код со скоростью большей, чем флеш может отдавать. Из-за такой разности в скорострельности, ядру приходится время от времени тормозиться, пока происходит считывание инструкций. В какой-то степени эту проблему нивелирует конвейер, но там тоже не все безоблачно. Следствием всей этой чехарды оказывается невозможность во многих случаях посчитать время выполнения того или иного кода, что делает затруднительным реализацию алгоритмов с жесткой растактовкой.
Cтрою тут приборчик на f103VDT6. Пару месяцев неспешного кодинга по выходным и все было норм - шилось и отлаживалось. Но вот сегодня пришел с работы, дописал чуть кода, нажал дебаг, оно скомпилило, типа зашило, потом сказало что были варнинги во время даунлоада - не совпадение ряда байт в прошивке. С чего вдруг?! Ну и конечно добавленный функционал не работает, бреикпоинты на новом коде не срабатывают. ИАР 8.22, шьется через дискавери. Слышал кто о таком?
Добавлено after 12 minutes 57 seconds: отбой ребята - скинул частоту SWD с 240 на 100 и пошло. А почему так получилось - без понятия.
Вопрос к знатокам. Мне надо сохранять интервалы времени между приходящими импульсами. F407 CPU. Настроил таймер, интерапт по capture ch1, читаю count, вычитаю предыдущий. Все хорошо. Но хотелось бы еще лучше. Можно ли настроить таймер так, чтобы он при поступлении импульса сохранял счетчик (скажем по DMA) и автоматом обнулял? Тогда бы не надо было вычитать и не надо прерывания на каждый импульс.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Пт апр 20, 2018 09:16:33
Мучитель микросхем
Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср окт 19, 2011 08:48:27 Сообщений: 443 Откуда: Мать городов русских
Рейтинг сообщения:0
Народ, только начал юзать STM32F051R8 на Discovery под Keil - pls кому не в лом, киньте пример инициализации TIM2 или TIM3 с прерыванием и как оформляется прерывание, ато после AVR тяжко втыкать.
_________________ Хорошему коту и в декабре - март
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения