В кейле создаём новый проект под плату STM32F4Discovery:
1. Project -> New project.
Выбираем папку и называем проект. Сохраняем.
2. Предлагают выбрать микроконтроллер. Окай.
В папочке ST ищем STM32F407VG и выбираем (он на плату вбубенен). Если его нету -- обновите Кейл.
3. Он предложит скопировать файл инициализации. Да, пусть копирует, он нужен.
читать дальшеТеперь проект создан, но запустить ничего не получится - нет функции main и SystemInit. Что ж, сделаем их.
4. File -> New... И сохраняем под именем main.c (или как пожелается, ему на названия плевать).
5. Добавим его в проект. Сбоку есть панелька со структурой проекта, выбираем« Source Group 1» и правой кнопкой вызываем меню. Там есть пункт «Add files to Group "..."». Вот там сохранённый файл и выбираем.
6. Пишем в файле что-то такое:
Если подключаете system_stm32f4xx.c (заметка про него есть далее, как его получить для своего кварца и т.д.), то не надо функцию SystemInit писать здесь, иначе будет ошибка линковки. Но я бы советовал не торопиться подключать всё подряд, всему своё время.
Вот. Теперь проект будет компилироваться без ошибок.
В опциях проекта выбираем отладчик ST-Link Debugger (вкладка Debug), ставим точечку у надписи Use, чтоб он использовал его. В опциях отладчика выбираем вместо JTAG пункт SW. На плате разведён именно этот интерфейс.
То же самое на вкладке Utilites (тут настраивается прошивание контроллера). Выбираем ST-Link, в опциях добавляем алгоритм прошивания: Utilites -> ST-Link ->Settings -> Add-> STM32F4xx Flash.
Иначе он будет ругаться на отсутствие алгоритма прошивания "No Algorithm found....".
И надо выставить ещё одну галочку на вкладке Target: Use MicroLIB. Иначе при запуске он будет вываливаться в HardFault на неизвестной инструкции.
Всё. Дальше можно загружать и отлаживать. Скорее всего, в первый раз он скажет, что прошивка у отладчика слишком старая и надо бы её обновить. Почему бы и нет? Соглашайтесь. Появится окошко с кнопкой Connect. Жмите. Если он ругнётся, что устройство не в DFU-mode, перезагрузите, то перезагрузите. И снова нажмите на кнопочку. Отладчик обновится и скажет «Upgrade succesful». Всё, больше проблем быть не должно.
Не лишним будет поменять в настройках Keil (Edit -> Configuration -> Editor) кодировку редактора: вместо ANSI выбрать UTF-8. А то иначе русский язык будет не работать. По желанию на соседних вкладочках можно поменять цвета подсветки синтаксиса и размеры отступов (на 4 пробела).
Драйвера для ST-Link v2 уже есть в папочке Keil по адресу «Keil\ARM\STLink\USBDriver».
Reference Manual на всю серию STM32F4xx, где описана вся периферия и порядок работы с ней.UPD от 19.04.2013: Интересно, нужен кому-нибудь последовательный мини-курс по си/асму в принципе, в контексте сей платы? Цикл данных заметок не являются в полном смысле обучающим, так как представляет собой конспекты моих попыток разобраться с периферией/ядром контроллера и ассемблером кортексов. Просто на память, чтоб посмотреть самые важные моменты и разного рода грабли, когда это понадобится снова.
UPD от 22.04.2013: могут быть проблемы с драйерами, в частности в Windows 8. чтобы всё установилось, надо в меню выбора режима загрузки (которое вызывается после биоса по F8) отключить проверку цифровой подписи. Возможно, есть иные пути решения проблемы, я не в курсе. В ХР такой проблемы нет точно.
Следующее >>