Обновление библиотеки CMSIS в STM32F10x standard peripheral library

26 июля 2013 г. 22:56 STM32  

Библиотека CMSIS стандартизуриется компанией ARM Limited, но кроме стандартизации фирма ARM выпускает код для ядра CORTEX-M. Конкретный производитель контроллеров с ARM-ядром, средствами своих программистов или сторонних сообществ дополняет библиотеку CMSIS файлами с описанием периферийных модулей, которыми они нафаршировали свои контроллеры. Фирма ST на данный  поставляет через свой сайт библиотеки standard peripherals library (каждая для своей серии). Выпуская очередную версию библиотеки она включает в нею CMSIS версии, которая была на то время действующей.

Как использовать функции libc в Sourcery CodeBench Lite

6 июля 2013 г. 20:07 STM32  

Частенько при разработке встраиваемых систем нужно воспользоваться функциями вроде rand, sprintf, malloc и т.д. Часть таких функций можно в той или оной степени реализовать самому, но на это не всегда находится время. Один из вариантов решения задачи - использовать специальную библиотеку Newlib, встроенную в тулчейн Sourcery CodeBench Lite. Библиотека newlib содержит реализацию функций стандартной библиотеки С с учетом особенностей применения во встраиваемых системах. 

Не могу сказать что библиотека оптимальная - некоторые функции могут занять десятки килобайт флеша, так что пользоваться этим делом можно только если у вас достаточно памяти. Если же память критично придется либо реализовать функции самому, либо использовать более урезанные реализации вроде baselibc.

Подключение дисплеев с контроллером UC1601s (RDX0120) к STM32

5 июля 2013 г. 15:21 LCD   STM32  

Довелось тут в одном проекте поработать с графическим дисплеем RDX0120 днепропетровской фирмы "Гамма". Сам дисплей достаточно дешевый - около 3$. Во всех дисплеях RDX0032, RDX0048, RDX0077, RDX0120, RDX0154 встроен графический контроллер UC1601s.

Связь с контроллером осуществляется по шине I2C. Скорость I2С может быть до 400 кГц, что даже при неоптимальных алгоритмах, позволяет быстро отрисововать текст и изображения.

За основу библиотеки я взял код Геннадия Чернова, который разработал библиотечку для PIC. Я перепилил минимальный набор необходимых мне функций, среди которых: очистка дисплея и заполнение его черным/белым/серым цветом, вывод строк шрифтов включая кириллические строки в кодировке СР1251, черный по белому или инверсный, рисование простых линий с разными типами линий, прямоугольников с прямыми и скругленными углами и установкой ширины линии.

Разработка под STM32. Часть 5. USART через Versaloon

30 июня 2013 г. 13:01 STM32   Versaloon   UART  

В программаторе versaloon встроена реализация интерфейса UART. Если пины Rx и Tx в разъеме программатора не заняты, то его можно использовать даже вместе с другими интерфейсами. Таким образом в этой статье я покажу как совместить отладку по SWD и работу с UART. Вы сможете посылать байты по UART находясь в режиме отладки. Для этого подключим Rx и Tx отладочной платки к Tx и Rx программатора (серый и синий провод). Подробнее о подключении. При этом пины SWD остаются подключенными:

vsuartstm322.jpg

Разработка под STM32. Часть 4. Что представляет собой CMSIS и SPL. Порты ввода-вывода и базовый таймер

27 июня 2013 г. 19:39 STM32  

Во второй части мы создали простой проект, в котором написали немного кода. Я нарочно не вдавался в описание этого кода, так как к процессу настройки рабочей среды это отношения не имеет. В этой статье я восполню недосказанное а также расскажу чем отличается CMSIS и SPL. Обе библиотеки являются открытыми, по этому мы имеем замечательную возможность посмотреть "из чего они сделаны".

Разработка под STM32. Часть 3. Отладка проекта STM32 в Eclipse

21 июня 2013 г. 19:35 eclipse   STM32   Versaloon  

Во второй части был создан о откомпилирован проект для Eclipse, в котором мы выполнили настройку компилятора. В принципе уже можно собирать программы и закидывать их в контроллер с помощью программ vsprog, vsgui, st-flash официальной утилиты ST или чего-то еще. 

Но иногда также необходима возможность отладки написанного кода. Она позволит смотреть каким именно образом выполняются операторы языка С или ассемблерные инструкции. Кроме того отладка нужна для просмотра/изменения памяти и регистров ядра в определенный зафиксированный момент времени. Зафиксированный он по отношению к контроллеру - как только отладчик получает управление, контроллер "замораживается" до тех пор пока отладчик снова не скажет ему продолжить отладку, или выполнить следующую инструкцию. 

Сначала я расскажу об отладке с помощью Versaloon/openocd, а в конце статьи покажу как этим же методом настроить отладку для STM32VLDiscovery. Что касается Discovery, то я буду рассказывать только об отличиях, поэтому советую подробно прочесть всю статью сначала.

Разработка под STM32. Часть 2. Создание проекта для STM32 в Eclipse. Библиотеки CMSIS и SPL

11 июня 2013 г. 14:37 eclipse   STM32   Versaloon  

В прошлой части мы установили необходимое для разработки программное обеспечение. В этой статье я расскажу как его правильно настроить и связать. Все коммерческие среды такие как IAR EWARM или Keil uVision обычно сами выполняют эту интеграцию, однако в нашем случае все придется настраивать вручную, потратив на это немало времени. Преимуществом является то, что у вас есть шанс понять как это все работает изнутри, и в дальнейшем гибко настраивать все под себя. Перед началом настройки рассмотрим структуру среды в которой мы будем работать:

eclipse_p_openocd.jpg

Сборка ПО для versaloon из исходников

6 июня 2013 г. 22:40 Linux   Versaloon  

Для тех, кто хочет самостоятельно собрать программы vsprog, vsgui и openocd из исходников, в этой статье будет рассказано как это сделать для ОС Linux Ubuntu, Linux Arch, и Windows (разрядность ОС не имеет значения). Сборка в linux программ vsprog и openocd включает в себя установку скомпилированных исполняемых файлов (копирование их в /usr/local/bin) и также некоторых конфигурационных файлов  (копирование их в /usr/local/share), в то время как в Windows они копируются в те же пути но в окружении msys, и от туда их нужно забрать для своего использования.

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