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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 6749
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3883980#p3883980"]Если в проекте подключен заголовочный файл микроконтроллера, то stdint.h автоматом подключен.[/uquote]
А шут его знает, через какую опу тут заголовочный файл подключается, и который из них заголовочный для STM32F303CB. stm32f3xx.h, stm32f303xc.h и system_stm32f3xx.h из CMSIS добавил, #include "stm32f3xx.h" в main.c прописал, #define STM32F303xC в этом файле раскомментировал. И вот ХЗ, подключил я заголовочный файл в этой куче хрен знает чего или нет. Хрен знает чего навертели, да еще в самом IAR нихрена нет нужного, все приходится откуда-то скачивать да устанавливать, подключать-переподключать, да с непонятным результатом. Пойди, разбери чего и откуда еще нужно скачать и чего куда добавить. Теперь я понимаю, почему STM32 такие дешевые... Телушка - полушка, да рубль перевоз.
Астролябия-сама меряет, было бы что мерять!!!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Asmodey писал(а): Теперь я понимаю, почему STM32 такие дешевые
Дело не в STM32, а в прокладке между стулом и монитором.
Если вы не понимаете что делаете, какой результат ожидаете?
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Избаловали народ кортексами. Раньше берёшь ARM, даташит на него и первым делом flashloader на внешнюю флэшку пишешь. Сейчас большинство и не знает что это такое. Заголовочный файл им трудно подключить :)
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3883980#p3883980"]Его не надо "цеплять к проектам". Он есть в системных заголовочных файлах любого компилятора. Он, кстати, в CMSIS подключается. Если в проекте подключен заголовочный файл микроконтроллера, то stdint.h автоматом подключен.[/uquote]
Я всегда полагал, что стандартные типы в Си не требуют ПЕРЕОПРЕДЕЛЕНИЯ. То есть отыскать на них typedef невозможно ни в каких хедерах, даже в тех, которые СРЕДА (а не компилятор) вставляет в проект автоматически.
А все (u)intx_t примитивно ПЕРЕОПРЕДЕЛЕНЫ (о чем кагбэ намекаэ буква t после подчеркивания) с целью ликвидации зависимости стандартных типов от разрядности платформы и произвола писателей компиляторов.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 6749
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

Поневоле позавидуешь тем, кто писал в шестнадцатеричных кодах в тетрадях в клеточку... У них хотя бы головы не болели за кучи мусора, которые нужно найти, скачать, подключить только для того, чтобы тактовый генератор настроить...
Астролябия-сама меряет, было бы что мерять!!!
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3884137#p3884137"]А все (u)intx_t примитивно ПЕРЕОПРЕДЕЛЕНЫ (о чем кагбэ намекаэ буква t после подчеркивания)[/uquote]
Буква t после подчеркивания может вводить в заблуждение т.к., например, в C++ есть char8_t который ничем не отличается от unsigned char кроме того, что это отдельный тип :)
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

90% стандартных "плюшек" C/C++ требуют подключения какого-либо заголовочного файла. Так язык устроен. От этого они не перестают быть частью стандарта. Повторюсь, intX_t типы являются стандартными уже больше 20 лет со времён С99.
Это не хвост, это антенна
Сообщения: 1339
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

А все (u)intx_t примитивно ПЕРЕОПРЕДЕЛЕНЫ (о чем кагбэ намекаэ буква t после подчеркивания) с целью ликвидации зависимости стандартных типов от разрядности платформы и произвола писателей компиляторов.
Вы описание языка Си читали, а? Судя по словоблудию, которое тут развели, нет.
Типы потому и называются стандартными, что их размеры стандартизованы на всех платформах и компиляторах:

short - всегда 16 бит;
long - всегда 32 бита;
char - всегда 8 бит.

Размер int выбирается из соображений эффективности и удобства. Меньше 16 бит не встречал ни разу.
Для char не регламентирована его "знаковость", поэтому все (известные мне) компиляторы имеют опцию, указывающую как трактовать char.
VladislavS не сказал, что помимо XintY_t определяются их fast_ разновидности. И тогда наличие XintY_t становится логичным. Думаю, что XintY_t были сделаны для бОльшей мобильности программ, ведь существуют (существовали?) процессоры с разрядностью 18, 24 и 36 бит.
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Я и про uint_least8_t ничего не писал. Хомячкам это вредно знать.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

tonyk писал(а):short - всегда 16 бит;
long - всегда 32 бита;
char - всегда 8 бит.
имхо, не всегда.
Минимальный размер для char — 8 бит, для short и int — 16 бит, для long — 32 бита, для long long — 64 бита.

Желательно, чтобы тип int был таким целочисленным типом, с которым наиболее эффективно работает процессор. Это позволяет достигать высокой гибкости, например, все типы могут занимать 64 бита. Однако, есть популярные схемы, описывающие размеры целочисленных типов.[7]

На практике это означает, что char занимает 8 бит, а short 16 бит (также, как и их беззнаковые аналоги). int на большинстве современных платформ занимает 32 бита, а long long 64 бита. Длина long варьируется: для Windows это 32 бита, для UNIX-подобных систем — 64 бита.
чтобы вот эту мешанину систематизировать, все эти самые xxxx_t и были введены.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Сообщения: 1339
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Может, это закроет вопрос?
https://ru.wikipedia.org/wiki/Stdint.h

Добавлено after 2 minutes 45 seconds:
имхо, не всегда.
Ключевое слово "имхо". Повторяю, всегда. Читайте стандарт.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

tonyk писал(а):Читайте стандарт
вы сначала его тут выложите, а то ищешь стандарт, а находишь всегда его толкования.
по поводу стандартов тут баталии были ого-го какие! и про long я тоже думал, что он 32 бита всегда...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Сообщения: 1339
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

[uquote="ARV",url="/forum/viewtopic.php?p=3884229#p3884229"]
tonyk писал(а):Читайте стандарт
вы сначала его тут выложите, а то ищешь стандарт, а находишь всегда его толкования.
по поводу стандартов тут баталии были ого-го какие! и про long я тоже думал, что он 32 бита всегда...[/uquote]
А в чём проблема скачать? Или кого-то в Гугле забанили?
Вложения
Iso_C_1999_definition.pdf
(1.04 МБ) 220 скачиваний
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Сообщения: 1339
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

У-у-у-у, как всё запущено.. Читать даже не умеем. Детский сад, младшая группа.
Страница 21.
Друг Кота
Аватара пользователя
Сообщения: 6749
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3884211#p3884211"]90% стандартных "плюшек" C/C++ требуют подключения какого-либо заголовочного файла. Так язык устроен.[/uquote]Я не о C/C++, а про подключение заголовочного файла через задний проход. Нужно добавить черти знает какой файл в проект, найти в нем строчку с названием своего микроконтроллера, и раскомментировать ее подключив файл для микроконтроллера похожего на используемый микроконтроллер... Это при том, что при создании проекта мы конкретно указываем свой МК в свойствах проекта. Нет, я все понимаю, IDE писалась еще тогда, когда данного МК еще в помине не было, отсюда и костыли. Но, можно же было предусмотреть. А если неможно, то переписать IDE так, чтобы можно было. IAR мне нравится, но вот создание проекта через правку вереницы файлов как-то напрягает.
Астролябия-сама меряет, было бы что мерять!!!
Это не хвост, это антенна
Сообщения: 1339
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Нужно добавить черти знает какой файл в проект, найти в нем строчку с названием своего микроконтроллера, и раскомментировать ее подключив файл для микроконтроллера похожего на используемый микроконтроллер...
Тут не детский сад, а форменные ясли!
Документацию читать не пробовали? Как можно вообще за что-то браться, не прочитав базовых вещей в виде стандарта на используемый язык и Руководств на используемые библиотеки? Впрочем, догадываюсь за что, не буду писать слово "мир" с тремя ошибками. Тут что, общаются забаненые во всех поисковых системах?!
Друг Кота
Аватара пользователя
Сообщения: 6749
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="tonyk",url="/forum/viewtopic.php?p=3884253#p3884253"]Тут не детский сад, а форменные ясли![/uquote]
Ага, читаем и нихрена не понимаем. Классика.
Астролябия-сама меряет, было бы что мерять!!!
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3884246#p3884246"]Я не о C/C++, а про подключение заголовочного файла через задний проход. Нужно добавить черти знает какой файл в проект, найти в нем строчку с названием своего микроконтроллера, и раскомментировать ее подключив файл для микроконтроллера похожего на используемый микроконтроллер...[/uquote]Ну что за бред? Всего один заголовочный файл для микроконтроллера надо подключить. И поставить галочку Use CMSIS (по умолчанию она стоит) в настройках проекта IAR. И всё.

Чтобы инициализировать тактовый надо один include и семь команд.

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

#include "stm32f303xc.h"

int main()
{
  FLASH->ACR = FLASH_ACR_PRFTBE | _VAL2FLD(FLASH_ACR_LATENCY,2);
  RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16)
          | RCC_CR_HSION
          | RCC_CR_HSEON; //Включим HSE
  while(!(RCC->CR & RCC_CR_HSERDY));
  RCC->CFGR = RCC_CFGR_MCO_NOCLOCK
            | RCC_CFGR_I2SSRC_SYSCLK
            | RCC_CFGR_USBPRE_DIV1_5
            | RCC_CFGR_PLLMUL9
            //|  RCC_CFGR_PLLXTPRE_HSE_PREDIV_DIV2 //Раскомментировать для кварца 16 МГц
            |  RCC_CFGR_PLLSRC_HSE_PREDIV
            | RCC_CFGR_PPRE2_DIV1
            | RCC_CFGR_PPRE1_DIV2
            | RCC_CFGR_HPRE_DIV1
            | RCC_CFGR_SW_HSE;
  RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16)
          | RCC_CR_PLLON //Включим PLL
          | RCC_CR_HSEON
          | RCC_CR_HSI;
  while(!(RCC->CR & RCC_CR_PLLRDY));
  RCC->CFGR = RCC_CFGR_MCO_PLL
            | RCC_CFGR_I2SSRC_SYSCLK
            | RCC_CFGR_USBPRE_DIV1_5
            | RCC_CFGR_PLLMUL9
            // | RCC_CFGR_PLLXTPRE_HSE_PREDIV_DIV2 //Раскомментировать для кварца 16 МГц
            | RCC_CFGR_PLLSRC_HSE_PREDIV
            | RCC_CFGR_PPRE2_DIV1
            | RCC_CFGR_PPRE1_DIV2
            | RCC_CFGR_HPRE_DIV1
            | RCC_CFGR_SW_PLL;
  for(;;);
}
Не ясли, а грудничковое отделение какое-то.

ЗЫ: Про функцию __low_level_init() даже упоминать боюсь, это же опять ЧИТАТЬ документацию надо будет.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

tonyk писал(а):Страница 21.
на этой странице нет ни слова о размерности long и любых иных типов.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

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