Coocox coide 1.7.8 [2015, среда программирования микроконтроллеров arm]

Содержание

WebcamMax 7.2.8.8 Portable [2011, Работа с веб-камерой]

Год выпуска: 2011Жанр: Работа с веб-камеройРазработчик: WebcamMaxСайт разработчика: http://www.webcammax.com/Язык интерфейса: Мультиязычный (русский присутствует)Тип сборки: PortableРазрядность: 32/64-bitОперационная система: Windows 2000, XP, Vista, 7 Описание: WebcamMax — продвинутая утилита для работы с веб-камерой. Программа, добавляющая изумительные видеоэффекты на все вебкамеры, даже без реальной камеры. Программу можно использовать по умолчанию в таких приложениях, как ICQ, AIM, MSN, Camfrog, Skype, Paltalk, Yahoo, ANYwebcam, Stickam. Можно настроить WebcamMax Full так, чтобы он …

Программы / Интернет и сети / Разное (RSS, ТВ, радио и др)
Подробнее  

Власний скрипт лінкера

  • Вимикаю «Use memory layout from main window», тисну «Edit». 
  • Копіюю отриманий файл в директорію проекту (наприклад, ./app, де лежать *.c та *.cpp файли).
  • Натискаю три крапочки, ліворуч від Edit, щоб обрати саме цей файл. 
  • Додаю його до проекту. (При тому воно каже, що файл вже існує, питається, чи його перезаписати. Підтверджую. Здається, воно копіює із згаданої директорії в c:/users, але без попереднього кроку іноді себе дивно веде.) Потрібно це, щоб після зміни цього файлу відбувалася перекомпіляція. 
  • І ось тут стає зовсім весело. В більшості випадків (!бета, блін!), Configuration зразу забуває всі зміни. Закриваєш вкладку, відкриваєш — все по старому. Після багатьох спроб дійти толку з GUI, змушений був редагувати файл проекту вручну. Закриваємо CoIDE 2, відкриваємо в текстовому редакторі <projectname>\<projectname>.coproj, робимо у ньому наступне (вказую лише змінені рядки, шукати їх можна по значенню поля name): 

Программирование STM32. Настройка Coocox IDE + STM32CubeMX

Всем привет, сегодня расскажу, как настроить среду разработки coocox ide и программу для инициализации различной периферии микроконтроллера STM32CubeMX для совместной работы.

Перед началом работы необходимо установить:

Давайте приступим к настройке. Первым делом создадим пустой проект в CoIDE

Выбираем нужный микроконтроллер

Далее нужно указать папку,в которой будет создан проект. Желательно, чтобы в пути к файлам проекта не было русских символов. Иначе могут возникнуть различные проблемы при работе с проектом, например, проект не будет компилироваться не выдавая при этом никаких ошибок.

В результате получим пустой проект, в котором будет один только файл main.c

На самом деле файл main.c нам не нужен, его нам создаст STM32CubeMX, так что текущий файл просто удаляем из проекта.

Теперь временно свернем окно Coocox IDE и запустим программу STM32CubeMX. Нажмем New Project

Теперь создаём нужную конфигурацию проекта. Для начала помигаем встроенным светодиодом. Для этого устанавливаем PC13 как OUTPUT и на вкладке Pinout в разделе SYS включаем отладку Debug -> Serial Wire

Перейдём на страницу настроек Project->Setting s. Зададим имя проекта такое же, как мы задали в Coocox IDE. И в Project Location зададим папку, в которой находится проект

Toolchain/ IDE выбираем SW4STM32. Нажимаем Ok

Теперь нажимаем Project->Generat e code. Проект генерируется некоторое время. По окончании нажимаем Open Folder. Как видим, к нашему проекту добавились папки Drivers, Inc, Src.

Их необходимо добавить к проекту CoocoxIDE простым перетаскиванием

Теперь если попробовать скомпилировать проект, то мы получим ошибку

D:\workspace\Bli nkProject\Driver s\CMSIS\Device\S T\STM32F1xx\Incl ude/stm32f1xx.h: 159:3: error: #error «Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)»

Эта ошибка говорит нам о том, что не выбран тип микроконтроллера в файле stm32f1xx.h.

Откроем его и посмотрим содержимое

Для нашего микроконтроллера необходимо выбрать STM32F103xB

Откроем конфигурацию проекта View->Configuration и в поле Defined Symbols добавим нашу константу STM32F103xB. Нажимаем Add

Теперь при попытке собрать проект получаем следующую ошибку

collect2.exe: error: ld returned 1 exit status

Это ошибка линкера, так что переходим View->Configuration->Linker и выключаем флажок Use Memory Layout from Memory Window

Внизу страницы выбираем Scatter файл, который уже создан в папке нашего проекта. Workspace/BlinkProject/STM32F103C8Tx_FLASH.ld

Теперь при нажатии кнопки Build наш проект успешно компилируется и собирается.

Попробуем записать наш файл в микроконтроллер. Нажимаем Download code to Flash. У меня выскакивает ошибка

Error: Failed to open flash driver file

Переходим на вкладку View->Configuration->Download и видим, что в поле Programming Algoritm путь к файлу содержит русские символы

Я просто перенесу нужный файл в другую папку и добавлю новый путь к этому файлу.

Теперь прошивка заливается в микроконтроллер.

Давайте добавим код для моргания светодиодом в главный цикл while программы

Теперь светодиод моргает с интервалом в 100мс.

Запуск ThreadX на STM32

Для понимания зависимостей между компонентами Azure RTOS приводим соответствующий рисунок из документации:

Как видим, ThreadX является основой для всего остального. Ядро ThreadX обеспечивает многопоточность, переключение контекста, синхронизацию потоков. Поддерживаются таймеры, очереди сообщений, семафоры, мьютексы, флаги событий, пулы байтов и блоков (в каком-то смысле аналог кучи в C++, но с потокобезопасным управлением).

В практической части данной статьи мы будем рассматривать именно ThreadX, чтобы понять, с чего начать работу с ним. И хотя разработчики предоставляют большое количество примеров для готовых средств разработки, интерес представляет именно настройка «с нуля» на каком-то микроконтроллере, для которого нет примера, ведь к этому при разработке своего устройства мы рано или поздно придем.

Будем использовать относительно недорогую и популярную плату STM32F4Discovery, но весь процесс можно с успехом повторить на любом микроконтроллере, например, на сверхдешевом и доступном STM32F103C8T6.

STM32F4Discovery удобна тем, что уже имеет встроенный отладчик ST-Link, большое количество периферии для экспериментов, а все выводы микроконтроллера (STM32F407VGT6) выведены на контакты.

BleachBit 0.8.7-3.1 [2011, Очистка операционной системы] 32/64-bit

Год выпуска: 2011Жанр: Очистка системыРазработчик: Andrew ZiemСайт разработчика: http://bleachbit.sourceforge.net/Язык интерфейса: MLАрхитектура: 32/64Платформа: Ubuntu,Fedora,Mandriva,OpenSUSEФормат файла: .deb, .rpmСистемные требования: МинимальныеОписание: Это программное обеспечение, которое позволяет легко и быстро очистить Вашу операционную систему от скопившегося «мусора». Такого рода программное обеспечение, в первую очередь, необходимо для любителей устанавливать и удалять много различного программного обеспечения. Во время работы каждого пользователя накапливается много разл …

Обзор продуктовых линеек

STM32L

Семейство STM32 имеет широкий ассортимент изделий, различающихся по объему памяти, производительности, потреблению энергии и другим характеристикам.

Серии STM32F-1, STM32F-2 и STM32L полностью совместимы. Каждая из серий имеет десятки микросхем, которые можно без труда поменять на другие изделия. STM32F-1 была первой линейкой, ее производительность была ограничена. Из-за этого по характеристикам контроллеры быстро догнали изделия семейства Stellaris и LPC17. Позднее была выпущена STM32F-2 с улучшенными характеристиками – тактовая частота достигала 120 МГц. Отличается высокой процессорной мощностью, которая достигнута благодаря новой технологии производства 90 нм. Линейка STM32L представлена моделями, которые изготовлены по специальному технологическому процессу. Утечки транзисторов минимальны, благодаря чему приборы показывают лучшие значения.

Важно отметить, что контроллеры линейки STM32W не имеют pin-to-pin совместимости с STM32F-1, STM32F-2 и STM32L. Причина заключается в том, что линейку разрабатывала компания, которая предоставила радиочастотную часть

Это наложило ограничения на разработку для компании ST.

STM32F100R4

Микросхема STM32F100R4 имеет минимальный набор функций. Объем флэш памяти составляет 16 Кбайт, ОЗУ – 4 Кбайт, тактовая частота составляет 12 МГц. Если требуется более быстрое устройство с увеличенным объемом флэш-памяти до 128 Кбайт, подойдет STM32F101RB. USB интерфейс имеется у изделия STM32F103RE. Существует аналогичное устройство, но с более низким потреблением – это STM32L151RB.

Чем уникальна Azure RTOS

Исследование показывает, что данная ОС является одной из наиболее часто применяемых (более 6 миллионов инсталляций). В основном она используется в специализированном оборудовании, таком, как устройства беспроводной связи, принтеры, модемы, устройства хранения данных, медицинские устройства, интеллектуальные датчики.

Но помимо Azure RTOS, существует большое количество других ОС, выполняющих те же типовые функции. Естественно, возникает вопрос о том, какие уникальные возможности есть именно в этой ОС?

  • Малый размер. Минимальная система занимает 2 КБ ROM. Размер увеличивается автоматически по мере использования возможностей ОС.
  • Поддерживаются различные методы реализации многопоточности, как вытесняющая, так и кооперативная многопоточность.
  • Детерминированное время переключения контекста (меньше 100 циклов), быстрая загрузка (меньше 120 циклов), опциональная проверка ошибок, пикоядро без «слоев».
  • Поддержка большого количества микроконтоллеров и IDE для разработки.
  • Порог вытеснения (Preemption threshold) — порог вытеснения N означает, что данный поток может быть вытеснен только потоками с приоритетом выше N, т.е. от 0 до (N — 1) включительно, а потоки с приоритетом ниже N (т.е. больше N включительно) не могут вытеснять данный поток. Правильное использование данной возможности уменьшает количество переключений контекста, а также уменьшает время реакции на внешние события. Подробную информацию можно найти в статье.
  • Сцепление событий (Event chaining) — позволяет объединить несколько событий в единый сигнал синхронизации для потока, что позволяет синхронизироваться сразу по нескольким событиям, причем в разных комбинациях (И, ИЛИ).
  • Наследование приоритета (Priority inheritance) — позволяет избежать негативных последствий ситуации инверсии приоритетов. Описание ситуации инверсии приоритетов — тема для целой статьи, отдельно с данной проблемой многозадачных систем можно ознакомиться здесь.
  • Оптимизированная обработка прерываний от аппаратных таймеров;
  • Модули (Modules). ThreadX позволяет «обернуть» один или несколько потоков приложения в «модуль», который может быть динамически загружен и запущен на целевом устройстве. Модули позволяют производить обновление «в полях» с целью исправления ошибок. Также при помощи модулей можно разбить микропрограмму на сегменты и динамически определять набор выполняемых потоков, чтобы сэкономить память.
  • Встроенная трассировка событий и аналитика стека. Подбор размера стека потока является одной из самых важных задач при разработке с использованием ОС для микроконтроллера. Нельзя сделать слишком маленький стек, т.к. в отсутствие защиты памяти при переполнении стека — произойдет порча областей памяти других задач. Слишком большой стек также недопустим, т.к. приведет к излишнему расходованию памяти, а она ограничена.

Также рекомендуем интересное сравнение ThreadX с FreeRTOS от инженера, работающего с обеими ОС, а также .

Некоторые настройки IDE и параметры компилятора

Repository

View -> Repository

Здесь мы выбираем библиотеки, которые необходимы для нашего проекта. При этом IDE копирует в папку stm_lib вашего проекта нужные файлы.

Закладка Compile

в этой закладке устанавливаются ключи компилятора

Мы сюда еще будем возвращаться, а пока обратим внимание на поле Optimization. Это поле задает параметр оптимизации для компилятора

Об оптимизации будет отдельный разговор, пока Вам нужно усвоить, что оптимизация Optimizate Size (-Os) максимально уменьшает объем скомпилированных программ. Но при этом компилятор может выбросить (оптимизировать) некоторые операции, и программа может работать не так, как Вам бы хотелось. Поэтому, на первых этапах, я не рекомендую использовать этот метод оптимизации. Установите Optimizate (-O1).

Закладка Link

В этой закладке пока нас интересует только поле Library и Linked Libraries. Если Вы будете использовать стандартные библиотеки С, например библиотеку математических функций math Вам нужно будет выбрать «Use base C Library». Если этого не сделать, то компилятор выдаст ошибку.

Здесь указываются куда складывать скомпилированные файлы и в каких форматах.

Пока в ней мы ничего делать не будем.

Закладка Debugger

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

WebcamMax 7.8.7.6 RePack [2014, Работа с веб-камерой]

Год выпуска: 2014Жанр: Работа с веб-камеройРазработчик: COOLWAREMAXСайт разработчика: http://www.webcammax.com/Язык интерфейса: Мультиязычный (русский присутствует)Тип сборки: RePack by KpoJIuKРазрядность: 32/64-bitОперационная система: Windows 2000, XP, Vista, 7, 8, 8.1 Системные требования: Веб-камера ИнтернетОписание: WebcamMax — продвинутая утилита для работы с веб-камерой. Программа, добавляющая изумительные видеоэффекты на все вебкамеры, даже без реальной камеры. Программу можно использовать по умолчанию в таких приложениях, как ICQ, AIM, MSN, Camfrog, Skype, Paltalk, Yahoo, ANY …

Что происходит в данном примере

Приведенное приложение — классический пример «лампочки и кнопочки» для RTOS. На плате распаяно 4 светодиода, и задача приложения — мигать ими, причем у каждого из них должна быть своя частота этого мигания. Без RTOS это сделать будет достаточно сложно и неудобно (UPD: см. комментарии).

Также на плате имеется кнопка, и ее мы используем для демонстрации обработки внешнего прерывания в RTOS. Очень плохой практикой является обработка непосредственно в обработчике прерывания (наша функция-callback HAL_GPIO_EXTI_Callback() выполняется непосредственно в контексте прерывания), поэтому в самом обработчике мы устанавливаем флаг соответствующего события. В дальнейшем по этому флагу оно будет обработано в потоке.

Обратите внимание, что задержки между включением и выключением светодиода, как таковой, в коде нет. Вместо этого соответствующее время поток ожидает события

Как только это событие происходит, все светодиоды гаснут (чтобы было видно, что происходит), а время задержки увеличивается в два раза. При следующем нажатии — возвращается к исходному.

Для каждого из четырех потоков используется один и тот же код потока (thread_entry), который на «вход» в качестве параметра получает индекс светодиода, а соответствующая информация (порт, вывод, время задержки, имя потока) будет получена потоком из соответствующей структуры BoardLedsSettings. Это очень удобно: нам не понадобилось писать по функции для каждого потока, вместо этого мы используем единую функцию, просто передавая ей параметр.

В RTOS для микроконтроллеров принято вручную выделять память для стека потока. В некоторых ОС это происходит неявно, но происходит всегда. Стек, как известно, используется для хранения локальных переменных и сохранения контекста при вызове вложенной функции

Важно подобрать размер стека так, чтобы не произошло его переполнение, как правило, это делается экспериментально при помощи средств аналитики стека. В нашем случае выбрано значение в 1 КБ исходя из опыта разработки

Выделенная область стека передается в функцию tx_thread_create() в виде указателя и размера области памяти в байтах

Обратите внимание, что в нашем примере достаточно было просто объявить массив нужной длины и передать указатель на массив в эту функцию, что означало бы статическое выделение памяти для стека. Но мы пошли более сложным путем, чтобы показать, как в ThreadX устроено динамическое управление памятью

Мы статически создали массив для пула байтов (byte_pool_0), создали сам пул в строке

Затем выделили из этого пула память для стека каждого потока в строке

И передали соответствующий указатель (pointer) в функцию создания потока:

Обратим внимание на следующее:

  • Поскольку мы выделяли память динамически, мы также можем ее и освободить, например, после уничтожения потока. Память вернется в пул и может быть в дальнейшем использована повторно. В ThreadX уже решена проблема фрагментации возвращенной в пул памяти, поэтому проблем с повторным выделением не будет.
  • Все созданные потоки запускаются автоматически (параметр TX_AUTO_START).
  • Параметр TX_NO_TIME_SLICE отключает механизм time-slice для создаваемого потока. Это означает, что квант времени на исполнение процесса мы не задаем, а вместо этого полагаемся на планировщик.
  • Данный код не подходит для производства, поскольку для упрощения примера не производится анализ возвращенного значения функций на предмет возникновения ошибок.
  • ThreadX достаточно гибко конфигурируется путем применения директив препроцессора. Для упрощения примера мы их не рассматривали. Подробная информация доступна .

Инициализация потоков производится в теле функции tx_application_define(), которая в качестве параметра получает указатель на первый адрес неиспользуемой памяти. Мы также могли использовать этот адрес для организации пула байтов, вместо статического выделения.

Лицензирование

Azure RTOS — коммерческая ОС с соответствующими требованиями к применению в производстве. Однако в ряде случаев платить за ее использование не понадобится.

  • Вам не требуется лицензия, если вы используете код не для производства, а для изучения, разработки, тестирования, портирования, адаптации системы для вашего решения;
  • Лицензия на использование в производстве включена автоматически при развертывании ОС на любой из микроконтроллеров из данного списка. На август 2020 года список еще не заполнен в связи с тем, что процедуры лицензирования еще не завершены, но уже есть соответствующий issue, в котором упомянуты микросхемы Microchip, NXP, Renesas, ST, и Qualcomm;
  • В ином случае вам нужно приобрести платную лицензию.

Во всех случаях ОС поставляется с исходным кодом.

Самые нужные програмы для смартфонов, Symbian 6,7,8,8.1 / ооо (оо) [1234, оо]

Год выпуска 2005-2008 Жанр программы к смартфонам Разработчик NOKIA издатель SymBoSS,illusion,dotsis ,Psiloc ,retail-binpda ,Kaspersky Mobile,SymbianWare,iNTERNAL-PWNPDA Сайт разработчика nokia.com.ua Язык интерфейса Rus/Eng Платформа S60 2rd Edition (OS 6.1,7.0,8.0,8.1) Системные требования cpu 120-250 Mhz,s60.os.symbian 6,7.8.8.1 Описание: САМЫЕ ПОЛЕЗНЫЕ ПРОГРАМЫ ДЛЯ СМАРТФОНОВ НА БАЗЕ СИМБИАН 6 ,7 ,8 ,8.1 Доп. информация: AutoLock_v0.5b RescoViewer.v4.01-XiMpDA.sis ПРОСМОТР ФОТО ПРОСМОТР ФОТО Zensis Ltd. RiteViewer SP v1.10.SIS S60 архиватор ZIP HandyBook.sis HandyDates.sis HandyRemin …

CoIDE: как два пальца об асфальт

Ну, тут полная халява. Если провести аналогию с автомобилями, то CoIDE нельзя превратить в бульдозер или велосипед по выбору, зато тачка очень удобная — сел и поехал.

Далее появится список МК, в котором нужно выбрать STM32F100RB, установленный на плате STM32VLDisvovery:

Появится окно так называемого «репозитория», в котором установкой галочек можно выбирать подключаемые к проекту библиотеки. При этом учитываются зависимости между библиотеками, что не может не радовать. В следующем уроке мы будем разбирать порты ввода-вывода (GPIO) так что отметим соответствующую библиотеку. Так как мы ещё не создали ни одного проекта, CoIDE предложит нам создать новый, на что мы согласимся:

По умолчанию папка для проектов располагается в установочной папке CoIDE и называется «workspace». Вообще, это не очень хороший вариант, я бы советовал создать отдельную папку где-нибудь в «Моих документах» или ещё где, но это личное дело каждого, а я решил ничего не трогать — в своей виртуальной машине в VirtualBox я могу мусорить сколько душе угодно (:Скелетный проект по причине, изложенной в начале статьи (про плюсы и минусы), создавать бессмысленно, так что сразу сделаем проект для следующей статьи и назовём его stm32vld_quickstart:

Вот и всё, первый проект создан, можно даже приступать к кодингу. Но приступим мы к нему в следующей статье, а пока можете глянуть на файловую структуру проекта:

  • cmsis — тут лежит стандартная библиотека CMSIS, общая для всех Cortex-M3
  • cmsis_boot — название странноватое, ведь там лежит не только код первичной инициализации микроконтроллера, но и пара заголовочных файлов от стандартной библиотеки STM32F10x
  • stm_lib — STM32F10x Standart Peripheral Library, уже описанная при настройке Eclipse
  • build.xml — настройки сборки проекта, руками туда лучше не лазить, да и CoIDE сама этот файл не открывает, а показывает окно настроек проекта.
  • link.ld и memory.ld — скрипты линковщика, как stm32f100rb.ld, упоминавшийся выше, только зачем-то разделённый на два файла.
  • main.c — исходный код, пока ещё девственно чистый

Слева, кроме структуры проекта, так же показывается модель МК, для которой мы пишем, и список подключенных библиотек — идеально для склеротиков вроде меня (:

Теперь нужно зайти в Debug→Debug Configuration… и установить параметры отладки/прошивки:

  • Adapter: ST-Link
  • Port: SWD
  • Max Clock(Hz): 1M (1 МГц)

Теперь выбираем в меню Debug→Debug и CoIDE скомпилирует проект, зальёт прошивку на МК и запустит отладку:

Вот и вся настройка. Конечно, за простоту приходится платить, но в данном случае не деньгами, а минусами, перечисленными в начале статьи. Ну да ладно, зато оно работает сразу (:

Перечень проектов

Example_First_Programm — GPIO. Первая программа. Мигание светодиодом

Example_GPIO — GPIO. Пример работы с входами и выходами

Example_StepMotor — GPIO. Пример работы с шаговым двигателем 28BYJ-48

Example_Nokia5110 — GPIO. Remap. Пример работы с выходами

Example_WG12864A — GPIO. Пример работы с LCD дисплеем WG12864A (KS0108/KS0107)

Example_ADC — ADC. Простой пример работы с АЦП

Example_ADC_DMA — ADC. Работа с АЦП с использованием DMA

Example_ADC_Injected — ADC. Работа с АЦП с настройкой Injected каналов

Example_ADC_Temperature — ADC. Использование встроенного термометра

Example_ADC_Watchdog — ADC. Аналоговый Watchdog

Example_Sonar — EXTI. Пример работы с сонаром HC-SR04

Example_USART1 — USART. Пример простого терминала

Example_USART_DMA — USART. Отправка данных через последовательный порт с помощью DMA

Example_DFPlayerMini — USART. Пример работы с MP3 плеером DFPlayer Mini. Функция произнесения числа

Example_SysTick — Таймер. Системный таймер SysTick. Задержка на SysTick

Example_TIM_CLK — Таймер. Генерирование прерывания через равные промежутки времени

Example_TIM_Time — Таймер. Измерение времени между двумя событиями

Example_PPM — Таймер. Захват сигнала

Example_Encoder — Таймер. Работа с энкодером

Example_Encoder_IT — Таймер. Работа с энкодером

Example_PWM_LED — Таймер. PWM. Управление яркостью светодиода

Example_PWM_RGB — Таймер. PWM. Управление цветом RGB светодиода

Example_PWM_Servo — Таймер. PWM. Управление сервоприводом

Example_PWM_Sound — Таймер. PWM. Генерирование звука

Example_RTC — RTC. Пример работы с часами реального времени

Example_BKP — BKP. Пример работы с регистрами Backup registers

Example_FLASH — FLASH. Пример сохранения настроек во FLASH память

Example_Watchdog — Watchdogs. Пример использование IWDG и WWDG

Example_I2C_Master — I2C. Работа с шиной I2C на примере датчика атмосферного давления BMP280

Example_I2C_Slave — I2C. Работа с шиной I2C в качестве Slave устройства

Example_BMP280 — I2C. Пример работы с датчиком атмосферного давления BMP280

Example_MS5611 — I2C. Пример работы с датчиком атмосферного давление MS5611

Example_USB_Virtual_Com_Port — USB. Пример работы с USB. Виртуальный последовательный порт

Example_USB_Keyboard — USB. Пример работы с USB. Эмуляция клавиатуры и мышки

Example_USB_Mass_Storage — USB. Пример работы с USB. STM32F103 в качестве Mass Storage Device

Example_PWR_Sleep — PWR. Использование энергосберегающего режима SLEEP

Example_PWR_Stop — PWR. Использование энергосберегающего режима STOP

Example_PWR_Standby — PWR. Энергосберегающий режим Standby. Пробуждение от Wake Up Pin

Example_PWR_Standby_RTC — PWR. Энергосберегающий режим Standby. Пробуждение от RTC

Example_Bootloader — Bootloader. Пример собственного загрузчика

Example_BLDC — Управление бесколлекторным двигателем с датчиками Холла (Sensored Brushless)

Example_PMSM — Управление PMSM с датчиками Холла с помощью STM32

Смотри также:

  • 1. STM32. Программирование STM32F103. Тестовая плата. Прошивка через последовательный порт и через ST-Link программатор
  • 2. STM32. Программирование. IDE для STM32
  • 3. STM32. Программирование STM32F103. GPIO
  • 4. STM32. Программирование STM32F103. Тактирование
  • 5. STM32. Программирование STM32F103. USART
  • 6. STM32. Программирование STM32F103. NVIC
  • 7. STM32. Программирование STM32F103. ADC
  • 8. STM32. Программирование STM32F103. DMA
  • 9. STM32. Программирование STM32F103. TIMER
  • 10. STM32. Программирование STM32F103. TIMER. Захват сигнала
  • 11. STM32. Программирование STM32F103. TIMER. Encoder
  • 12. STM32. Программирование STM32F103. TIMER. PWM
  • 13. STM32. Программирование STM32F103. EXTI
  • 14. STM32. Программирование STM32F103. RTC
  • 15. STM32. Программирование STM32F103. BKP
  • 16. STM32. Программирование STM32F103. Flash
  • 17. STM32. Программирование STM32F103. Watchdog
  • 18. STM32. Программирование STM32F103. Remap
  • 19. STM32. Программирование STM32F103. I2C Master
  • 20. STM32. Программирование STM32F103. I2C Slave
  • 21. STM32. Программирование STM32F103. USB
  • 22. STM32. Программирование STM32F103. PWR
  • 23. STM32. Программирование STM32F103. Option bytes
  • 24. STM32. Программирование STM32F103. Bootloader
  • STM32. Скачать примеры
  • System Workbench for STM32 Установка на Ubuntu
  • Keil uVision5 – IDE для STM32
  • IAR Workbench – IDE для STM32
  • Управление бесколлекторным двигателем постоянного тока (BLDC) с помощью STM32
  • Управление PMSM с помощью STM32

Бесплатные инструменты разработчика для микроконтроллеров STM32, рекомендуемые STMicroelectronics

Выбор микроконтроллера STM32 от компании STMicroelectronics, одного из лидеров в области производства полупроводников и предлагающего решения по всему спектру электронных приложений, является самым простым путем для инноваторов, с целью выпустить новые продукты. Сегодня у разработчиков есть широкий выбор бесплатных интегрированных сред разработки (IDE) для микроконтроллеров STM32.

Пользователи STM32 могут выбирать из трех IDE от ведущих производителей, являющихся бесплатными и созданными в тесном сотрудничестве с STMicroelectronics. Можно рассматривать альтернативы между основанными на Eclipse средами разработки, такими как CooCox CoIDE или Ac6 System Workbench для STM32, а также средой  Keil MDK-ARM. Они не имеют ограничений на размеры кода, поддерживаются все необходимые для STM32 конфигурационные файлы и прошивки, также как и интуитивное аппаратное обеспечение, такое как платы STM32 Nucleo или комплекты Diskovery Kit, используемые для отладки и проектирования.

Ac6 System Workbench для STM32 и CooCox IDE поддерживают все устройства STM32, в основе которых лежат ядра ARM Cotex-M0, M0+, M3 и M4. Бесплатная среда Keil MDK-ARM для STM32 помогает перейти от устаревшей 8-битной архитектуры к 32-битной разработке Cortex, поддерживая серии STM32F0 и STM32L0, включающих Cortex-M0 и M0+ без каких-либо ограничений.

Все три среды разработки могут работать на платформах Windows. Заявлено, что Ac6 System Workbench в 2015 станет доступна для ОС Linux и Mac OS X. Производители IDE обеспечивают техническую поддержку и постоянные обновления для пользователей.

Эти инструменты могут быть загружены абсолютно бесплатно с сайтов производителей:

Как видно из результатов опроса, наиболее часто разработчики используют Keil MDK-ARM, которая в бесплатной версии имеет ограничение на длину кода в 32 килобайта для микроконтроллеров серий выше чем STM32F0 и STM32L0. Полностью бесплатную CoIDE китайской фирмы CooCox занимает почетное второе место в этом рейтинге.

Для Mac OS X, а это именно та операционка в которой я в основном работаю, я попробовал установить связку редактор кода Eclipse + компилятор GCC ARM + OpenOCD для прошивки и отладки. Потратив несколько дней, но так пока и не поняв, как работать с отладчиком OpenOCD, я решил попробовать более простой вариант и сделал свой выбор в пользу CoIDE, хотя версия только для Windows долго не давала мне принять это решение. Свои эксперименты пока я буду проводить и описывать, используя именно эту IDE. Возможно, чуть позже я опять вернусь к связке Eclipse + GCC ARM + OpenOCD, либо дождусь когда появится версия Ac6 System Workbench для MacOS X и попробую ее.

addelectronics › Блог › Изучаем STM32. Урок 1. Создание проекта в CubeMX и Coocox IDE (ч2)

В прошлой части мы закончили с настройкой параметров экспорта в программе Cube MX.Ну собственно теперь нам осталось дать имя проекту и сделать экспорт. По окончанию экспорта, выскочит сообщение в котором мы можем открыть папку с нашим сгенерированным проектом.

На этом с CubeMX закончили. Переходим к среде разработки Coocox (Кокос в простонародии)))

далее вверху выбираем — создать новый проект — Create New Project

Далее выбираем CHIP (ведь мы будем работать с процессором)

Далее в списке выбираем нужный нам процессор. В моём случает это STM2F407VG6T

После этого ствавим галчку напртив CMSIS BOOT. Вместе с ней установится галочка и напротив M4 CMSIS Core — вот её нам нужно снять.

Далее в левой части, нам нужно удалить два файла которые начинаются на system и также после этого удаляем файл main.c (он нам не нужен)

После этого, нам нужно скопировать папки сгенерированные нашим CubeMX в папку с проектом Кокоса. Копируем три папки.

И далее выделяем эти три папки и перетягиваем их в Кокос (добавляем в проект). Стрелочкой указано куда.

Получаем вот такой вид файлов нашего проекта

Далее начинаем раскрывать наш список файлов в папкеDriver->CMSIS->Device->ST->STM32f4xx->Source->Templates-gccи удаляем файл startup_.

далее сворачиваем пару папок и переходим вот по такому путиDriver->CMSIS->Device->ST->STM32f4xx->Include и открываем файл отмеченный на картике указателем мыши. В нашем основном окне этот файл откроется. Листаем вниз и ищем наш процессор, и выделяем его как на картинке и нажимаем копировать — это нужно чтобы добавить это название в конфигурацию проекта

Далее, нажимаем на корневой файл проекта правой кнопкой мыши и выбираем Configuration

У нас откроется вот такое окно

Нажимаем в правой части ADD и добавляем скопированое значение в поле как на картинке

Комментарии 13

Здравствуйте. CoIDE 1.7.8, не хочет запускаться отладка. Ошибки по gdbserver.exe и tasklist.exe. Перепробовал массу вариантов описанных в инете — ничего не помогает. Может сталкивались с подобным ?

Давно использую Keil Uvision 5й

Понял. Да я тоже на Keil 5 перешел, но ради спортивного интереса хотел разобраться с отладкой в кокосе.Не получилось, значит в утиль его)Пользуясь случаем, хотел поблагодорить Вас за ваши уроки.

Три дня плотно бился, никак диодик не моргал. Делал по видосам, статьям, образцам кода, запискам на салфетках, всё без толку. Проект компиляется, прошивка загружается, светодиодик не светится. Наткнулся на эту статью, заметил, что надо удалить два файла в папке Startup. Удалил-всё взлетело и моргает на ура.Вроде бы победа, и можно дальше двигаться, но не тут то было. Что за файлы, откуда взялись, почему именно они и за что их удалили-инфы ноль, как и в любой статье по STM. Потому и нет никаких достойных проектов на STM (за некоторыми редкими исключениями), что никто так и не догоняет, что в итоге происходит, только Blink друг у друга передирают и на этом всё.

Пишите на KEIL создавая проекты в кубе и будет вам переносимость когда и проекты запускаемые

Крайне актуально, а то у IAR не ломанного 32к кода, как-то маловато)

Проблема в верии оказалвсь в 1.7.8 такой нету

Не знаете почему конфигурация не открывается нормально. Версия 1.7.7Скрин: cloud.mail.ru/public/NpQd/LMGHPi1Ke

Теперь с офсайта кокса качается Version: 2.0.3, у тебя 1.7.8. Потому все иначе. Если выбрать STM2F407VGT6, то там появляется выбор создания нового проекта и подключения различных библиотек.Т.е., начиная с 3-й картинки, всё иначе. И в новой версии ни черта не настроить, либо я не знаю где это.

Всё проще — у них висит и старая версия . Под кнопкой download — ссылка на 1.7.8 версию. — www.coocox.org/software/coide.php

Точно.А я тыкал все время на список изменений :))

Всё проще — у них висит и старая версия . Под кнопкой download — ссылка на 1.7.8 версию. — www.coocox.org/software/coide.php

Усё пучком, продолжаю тыкаться

Не знаю кто как а я сохраняю страницы полностью ))

источник

Программное обеспечение для работы с контроллером

Keil Uvision 4

Для ARM архитектуры разработано множество сред разработки. К самым известным и дорогостоящим относятся инструменты фирм Keil и IAR System. Программы этих компаний предлагают самые продвинутые инструментарии для оптимизации кода. Также дополнительно существуют различные системы – USB стеки, TCP/IP-стеки и прочие. Применяя системы Keil, пользователь получает хороший уровень технической поддержки.

Также для STM32 используется среда разработки Eclipse и построенные на ней системы Atollic TrueStudio (платная) и CooCox IDE (CoIDE) (бесплатная). Обычно используется последняя. Ее преимущества перед другими средами разработки:

  • Свободно распространяемое программное обеспечение;
  • Удобство использования;
  • Имеется много примеров, которые можно загрузить.

Единственный недостаток среды разработки CooCox IDE – сборка есть только под Windows.