понедельник, 15 апреля 2013 г.

STM32F407(STM32F4-DISCOVERY) - Нестандартный подход - Начало

Начиная с этой статьи я дам несколько практических советов по сборке проектов для этого МК (платы). Это не цикл "сделай это чтобы включить светодиод", поэтому сразу определимся что мы будем рассматривать, а что нет.
В этом цикле точно будут:
  • Советы по нестандартным функциям и последствиям их применения
  • Использование некоторых специфичных блоков МК
  • Куча кода который реально работает и используется
Чего не будет:
  • Почему я собрал проект, а он не работает
  • Возьмём плату и шнур который USB - т.к. мне надоело опускаться в ходе объяснений ниже плинтуса.
  • Негатива, хотя многие вещи так работают что он появляется сам собой.
Итак начнем:


В своих примерах я использую дешевую плату STM32F4-DISCOVERY, почему так:
  1. Дешевле чем эта плата вы уже точно не найдете, или где вы видели платы по цене МК;
  2. В подтверждение этого можно сказать то, что за тот функционал платы который есть, нам доступен не только МК, но ещё и MEMS(акселерометр, микрофон), декодер со встроенным усилителем и USB 2.0 FS. Да это не много, но для начала хватит и этого.
  3. Отладчик уровня ST-LINK v2.0 (по правде говоря это он и есть, только урезанный по самое небалуйся, но нам хватит его и не только для этой платы). Где вы ещё видели полноценный отладчик, который поддерживает куча софта.
  4. Куча примеров кода которые написаны инженерами (хотя судя по его качеству, есть подозрение что это оутсорс) самой ST, для этой платы.
  5. Все выводы МК есть на разъёмах - да по началу напрягает, что кто-то уже использует те выводы которые ты хотел, но при этом не возникает сложности их использовать также и для своих целей.
  6. Наличие вводных статей подобных моей. Сообщество всегда дорого тем, что тебя могут пнуть в нужном направлении, а это дорогого стоит.
Помимо самой платы нам необходим последовательный порт с 3.3 вольтной логикой. Для чего, сейчас объясню. Не надо думать что если "Ха, ха, ха я читаю матрицу умею использовать отладчик" то можно им и обойтись. Во первых, это удобней когда необходимо получить больше информации - состояние файловой системы, других сложных блоков которые не опишешь в несколько десятков регистров (хотя скорее в несколько, т.к. по правилу 7 +- 3, человек не способен воспринимать слишком большое количество сложно связанной информации). В любом случае выбирать вам, а я лишь порекомендую запастись подобным устройством.

Конечно кошерным лучше будет иметь ещё несколько устройств таких как экраны, usb-host, usb-device кабеля и прочее, но обо всём по порядку.

Программные средства которые я использую - Vim (иногда правда kwrite), st-util, qstlink, toolchain - для общих целей, либо toolchain with hardfloat - там где требуется поддержка плавающей точки и DSP инструкций. Вот и всё.

Подключение отладчика я все таки постараюсь описать, а также дам инструкции по сбору проекта для eclipse. Сам же всем этим я редко пользуюсь, когда не уверен в чем-то читаю ассемблерный листинг - помогает понять, что не так. Однако, для тех кто впервые знакомится с этим МК, или же не совсем уверен в своих силах рекомендую пользоваться готовыми решениями.

Далее пойдут разделы рекомендаций, которые желающие могут пропустить