|
|
  |
Перешел на STM, какой инструментарий? |
|
|
|
Mar 9 2016, 20:48
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата нет ли бесплатного софта для STM32 без макросов с самым очевидным вариантом доступа к регистрам и портам мк, например gcc. Голый. Вообще без библиотек.
|
|
|
|
|
Mar 10 2016, 03:56
|
Группа: Участник
Сообщений: 7
Регистрация: 10-09-13
Пользователь №: 78 254

|
Цитата(arhiv6 @ Feb 25 2016, 15:42)  m.c.t.Maks, а Em.Bitz под Linux есть или оно Windows-only? к сожалению нет, пробовал запускать под WINE. код писать можно, компилить тоже, но не запускается отладка (не запускается gdb сервер).
|
|
|
|
|
Mar 10 2016, 04:40
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(addi II @ Mar 9 2016, 23:18)  с самым очевидным вариантом доступа к регистрам и портам мк, например DDRA = 0x01020304 , PORTA = 0x01020304 Заранее благодарен! У STM32 в разы больше регистров порта чем было у AVR. Что бы всё помнить, ума нужно больше. Поэтому ПО и снабжается дополнительными оболочками в виде библиотек с макросами. "раньше у меня были волокуши, и для их ремонта мне хватало молотка и гвоздодёра. Теперь решил купить машину, но обнаружил, что инструментов для её обслуживания нужно на много больше. Подскажите такую марку машины, для обслуживания которой будет хватать тех инструментов, к которым я привык"
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Mar 10 2016, 10:49
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(addi II @ Feb 25 2016, 00:37)  а родного от стм нет?, или гнутого для стм? Есть Ac6, ака OpenSTM32 на сайте STM. Eclipse+GCC+GDB Практически все работает "искаропки", за небольшими исключениямиКстати, есть версия для Linux и Mac Времена меняются, корпорации поворачиваются к разработчикам лицом (а не чем было до этого)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Mar 14 2016, 05:57
|
Местный
  
Группа: Участник
Сообщений: 277
Регистрация: 1-02-16
Пользователь №: 90 294

|
Цитата(MrYuran @ Mar 10 2016, 11:49)  Есть Ac6, ака OpenSTM32 на сайте STM. Eclipse+GCC+GDB Практически все работает "искаропки", за небольшими исключениямиКстати, есть версия для Linux и Mac Времена меняются, корпорации поворачиваются к разработчикам лицом (а не чем было до этого) Спасибо большое! Похоже то что надо, создал проект без библиотек но в проекте не нашел никаких заголовочных файлов?((( Рис в приложении Цитата(uriy @ Mar 10 2016, 06:08)  А что вам мешает в кококс писать прямо в регистры без макросов? Вы имеете ввиду с помощью указателей на физ адрес?
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 15 2016, 12:34
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(addi II @ Mar 14 2016, 11:57)  Похоже то что надо, создал проект без библиотек но в проекте не нашел никаких заголовочных файлов?((( И в чём проблема? Открываете даташит на свой МК и пишете эти самые заголовочные файлы. Вот пример моего файла описания периферии для Tiva (фрагмент файла): CODE //CSL for Tiva MCU (TM4C129xxx). #ifndef CSL_H #define CSL_H
#ifndef ASMDEF
#define HWREG_MAP(id) __no_init __root __absolute HwRegs##id
//GPIO typedef struct { u32 DATA[256]; //Data u32 DIR; //Direction u32 IS; //Interrupt Sense u32 IBE; //Interrupt Both Edges u32 IEV; //Interrupt Event u32 IM; //Interrupt Mask u32 RIS; //Raw Interrupt Status u32 MIS; //Masked Interrupt Status u32 ICR; //Interrupt Clear u32 AFSEL; //Alternate Function Select u32 unuse0[55]; union { struct { u32 DR2R; //2-mA Drive Select u32 DR4R; //4-mA Drive Select u32 DR8R; //8-mA Drive Select }; u32 DRxR[3]; }; u32 ODR; //Open Drain Select u32 PUR; //Pull-Up Select u32 PDR; //Pull-Down Select u32 SLR; //Slew Rate Control Select u32 DEN; //Digital Enable u32 LOCK; //Lock u32 CR; //Commit u32 AMSEL; //Analog Mode Select u32 PCTL; //Port Control u32 ADCCTL; //ADC Control u32 DMACTL; //DMA Control u32 SI; //Select Interrupt u32 DR12R; //12-mA Drive Select u32 WAKEPEN; //Wake Pin Enable u32 WAKELVL; //Wake Level u32 WAKESTAT; //Wake Status u32 unuse1[669]; u32 PP; //Peripheral Property u32 PC; //Peripheral Configuration u32 unuse2[2]; u32 PeriphID[8]; //Peripheral Identification (4-7, 0, 1-3) u32 CellID0[4]; //PrimeCell Identification } HwRegsGPIO;
...
#ifdef SHARE_C #define EXTERN #else #define EXTERN extern #endif
/***************************************************************************** * REGISTERS MEMORY MAP ****************************************************************************/ EXTERN volatile HWREG_MAP(GPIO) GPIO[15] @ 0x40058000; //привязка к физ.адресам для линкера
...
#undef EXTERN #endif //ASMDEF Дальше там описать всю остальную необходимую периферию, вектора прерываний, биты регистров периферии (по желанию) и т.п. по вкусу.
|
|
|
|
|
Mar 15 2016, 12:38
|
Местный
  
Группа: Участник
Сообщений: 277
Регистрация: 1-02-16
Пользователь №: 90 294

|
Цитата(jcxz @ Mar 15 2016, 13:34)  И в чём проблема? Открываете даташит на свой МК и пишете эти самые заголовочные файлы. не пойму тогда за что хвалят STM, когда как даже заголовочных файлов никакой бесплатный сапр не поставляет?
|
|
|
|
|
Mar 15 2016, 12:55
|
Местный
  
Группа: Участник
Сообщений: 277
Регистрация: 1-02-16
Пользователь №: 90 294

|
Цитата(jcxz @ Mar 15 2016, 13:42)  Скачайте к примеру IAR. Там полно хидеров для разных МК. Но если даташит читать не научитесь, делать в ARM-ах Вам нечего... Готовые хидеры не освобождают от прочтения даташитов на МК, как думают некоторые недалёкие чайники. А написание своих хидеров, позволяет по ходу дела изучить необходимую периферию. интересно чем так сильно вас арм превознес, пара доп регисторов управления периферией?
|
|
|
|
|
Mar 15 2016, 17:25
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Ээээ, стоп! Чего это вы парня то так пугаете? Конечно тут все не так автоматизировано как в Atmel studio но и никто целиком все хидеры по даташитам писать не заставляет(вообще не знаю кто это делает в своих проектах)! Во-первых, для всех ARM Cortex есть некий стандартный набор хидеров, называемый CMSIS. Продвигает это дело сам ARM! http://www.arm.com/products/processors/cor...ce-standard.phpТ.е. существует CMSIS для STM32, который фирма ST допилила немножечко, чтобы там были все регистры. Вот об этом на русском. http://bovs.org/post/89/%D0%A0%D0%B0%D0%B7...%BC%D0%B5%D1%80Но CMSIS это в основномтолько определения регистров и битов разных + простецкие макросы. Далее дя STM32 вы можете воспользоваться, на выбор, несколькими библиотеками HAL: HAL будет состоять из CMSIS плюс готовые драйверы. Например драйвер UART или USB. Или GPIO.. и т.д... Вы,например, сможите не вникая в регистры открыть порт, указать его скорость и принимать отправлять данные. Тут у вас 2 варианта(как минимум) 1. STM32Cube http://www.st.com/stm32cube-pr1Это HAL от ST. Не очень оптимизирован, не очень качественно написан...В основном нацелен на быстрое создание чего-то работающего, без претензий на оптимальность, скорость или экономию ресурсов контроллера. Тем не менее это работает. Вполне себе работат.... Для каждого семейства процов тут предлагается CubeF1 F2 F3 F4 и т.д. Есть также программка CubeMX, где вы тупо мышкой выбираете переферию которую хотите использовать, видете сразу пины процессора которые будут заняты, переназначаете их если надо и по нажатию кнопки у вас готовый проект с неким минимально работающим примером. Понтяно, что там используется HAL Сube. 2. OpenSource вариант libopencm3 http://www.libopencm3.org/wiki/Main_PageВсе то-же самое но написано в немного в более толковом виде. Пока не пробовал. Говорят годно. Не знаю на сколько это хороший вариант для новичка. Все-таки под Cube примеры и все дела.... 3. Ах да, был еще у ST до Cube вариант standard peripheral library(SPL) в целом там все вроде как еще было чуть более толково, чем в Cube, но этот вариант уже устаревший и рассматривать его наверно не стоит. Вам тут конечно насоветовали хороших вариантов разных IDE, все они выполняют свою функцию, но для совсем новичка я бы посоветовал что-нибудь с хорошей готовностью из коробки. Например KEIL 5. Да, это будет вариант "для ознакомления", придется поискать в интернете ознакомлялки ) Это будет не легально и не очень лицензионно, но для начала удобно)))))))))) Тот-же CubeMX создает в один клик проекты для KEIL, которые сразу откомпилятся и будут работать. В комплекте с платами STM Discovery идут примеры(они кстати входят в Cube) которые в том числе имеют проекты для KEIL которые опять же просто компилятся и работют. Успехов! В Интернете куча статей по осваиванию STM32!
--------------------
The truth is out there...
|
|
|
|
|
Mar 16 2016, 08:10
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315

|
Цитата Это будет не легально и не очень лицензионно Есть демоверсия - для ознакомления (со средой или МК) вполне легально.
--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
|
|
|
|
|
Mar 16 2016, 08:57
|
Местный
  
Группа: Участник
Сообщений: 277
Регистрация: 1-02-16
Пользователь №: 90 294

|
Цитата(sigmaN @ Mar 15 2016, 18:25)  Ээээ, стоп! Чего это вы парня то так пугаете? Конечно тут все не так автоматизировано как в Atmel studio но и никто целиком все хидеры по даташитам писать не заставляет(вообще не знаю кто это делает в своих проектах)! Во-первых, для всех ARM Cortex есть некий стандартный набор хидеров, называемый CMSIS. Продвигает это дело сам ARM! http://www.arm.com/products/processors/cor...ce-standard.phpТ.е. существует CMSIS для STM32, который фирма ST допилила немножечко, чтобы там были все регистры. Вот об этом на русском. http://bovs.org/post/89/%D0%A0%D0%B0%D0%B7...%BC%D0%B5%D1%80Но CMSIS это в основномтолько определения регистров и битов разных + простецкие макросы. Далее дя STM32 вы можете воспользоваться, на выбор, несколькими библиотеками HAL: HAL будет состоять из CMSIS плюс готовые драйверы. Например драйвер UART или USB. Или GPIO.. и т.д... Вы,например, сможите не вникая в регистры открыть порт, указать его скорость и принимать отправлять данные. Тут у вас 2 варианта(как минимум) 1. STM32Cube http://www.st.com/stm32cube-pr1Это HAL от ST. Не очень оптимизирован, не очень качественно написан...В основном нацелен на быстрое создание чего-то работающего, без претензий на оптимальность, скорость или экономию ресурсов контроллера. Тем не менее это работает. Вполне себе работат.... Для каждого семейства процов тут предлагается CubeF1 F2 F3 F4 и т.д. Есть также программка CubeMX, где вы тупо мышкой выбираете переферию которую хотите использовать, видете сразу пины процессора которые будут заняты, переназначаете их если надо и по нажатию кнопки у вас готовый проект с неким минимально работающим примером. Понтяно, что там используется HAL Сube. 2. OpenSource вариант libopencm3 http://www.libopencm3.org/wiki/Main_PageВсе то-же самое но написано в немного в более толковом виде. Пока не пробовал. Говорят годно. Не знаю на сколько это хороший вариант для новичка. Все-таки под Cube примеры и все дела.... 3. Ах да, был еще у ST до Cube вариант standard peripheral library(SPL) в целом там все вроде как еще было чуть более толково, чем в Cube, но этот вариант уже устаревший и рассматривать его наверно не стоит. Вам тут конечно насоветовали хороших вариантов разных IDE, все они выполняют свою функцию, но для совсем новичка я бы посоветовал что-нибудь с хорошей готовностью из коробки. Например KEIL 5. Да, это будет вариант "для ознакомления", придется поискать в интернете ознакомлялки ) Это будет не легально и не очень лицензионно, но для начала удобно)))))))))) Тот-же CubeMX создает в один клик проекты для KEIL, которые сразу откомпилятся и будут работать. В комплекте с платами STM Discovery идут примеры(они кстати входят в Cube) которые в том числе имеют проекты для KEIL которые опять же просто компилятся и работют. Успехов! В Интернете куча статей по осваиванию STM32! Большое спасибо за такую подробную полезную информацию!, в таких делях и крылся ответ на мой вопрос)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|