четверг, 26 января 2012 г.

I & STM32-discovery part3 - Настраиваем прошивку и отладку в линуксе

После того как на руках появилась плата, появился вопрос о программировании и отладке мк в Gentoo Linux.

Для начала создадим директорию где у нас будет лежать все необходимые файлы.

nis@jane ~ $ mkdir stm32

и перейдем в нее

nis@jane ~ $ cd stm32
nis@jane ~/stm32 $

теперь нам необходимо скачать linux версию st-link

nis@jane ~/stm32 $ git clone git://github.com/burjui/stlink.git -b server-restart
Cloning into stlink...
remote: Counting objects: 3340, done.
remote: Compressing objects: 100% (1126/1126), done.
remote: Total 3340 (delta 2150), reused 3314 (delta 2130)
Receiving objects: 100% (3340/3340), 12.55 MiB | 426 KiB/s, done.
Resolving deltas: 100% (2150/2150), done.

после скачивания исходных кодов из git-репозитария перейдем в директорию stlink и соберем необходимые исполнаяемые файлы.

nis@jane ~/stm32 $ cd stlink
nis@jane ~/stm32/stlink $ make

после сборки нам необходимо разместить файлы по своим местам чтобы было удобно с ними работать(для этих операций понадобятся права суперпользователя):
1) Скопируем правила для udev и перезагрузим его текущие настройки

jane stlink # cp 49-stlinkv* /etc/udev/rules.d/
jane stlink # udevadm control --reload-rules

2) Скопируем в папку /usr/bin необходимые для работы исполняемые файлы

jane stlink # cp gdbserver/st-util /usr/bin
jane stlink # cp flash/flash /usr/bin/st-flash

3) Так как stm32vldiscovery при подключении к компу притворяется scsi диском то это тоже надо отключить ( это справедливо только если у вас usb-storage является отдельным модулем а не вкомпилен в ядро)

jane stlink # cp stlink_v1.modprobe.conf /etc/modprobe.d/     
jane stlink # modprobe -r usb-storage && modprobe usb-storage

В случае если у нас usb-storage отдельный модуль то при подключении stm32vldiscovery мы должны получить следующие сообщения в dmesg

[ 1126.107112] usb-storage 5-1:1.0: usb_probe_interface
[ 1126.107117] usb-storage 5-1:1.0: usb_probe_interface - got id
[ 1126.107332] usb-storage 5-1:1.0: device ignored

На этом подготовка закончена.

В качестве пробы можно запустить st-util с ключем -1 для того чтобы указать что используется st-link первой версии(внимание плата должна быть подключена к компьютеру)

nis@jane ~/stm32/stlink $ st-util -1
2012-01-26T15:33:51 INFO src/stlink-sg.c: Current mode unusable, trying to get back to a useful state...
2012-01-26T15:33:51 WARN src/stlink-sg.c: received tag 0 but expected 3
2012-01-26T15:33:51 INFO src/stlink-common.c: Loading device parameters....
2012-01-26T15:33:51 INFO src/stlink-common.c: Device connected is: F1 Medium-density Value Line device
2012-01-26T15:33:51 INFO src/stlink-common.c: SRAM size: 0x2000 bytes (8 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 1024 bytes
2012-01-26T15:33:51 INFO src/stlink-sg.c: Successfully opened a stlink v1 debugger
Chip ID is 10016420, Core ID is  1ba01477.
KARL - should read back as 0x03, not 60 02 00 00
init watchpoints
Listening at *:4242...
^C

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

Основой для этой статьи послужил материал сайта robocraft.ru

Комментариев нет:

Отправить комментарий