Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Ср янв 02, 2019 18:29:59

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

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

Ср янв 02, 2019 18:46:04

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

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

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

Вроде мелочи жуткие, но не привычно, и они почему-то до меня долго доходят...

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

Ср янв 02, 2019 18:49:24

СКАЗОЧНИК писал(а):А как же тогда ИНКЛУДы?
Это не исполняемый код.

СКАЗОЧНИК писал(а):А в STM32 уже 32 разряда, т.е. 4 байта.
Прочитайте для начала. https://sunduk.radiokot.ru/loadfile/?load_id=1373389648

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

Ср янв 02, 2019 18:59:57

Спасибо. Уже скачал ее, правда не с Кота, а где-то в другом месте мне попалась. )

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

Ср янв 02, 2019 19:24:45

Если написал статический стринг, то почему не написать статический vector?

когда-нибудь :dont_know:

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

Ср янв 02, 2019 20:26:26

1. Скажите, правильно ли я понимаю, что SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами?
Чтобы кого-то называть рукожопым нужно самому быть хотя бы на о-малое отличным от нуля и самому найти хотя бы одну ошибку в библиотеке. Откуда вы такие берётесь? У нас систему образования вообще что-ли упразднили?

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

Ср янв 02, 2019 20:41:19

Хочу заметить, что не я так назвал изначально это. И тем более, я спросил "Правильно ли я понимаю"? т.е. у меня изначально сомнение, что библиотека плохая. Может она и хорошая вполне.
А вот вы пишите уже с явным негативом, практически переходя на личности.

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

Ср янв 02, 2019 21:34:10

Хочу заметить, что не я так назвал изначально это. И тем более, я спросил "Правильно ли я понимаю"? т.е. у меня изначально сомнение, что библиотека плохая. Может она и хорошая вполне.
А вот вы пишите уже с явным негативом, практически переходя на личности.

не воспринимай на свой счет, это здесь контингент такой кислотный. Периодически заглядывает модер, чистит ветку, кто-то режет карму...

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

Пт янв 11, 2019 14:49:18

Есть еще библиотека LL, ее можно в кубе выбрать
ее нужно в кубе выбрать)
Текущее состояние СПЛ мне неизвестно, но люди проекты на нем делают, вроде работает.
ну а чего с ней сделается? Для новых контроллеров ее нет и скорее всего не будет, а у F и L1 никто SPL не отнимал.

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

Сб янв 12, 2019 20:50:45

Я в основном электронщик, но немного кода писать приходится. Последнее время любимым контроллером стал 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/

По обоим вопросам особенно интересно мнение людей, которые пробовали то и другое для более сложных проектов, чем мигание светодиодом. Спасибо.

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

Вс янв 13, 2019 10:39:51

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

Насчёт ST-Link <-> J-link. В столе опытного эмбеддера не один десяток отладчиков-программаторов валяется. Они сейчас копейки стоят, купи разных и пользуйся по обстоятельствам. J-link конечно же лучше ST-Link, но хотя бы один захудаленький ST-Link на всякий случай в столе должен валяться.

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

Вт янв 15, 2019 02:11:43

Насчёт ST-Link <-> J-link. В столе опытного эмбеддера не один десяток отладчиков-программаторов валяется.


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

Что до IDE, они оба на Эклипсе и интерфейс почти тот же. Вопрос есть ли у одного дополнительные возможности.

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

Вт янв 15, 2019 07:22:52

[uquote="VladislavS",url="/forum/viewtopic.php?p=3547679#p3547679"]Вопрос какие от этого реально выгоды?

Слышал у дж-линка намного больше точек останова. Сам то по глупости обновил все свои ст-линки и теперь в дж-линки не шьется. Имею даже китайский клон дж-линка, только чет к МК не могу приконектить.

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

Сб янв 19, 2019 19:38:01

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

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

Добавлено after 1 minute 28 seconds:
Искал такой же файл с расширением .с
Не могу найти в папках Кейла.

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

Сб янв 19, 2019 20:19:57

ну у меня куб подобные файлы сам в папку проекта копирует. Как я понимаю, если CMSIS использовать, то файлы надо самому в проект подсовывать. Хотя я кейл не пользую, может там по другому.

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

Пн янв 21, 2019 11:05:50

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

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

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

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

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

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

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

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

Пн янв 21, 2019 11:09:18

Вы прослушали краткую историю создания языков программирования :-)

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

Пн янв 21, 2019 11:11:30

И вот еще.

У меня есть код для примера:
Спойлер
Код:
//Объявляем переменную 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;


Или я че то гоню? :?

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

Пн янв 21, 2019 11:13:06

Давайте начнем сначала...
у меня по КЕйлу почему-то поиск не хочет в файлах искать по названию функции...

Странно, у меня Go To Reference и Go To Defenition прекрасно работает

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

Пн янв 21, 2019 11:17:33

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

Добавлено after 50 seconds:
prinv писал(а):Go To Reference и Go To Defenition

Где это? Как это включить? Чего нажать?
Ответить