STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

СКАЗОЧНИК писал(а):Вот к любому Мэйн фалу надо подключить библиотеку с настройкой тактирования устройств и конфигурации портов ввода-вывода.
Зачем? Каждый файл с исходным кодом компилируется отдельно и собирается линкером. Файлы нужно добавлять в проект.
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Да, не правильно понял чуток.
Добавлять в проект это в дерево папок, которое справа у того же Кейла? А как же тогда ИНКЛУДы? Их же пишут в самом начале?

Добавлено after 4 minutes 23 seconds:
И правильно ли я еще понимаю, что в АВР был один байт. И адреса выглядят примерно так:
0xFF, 0xA2 и т.д. И даже удобнее было представлять в двоичном виде.

А в STM32 уже 32 разряда, т.е. 4 байта. И адреса выглядят уже так:
0xFFFFFFFF, 0x0000AA22 и т.д. Потому и много так цифр.

Вроде мелочи жуткие, но не привычно, и они почему-то до меня долго доходят...
Станислав
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

СКАЗОЧНИК писал(а):А как же тогда ИНКЛУДы?
Это не исполняемый код.
СКАЗОЧНИК писал(а):А в STM32 уже 32 разряда, т.е. 4 байта.
Прочитайте для начала. https://sunduk.radiokot.ru/loadfile/?load_id=1373389648
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Спасибо. Уже скачал ее, правда не с Кота, а где-то в другом месте мне попалась. )
Станислав
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

[uquote="Reflector",url="/forum/viewtopic.php?p=3539839#p3539839"]Если написал статический стринг, то почему не написать статический vector?[/uquote]
когда-нибудь :dont_know:
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3539808#p3539808"]1. Скажите, правильно ли я понимаю, что SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами?[/uquote]Чтобы кого-то называть рукожопым нужно самому быть хотя бы на о-малое отличным от нуля и самому найти хотя бы одну ошибку в библиотеке. Откуда вы такие берётесь? У нас систему образования вообще что-ли упразднили?
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Хочу заметить, что не я так назвал изначально это. И тем более, я спросил "Правильно ли я понимаю"? т.е. у меня изначально сомнение, что библиотека плохая. Может она и хорошая вполне.
А вот вы пишите уже с явным негативом, практически переходя на личности.
Станислав
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3539999#p3539999"]Хочу заметить, что не я так назвал изначально это. И тем более, я спросил "Правильно ли я понимаю"? т.е. у меня изначально сомнение, что библиотека плохая. Может она и хорошая вполне.
А вот вы пишите уже с явным негативом, практически переходя на личности.[/uquote]
не воспринимай на свой счет, это здесь контингент такой кислотный. Периодически заглядывает модер, чистит ветку, кто-то режет карму...
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: STM32 новичку в ARM что к чему

Сообщение arkhnchul »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3539838#p3539838"]Есть еще библиотека LL, ее можно в кубе выбрать[/uquote]ее нужно в кубе выбрать)
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3539838#p3539838"]Текущее состояние СПЛ мне неизвестно, но люди проекты на нем делают, вроде работает.[/uquote]ну а чего с ней сделается? Для новых контроллеров ее нет и скорее всего не будет, а у F и L1 никто SPL не отнимал.
alexf58
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

Re: STM32 новичку в ARM что к чему

Сообщение alexf58 »

Я в основном электронщик, но немного кода писать приходится. Последнее время любимым контроллером стал STM32. Я знаю, что есть бесплатные версии Keil с ограничением на размер кода, но предпочитаю инструменты без ограничений. И пару лет компилирую на AC6 System Workbench. Не так давно Attolic стал тоже бесплатным без ограничений. Когда-то в нем сильно лучше была интеграция GDB и ST-link, но вроде сейчас на AC6 не жалуюсь.
Такой вопрос: есть ли заметные преимущества Attolic над AC6 System Workbench? А заодно есть ли смысл перешивать ST-link в J-link, что теперь вполне оффициально?
https://www.segger.com/products/debug-p ... -on-board/

По обоим вопросам особенно интересно мнение людей, которые пробовали то и другое для более сложных проектов, чем мигание светодиодом. Спасибо.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

alexf58 , лучшая IDE та в которой ты умеешь работать и решать поставленные задачи. А для расширения кругозора можно и что-то другое попробовать. Только самому, так как мой и твой опыт это две большие разницы.

Насчёт ST-Link <-> J-link. В столе опытного эмбеддера не один десяток отладчиков-программаторов валяется. Они сейчас копейки стоят, купи разных и пользуйся по обстоятельствам. J-link конечно же лучше ST-Link, но хотя бы один захудаленький ST-Link на всякий случай в столе должен валяться.
alexf58
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

Re: STM32 новичку в ARM что к чему

Сообщение alexf58 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3547679#p3547679"]Насчёт ST-Link <-> J-link. В столе опытного эмбеддера не один десяток отладчиков-программаторов валяется.[/uquote]

Да у меня их как грязи валяетрся, речь не о том. Есть готовые платы для отладки Nucleo в встроеным ST-link. Его можно перешить в J-link. Вопрос какие от этого реально выгоды? Конечно могу попробовать на досуге, но хотелось бы услышать мнение тех, кто уже делал.

Что до IDE, они оба на Эклипсе и интерфейс почти тот же. Вопрос есть ли у одного дополнительные возможности.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

[uquote="alexf58",url="/forum/viewtopic.php?p=3549307#p3549307"][uquote="VladislavS",url="/forum/viewtopic.php?p=3547679#p3547679"]Вопрос какие от этого реально выгоды?[/uquote]
Слышал у дж-линка намного больше точек останова. Сам то по глупости обновил все свои ст-линки и теперь в дж-линки не шьется. Имею даже китайский клон дж-линка, только чет к МК не могу приконектить.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Залез в какие-то дебри... Докапался до файла stm32f10x_rcc.h

В нем есть в конце самом объявление функций различных. А где эти сами функции находятся?

Добавлено after 1 minute 28 seconds:
Искал такой же файл с расширением .с
Не могу найти в папках Кейла.
Станислав
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

ну у меня куб подобные файлы сам в папку проекта копирует. Как я понимаю, если CMSIS использовать, то файлы надо самому в проект подсовывать. Хотя я кейл не пользую, может там по другому.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Давайте начнем сначала...

Вот у меня платка с контроллером STM32F103C8
Поставил я Кейл. Накачал библиотек разных. Начитался статей всяких и те книжки, что советовали. Архитектуру АРМ вроде понял. Пусть не все понял, но большинство вполне.

Микроконтроллер умеет оперировать только цифрами. Поэтому для него названия команд, даже на ассемблере и регистров аббревиатурами вообще непонятная билиберда.
Так вот. Среда разработки (IDE) тот же Кейл имеет встроенный компилятор языка, который все эти мнемоники и аббревиатуры переводит в тупые цифры для микроконтроллера, которые в свою очередь мы и прошиваем во Флеш его.
Команды с любого языка программирования он (компилятор) умеет переводить в цифры. А названия регистров меняет на их адреса (тоже цифры). Чтобы человеку не помереть в этих цифрах бесконечных, умные люди взяли и присвоили адресам читабельные мнемоники. И насоздавали немереную кучу файлов хидеров. Также эти же люди подумали и дальше. И создали еще и библиотеку СПЛ (и другие тоже), в которой(ых) описали все основные рутинные функции для микроконтроллера. Еще и разбили их на файлы отдельные, где каждый отвечает за что-то свое (настройка тактирования, портов ввода-вывода, АЦП, ЮАРТ и т.д.).

Все что остается обычному программисту, после того, как он разобрался с МК (точнее понял, что из него можно вытянуть, поиметь, получить и на каких ногах и с какой скоростью и с каким напряжением) - это взять и написать свой код, в котором будет очень "удобно" использовать все вышепредложенное для разработки.

Вопрос.
Откуда люди берут именно эти названия функций? и именно эти названия регистров и битов в них?

Я просто заколебался лазить в каждой библиотеке, чтобы посмотреть как эта функция выглядит и что там объявили для какого-либо регистра.
А если я не знаю, что мне нужна именно эта функция? Т.е. в примерах я ее нигде не нашел. Как я могу знать что мне вообще искать?

З.Ы. у меня по КЕйлу почему-то поиск не хочет в файлах искать по названию функции...
Последний раз редактировалось СКАЗОЧНИК Пн янв 21, 2019 11:13:52, всего редактировалось 1 раз.
Станислав
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение prinv »

Вы прослушали краткую историю создания языков программирования :-)
Никакая контра не уйдёт от нас
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

И вот еще.

У меня есть код для примера:
Спойлер

Код: Выделить всё

//Объявляем переменную port типа GPIO_InitTypeDef
    GPIO_InitTypeDef port;
    //Это функция из файла stm32f10x_rcc.c, включает тактирование на GPIOA
    //GPIOA сидит на шине APB2
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    //Про эту функцию напишу чуть ниже
    GPIO_StructInit(&port);
    //Заполняем поля структуры нужными значениями
    //Первый вывод – вход для обработки нажатия кнопки – PA1
    port.GPIO_Mode = GPIO_Mode_IPD;
    port.GPIO_Pin = GPIO_Pin_1;
    port.GPIO_Speed = GPIO_Speed_2MHz;  
    //А про эту функцию мы уже говорили   
    //Отметим только что один из параметров – указатель(!) на  
    //нашу структуру
    GPIO_Init(GPIOA, &port);    
    //Настраиваем вывод, на котором будет висеть диодик – PA0 
    port.GPIO_Mode = GPIO_Mode_Out_PP;   
    port.GPIO_Pin = GPIO_Pin_0;  
    port.GPIO_Speed = GPIO_Speed_2MHz;   
    GPIO_Init(GPIOA, &port);
В первой же строке его мы заводим переменную port типа структуры заданной в каком-то хидере. А потом настраиваем там по обращениям к переменным:
port.GPIO_Mode = GPIO_Mode_Out_PP; и т.д.

Однако у меня такая структура, которую я нашел в хидере STM32F10x.h выглядит не так:
Спойлер

Код: Выделить всё

typedef struct
{
  __IO uint32_t CRL;
  __IO uint32_t CRH;
  __IO uint32_t IDR;
  __IO uint32_t ODR;
  __IO uint32_t BSRR;
  __IO uint32_t BRR;
  __IO uint32_t LCKR;
} GPIO_TypeDef;
Или я че то гоню? :?
Станислав
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение prinv »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3553708#p3553708"]Давайте начнем сначала...
у меня по КЕйлу почему-то поиск не хочет в файлах искать по названию функции...[/uquote]
Странно, у меня Go To Reference и Go To Defenition прекрасно работает
Никакая контра не уйдёт от нас
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: STM32 новичку в ARM что к чему

Сообщение СКАЗОЧНИК »

Все. Последний вопрос свой сам увидел. Там разные структуры. Я не ту нашел. На него можно не отвечать. )))))

Добавлено after 50 seconds:
prinv писал(а):Go To Reference и Go To Defenition
Где это? Как это включить? Чего нажать?
Станислав
Ответить

Вернуться в «ARM»