Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перешел на STM
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
addi II
Здравствуйте!

Перешел на STM с AVR, есть плата STM3210E-EVAL, подскажите пожалуйста какая IDE актуальна и где ее достать?
demiurg_spb
бесплатно: eclipse, qt-creator, coocox
возмездно: keil, iar...
addi II
Цитата(demiurg_spb @ Feb 24 2016, 18:18) *
бесплатно: eclipse, qt-creator, coocox
возмездно: keil, iar...

а родного от стм нет?, или гнутого для стм?
Эдди
Цитата
гнутого

Есть gcc + libopencm3. Прошивать в зависимости от нужд: либо stm32flash, либо st-link
barabek
Пробовал и эклипс и кокос. Но больше из бесплатного мне понравился embloks. Субъективно
rat
Не поделитесь содержимым диска STM3210E-EVAL?
sherr
Цитата(addi II @ Feb 25 2016, 00:37) *
а родного от стм нет?, или гнутого для стм?

A System Workbench for STM32 чем не угодил ? Тот же Eclipse + GCC + OpenOCD и допилено под STM32...
Windows, Linux, MacOS - всё ставится из коробки, отладка у меня завелась практически сразу.
addi II
к сожалению диска в коробке не нашел....
m.c.t.Maks
Цитата(sherr @ Feb 25 2016, 08:22) *
A System Workbench for STM32 чем не угодил ? Тот же Eclipse + GCC + OpenOCD и допилено под STM32...
Windows, Linux, MacOS - всё ставится из коробки, отладка у меня завелась практически сразу.


А по поводу отладки подробнее не расскажите? Какие есть возможности у SW (она же AC6)?

Em.Bitz (продолжение развития Em.Blocks) умеет:
- обновлять переменные в окне watch;
- показывает содержимое памяти статично или динамическое обновление;
- умеет принимать сообщения для вывода в консольку (semihosting);
addi II
Цитата(sherr @ Feb 25 2016, 05:22) *
A System Workbench for STM32 чем не угодил ? Тот же Eclipse + GCC + OpenOCD и допилено под STM32...
Windows, Linux, MacOS - всё ставится из коробки, отладка у меня завелась практически сразу.

непосдкажите где воркбенч и эклипс взять попробовать посмотреть в чем будет удобно для быстрого старта?
Cпасибо!
arhiv6
m.c.t.Maks, а Em.Bitz под Linux есть или оно Windows-only?
uriy
System Workbench можно скачать тут http://www.openstm32.org/System+Workbench+for+STM32
У меня не работает отладка под win8.1 64 bit. У других работает?
Сергей Борщ
Цитата(addi II @ Feb 25 2016, 13:33) *
непосдкажите где воркбенч и эклипс взять попробовать
Это издевательство такое? раз два
addi II
Цитата(uriy @ Feb 25 2016, 14:10) *
System Workbench можно скачать тут http://www.openstm32.org/System+Workbench+for+STM32
У меня не работает отладка под win8.1 64 bit. У других работает?

Большое спасибо!
addi II
Цитата(addi II @ Feb 25 2016, 14:35) *
Большое спасибо!

Думал перейти на кукокс, а оказалось не все так удобно как хотелось в плане доступа к ригистрам мк
Я привык к иару или аврстудии, но здесь макросы только усложняют программирование
Подскажите пож-та нет ли бесплатного софта для STM32 без макросов с самым очевидным вариантом доступа к регистрам и портам мк, например
DDRA = 0x01020304 , PORTA = 0x01020304

Заранее благодарен!
Эдди
Цитата
нет ли бесплатного софта для STM32 без макросов с самым очевидным вариантом доступа к регистрам и портам мк, например

gcc. Голый. Вообще без библиотек.
m.c.t.Maks
Цитата(arhiv6 @ Feb 25 2016, 15:42) *
m.c.t.Maks, а Em.Bitz под Linux есть или оно Windows-only?


к сожалению нет, пробовал запускать под WINE. код писать можно, компилить тоже, но не запускается отладка (не запускается gdb сервер).
MiklPolikov
Цитата(addi II @ Mar 9 2016, 23:18) *
с самым очевидным вариантом доступа к регистрам и портам мк, например
DDRA = 0x01020304 , PORTA = 0x01020304
Заранее благодарен!


У STM32 в разы больше регистров порта чем было у AVR. Что бы всё помнить, ума нужно больше. Поэтому ПО и снабжается дополнительными оболочками в виде библиотек с макросами.

"раньше у меня были волокуши, и для их ремонта мне хватало молотка и гвоздодёра. Теперь решил купить машину, но обнаружил, что инструментов для её обслуживания нужно на много больше. Подскажите такую марку машины, для обслуживания которой будет хватать тех инструментов, к которым я привык"
uriy
Цитата
Подскажите пож-та нет ли бесплатного софта для STM32 без макросов с самым очевидным вариантом доступа к регистрам и портам мк, например
DDRA = 0x01020304 , PORTA = 0x01020304
А что вам мешает в кококс писать прямо в регистры без макросов?
x893
Команд таких нет у процессора Cortex что бы по адресу записывать.
Через регистры это делается.
MrYuran
Цитата(addi II @ Feb 25 2016, 00:37) *
а родного от стм нет?, или гнутого для стм?

Есть Ac6, ака OpenSTM32 на сайте STM.
Eclipse+GCC+GDB
Практически все работает "искаропки", за небольшими исключениями

Кстати, есть версия для Linux и Mac

Времена меняются, корпорации поворачиваются к разработчикам лицом (а не чем было до этого)
addi II
Цитата(MrYuran @ Mar 10 2016, 11:49) *
Есть Ac6, ака OpenSTM32 на сайте STM.
Eclipse+GCC+GDB
Практически все работает "искаропки", за небольшими исключениями

Кстати, есть версия для Linux и Mac

Времена меняются, корпорации поворачиваются к разработчикам лицом (а не чем было до этого)


Спасибо большое!

Похоже то что надо, создал проект без библиотек но в проекте не нашел никаких заголовочных файлов?(((
Рис в приложении

Цитата(uriy @ Mar 10 2016, 06:08) *
А что вам мешает в кококс писать прямо в регистры без макросов?

Вы имеете ввиду с помощью указателей на физ адрес?
addi II

pls help!
jcxz
Цитата(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

Дальше там описать всю остальную необходимую периферию, вектора прерываний, биты регистров периферии (по желанию) и т.п. по вкусу.
addi II
Цитата(jcxz @ Mar 15 2016, 13:34) *
И в чём проблема? Открываете даташит на свой МК и пишете эти самые заголовочные файлы.

не пойму тогда за что хвалят STM, когда как даже заголовочных файлов никакой бесплатный сапр не поставляет?
jcxz
Цитата(addi II @ Mar 15 2016, 18:38) *
не пойму тогда за что хвалят STM, когда как даже заголовочных файлов никакой бесплатный сапр не поставляет?

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

интересно чем так сильно вас арм превознес, пара доп регисторов управления периферией?
sigmaN
Ээээ, стоп!
Чего это вы парня то так пугаете? Конечно тут все не так автоматизировано как в 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!
редактор
Цитата
Это будет не легально и не очень лицензионно

Есть демоверсия - для ознакомления (со средой или МК) вполне легально.
addi II
Цитата(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!


Большое спасибо за такую подробную полезную информацию!, в таких делях и крылся ответ на мой вопрос)
ViKo
Цитата(редактор @ Mar 16 2016, 11:10) *
Есть демоверсия - для ознакомления (со средой или МК) вполне легально.

Есть не только демо, но и вполне нормальная бесплатная версия, для простых семейств STM32.
http://www2.keil.com/stmicroelectronics-stm32/mdk
MrYuran
Цитата(addi II @ Mar 15 2016, 15:38) *
не пойму тогда за что хвалят STM, когда как даже заголовочных файлов никакой бесплатный сапр не поставляет?

Все поставляет.
При создании проекта надо было поставить галочку на SPL или CubeMX, а по умолчанию Empty NoFirmware.
Плюс, может библиотечные папки в проект встроить, а может рядом снаружи положить.

Мне наоборот понравилось. Все, что нужно, есть, а что не нужно, не сломали.

Хотя, все то же самое можно сделать за пару часов из обычного эклипса по инструкции 10-летней давности.
Заодно для общего развития полезно.
Равно как и ручное написание makefile

Нажмите для просмотра прикрепленного файла

Ух ты, там вон ещё чего sm.gif
сам первый раз увидел.
Mikl Scherbak
Цитата(MrYuran @ Mar 16 2016, 14:13) *
Ух ты, там вон ещё чего sm.gif
сам первый раз увидел.

А где это?
AleksBak
Цитата(MrYuran @ Mar 16 2016, 16:13) *
...
Ух ты, там вон ещё чего sm.gif
сам первый раз увидел.

А что Вы нашли я так и не понял? А я как плагин к "чистой" эклипсе использую. У них (Ас6) в принципе она и есть "чистая" эклипса, но Luna, а я на Mars приспособил плагин (и некоторые др. тоже).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.