STM32‎ > ‎STM32f4discovery‎ > ‎Примеры‎ > ‎

Начало

Для начала создадим нашу рабочую папку если она не создана для примеров:

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

Теперь у нас есть наша папка, но она пустая, чтобы она стала рабочей необходимо ее привязать к системе версий Git.
Для этого в консоли выполним:

nis@jane ~/stm32/f4examples $ nis@jane git clone git@github.com:no111u3/f4examples.git
nis@jane ~/stm32/f4examples $ nis@jane git pull
Already up-to-date.

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

Создадим директорию для базового проекта и перейдем в нее:

nis@jane ~/stm32/f4examples $ mkdir 00-base
nis@jane ~/stm32/f4examples $ cd 00-base/

Т.к собирать проект вручную каждый раз достаточно трудоемко и скучно то создадим Makefile для этого:

nis@jane ~/stm32/f4examples/00-base $ touch Makefile

Также создадим файл карты памяти проложения - stm32f4xxxg_flash.ld:

nis@jane ~/stm32/f4examples/00-base $ touch stm32f4xxxg_flash.ld

Основой проекта будет файл - startup.c:

nis@jane ~/stm32/f4examples/00-base $ touch startup.c

Соберем наш тестовый проект:

nis@jane ~/stm32/f4examples/00-base $ make
arm-softfloat-linux-gnueabi-gcc -g -O2 -mlittle-endian -mthumb -ffreestanding -nostdlib -nostdinc -mcpu=cortex-m3 -DSTM32F4XX -I. -I../../stlink/example/libs_stm/inc/base -I../../stlink/example/libs_stm/inc/core_support -I../../stlink/example/libs_stm/inc/device_support -Wl,-T,stm32f4xxxg_flash.ld   -c -o startup.o startup.c
arm-softfloat-linux-gnueabi-gcc -g -O2 -mlittle-endian -mthumb -ffreestanding -nostdlib -nostdinc -mcpu=cortex-m3 -DSTM32F4XX -I. -I../../stlink/example/libs_stm/inc/base -I../../stlink/example/libs_stm/inc/core_support -I../../stlink/example/libs_stm/inc/device_support -Wl,-T,stm32f4xxxg_flash.ld -o firmware.elf startup.o -L.
arm-softfloat-linux-gnueabi-objcopy -O binary firmware.elf firmware.bin

После сборки получим файл firmware.bin объемом 12 байт:

nis@jane ~/stm32/f4examples/00-base $ ll
итого 28
-rwxr-xr-x 1 nis nis    12 апр.   8 20:05 firmware.bin
-rwxr-xr-x 1 nis nis 34849 апр.   8 20:05 firmware.elf
-rw-r--r-- 1 nis nis  1359 апр.   8 18:13 Makefile
-rw-r--r-- 1 nis nis   615 апр.   8 20:01 startup.c
-rw-r--r-- 1 nis nis  2868 апр.   8 20:05 startup.o
-rw-r--r-- 1 nis nis  1671 апр.   8 19:09 stm32f4xxxg_flash.ld

Следующего содержания:

nis@jane ~/stm32/f4examples/00-base $ arm-softfloat-linux-gnueabi-objdump -D firmware.elf

firmware.elf:     file format elf32-littlearm


Disassembly of section .text:

08000000 <vector_table>:
 8000000:       2001bffc        strdcs  fp, [r1], -ip
 8000004:       08000009        stmdaeq r0, {r0, r3}

08000008 <reset_handler>:
 8000008:       4770            bx      lr
 800000a:       bf00            nop

На этом подготовку можно считать законченной. Файлы проекта можно получить следующей командой в консоли:

nis@jane ~/stm32/f4examples $ nis@jane git pull

После сборки можно загрузить прошивку в мк:

nis@jane ~/stm32/f4examples/00-base $ make write
qstlink2 -cewV ./firmware.bin
Verbose level: 2
Info: Devices list loaded.
Info: File Path: "./firmware.bin"
Info: Erasing: true
Info: Writing: true
Info: Found an ST Link V2.
Info: Opening device...
Info: Device Open.
Info: ChipID: "413"
Info: Device type:  "STM32F4**"
Info: Verify not yet implemented.
Info: Writing from "8000000" to "800000c"
Info: Erasing flash... This might take some time.
Info: Transfer done
Info: Disconnected.

Видео процесса прошивки:

Подстраницы (3): Makefile startup.c stm32f4xxxg_flash.ld
Comments