Рейтинг
28.46
голосов: 30

О блоге

Работа с ядром CortexM3 и периферией STM

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (264)

ploop _YS_ m3hc Krieger Tabke marvin_yorke Ultrin WildCat hexanaft Vga Alatar mzw Reverb grand1987 dievgen woogle PahanMenski anper citizen ZiB

Все читатели блога

Используем libc (newlib) для stm32

Многие тулчейны для ARM на GCC (Code Sourcery Lite в том числе) поставляются вместе с newlib — стандартной библиотекой языка C. С помощью неё можно использовать множество удобных стандартных функций (printf/scanf/malloc и т.д.).
Для того чтобы использовать эту библиотеку от нас требуется реализация некоторых системных вызовов.


Читать дальше
  • +4
  • 15 августа 2011, 14:32
  • Kosyak
  • 1

Простой старт STM32+CooCox IDE+ST-Link

disclaimer: Это мой первый подобный опус сильно не пинайте (возможно даже баян)
Я давно подбираюсь к ARM но никак не мог найти себе среду для быстрого и внятного старта. И вчера ночью совершенно случайно нашел- это CooCox IDE


Читать дальше
  • +2
  • 04 августа 2011, 00:11
  • GYUR22
  • 1

Разработка под stm32 в Linux (GCC + CMake + Eclipse + openocd)

Ко мне наконец-то пришли посылки c отладочной платой и JTAG-адаптером из Китая, и я решил продолжить свои изыскания.
В результате получилась рабочая и вполне удобная среда для разработки под армы в Linux.
UPD: Теперь всё лежит на github'е — https://github.com/ObKo/stm32-cmake


Читать дальше

STM32, примеры кода

Осваиваю периферию STM32F103C8, пишу код с комментами, подумал что может кому-то пригодиться (или мне самому по-позже). По ходу обучения буду дополнять эту статью.

Считываю данные с температурного датчика внутри чипа и передаю по USART. Используется таймер и прерывания. Прерывания убраны, добавлен DMA.


Читать дальше

Отладка STM32 в среде Eclipse+GCC

Так как я недавно перешел на использование связки Eclipse+CodeSourcery G++ Lite в качестве среды разработки для микроконтроллеров STM32, то у меня встал вопрос об отладке с помощью ST-Link.
Решение было найдено в виде ST-Link gdbserver, который легко прикручивается к Eclipse. О чем я кратко и расскажу в этой статье.


Читать дальше

Используем CMake и GCC для программирования uC STM32 в линуксе.

Всё у армов хорошо, одна беда — все рассчитано на работу в определенных пропиетарных м платных IDE, которые, естественно, никто портировать на linux не собирается. Для линукса есть такая хорошая вещь — ODeV Idea используются make + gcc + eclipse + openocd. Однако, я решил пойти немного другим путем — разобратся, из чего состоит проект для stm32 и использовать cmake для сборки проектов.
UPD: Теперь всё лежит на github'е — https://github.com/ObKo/stm32-cmake
UPD2: Данный текст слегка устарел (но общий принцип сохранился), актуальные доки на github'е


Читать дальше

Атомарные операции в Cortex-M3


Часто возникает ситуация, когда одна и та-же переменная используется и изменяется из разных потоков или из островного потока и прерываний. В этом случае модификацию такой разделяемой переменной необходимо осуществлять атомарно. Простейший способ обеспечения атомарности — это запрет прерываний на время операции, но это не наш метод — в ядре ARM Cortex-M3 есть более интересные средства для этого.


Читать дальше

Особенности использования прерывания Half transfer при работе с DMA

Если обрабатывается большой массив данных например от АЦП, то удобно применить для этого прямой доступ к памяти(ПДП). С использованием ПДП данные складываются в массив и потом могут быть обработаны. Если необходим непрерывный сбор данных и их обработка, то сбор можно вести с использованием ПДП, а обрабатывать их в прерывании ПДП. Данные пишутся в буфер циклически. По заполнении данными больше половины буфера, выставляется Half Transfer Interrupt Flag (HTIFx), По заполнении всего буфера выставляется Transfer Complete Interrupt Flag (TCIFx). Прерывания генерируются по установке любого из этих флагов (если разрешены). В обработчике прерывания эти флаги могут быть прочитаны и выяснено, насколько заполнен буфер — наполовину или целиком. Если буфер заполнен наполовину — то обрабатывается первая половина буфера. Данные в это время пишутся во вторую половину. И наоборот. Таким образом можно осуществить непрерывную обработку данных.

Читать дальше

Использование gcc для stm32f100

Примерно полгода назад я обзавелся самым мелким контроллером stm32f100c4. Здесь я хотел бы изложить свой опыт применения средств разработки gcc вживую, без графической оболочки. Описывается установка, создание проекта — использование Makefile, прошивка через UART, отладка через gdb на stm32vldiscovery, ну и самое главное — грабли

Читать дальше

STM32-VLDiscovery: мой вариант быстрого старта.

Внимание, статья обновлена. См. примечание в конце.

***

Предисловие.

Некоторое время назад, я, как и многие другие, принял участие в акции EBV, заказав себе упомянутую в названии платку. Моя первая попытка поковырять ее не увенчалась успехом, да и буквально одновременно с ней мне в руки попал LaunchPad… Одним словом, лежал STM32-Discovery буквально до сегодняшнего дня и пылился. Но в конце концов я взялся за него с твердым намерением наконец-то помигать светодиодом во что бы то ни стало. Естесственно, прежде всего я стал читать уже написанное на русском и английском. Однако, несмотря на большое количество статей, все они показались мне слишком разрозненными, а некоторые из более цельных — излишне объемными для начала. Возможно, я плохо искал, но так нигде и не нашел текста, прямо и без тучи лишней информации повествующего о том, как с нуля помигать светодиодом на STM32-Discovery. Полезные части встречались в разных местах, и вот я решил объединить их в по возможности лаконичное и законченное повествование.



Читать дальше
  • +7
  • 30 апреля 2011, 22:46
  • _YS_