Skip to content

vbezhenar/stm32-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Осваиваем STM32 снизу

В данной серии статей мы попробуем поработать с процессором STM32 с помощью GNU утилит, немного познакомимся с ассемблером и отладкой.

Примеры написаны для популярной платы blue pill, построенной на микроконтроллере STM32F103C8T6.

Примерный план:

  1. Подключить плату к компьютеру и убедиться, что там что-то происходит. Использовать будем st-util и gdb.

  2. Написать простейшую программу на ассемблере, которая в цикле прибавляет регистр, скомпилировать из неё прошивку, залить на плату и пронаблюдать её работу. Использовать будем binutils и st-flash.

  3. Помигать диодом (на ассемблере же).

  4. Написать простейшую программу на C, которая в цикле прибавляет значение глобальной переменной. Скомпилировать из неё прошивку, залить на плату и понаблюдать её работу с помощью с помощью gdb.

  5. Помигать диодом на С (дальше всё на С).

  6. Переписать мигание с использованием таймера, чтобы поближе познакомиться с прерываниями.

  7. Сказать внешнему миру "Hello world" через UART.

  8. Переписать "Hello world" с помощью CMSIS, уже с пониманием того, что там происходит.

  9. Научиться использовать стандартную библиотеку C в виде реализации newlib и сказать "Hello world" через printf.

В процессе будет использовано достаточно много инструментов вроде make, ld, gdb, as, gcc и тд, по каждому из них можно книги писать (и пишут). Поэтому, конечно, углубляться в них мы не будем, а напротив, эти инструменты будут использоваться в максимально примитивном виде. Представленный код также не является образцом производительности, а лишь наглядным примером для объяснения соответствующих концепций.

Ниже ссылки на документацию, где можно подробней разобраться с любыми нюансами.

  • STM32F103x8 Datasheet. Это спецификации микроконтроллера, тут можно посмотреть варианты корпусов, выходы, электрические характеристики.
  • STM32F103xx Reference Manual. Тут вся справочная информация по всем битам и байтам данного микроконтроллера.
  • STM32F10xxx Programming Manual. Тут справочная информация по ARM: все инструкции, описание работы процессора.
  • GNU debugger GDB. Это отладчик.
  • GNU make. Это утилита для сборки проектов.
  • GNU Compiler Collection. Это компилятор языка C (а также ряда других языков, которые мы использовать не будем).
  • GNU assembler as. Это ассемблер.
  • GNU linker ld. Это компоновщик (линкер).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published