Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
dev:cortex_rus:tools [2015/11/16 15:21] alexeyb |
dev:cortex_rus:tools [2015/11/17 09:19] (текущий) alexeyb |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | Для разработки потребуются следующие инструменты: | + | ====STM32F1xx LINUX==== |
| + | ====Для разработки потребуются следующие инструменты:==== | ||
| - arm-none-eabi (компиляторы, сборщик, дебаггер) https://launchpad.net/gcc-arm-embedded/+download | - arm-none-eabi (компиляторы, сборщик, дебаггер) https://launchpad.net/gcc-arm-embedded/+download | ||
| - openocd (собственно посредник между железом и дебаггером) http://openocd.org/repos/; | - openocd (собственно посредник между железом и дебаггером) http://openocd.org/repos/; | ||
| - | Далее используем следующий makefile | + | ===Далее используем следующий makefile (STM32F1xx)=== |
| - | code | + | <file> |
| EXECUTABLE = $(notdir $(CURDIR)).elf | EXECUTABLE = $(notdir $(CURDIR)).elf | ||
| Строка 60: | Строка 61: | ||
| INCPATH +=-I./cmsis_boot -I./init/inc -I./ | INCPATH +=-I./cmsis_boot -I./init/inc -I./ | ||
| INCPATH +=-I./common/inc -I./cycle/inc -I./uscntr/inc -I./view/inc | INCPATH +=-I./common/inc -I./cycle/inc -I./uscntr/inc -I./view/inc | ||
| - | |||
| - | |||
| - | STARTUP = ./cmsis_boot/startup/startup_stm32f10x_md.o ./cmsis_boot/system_stm32f10x.o | ||
| - | |||
| # ========== can change src,obj,bin ========== | # ========== can change src,obj,bin ========== | ||
| Строка 113: | Строка 110: | ||
| clean: | clean: | ||
| rm -f $(OBJECTS) -f $(DBJECTS) -f $(BINDIR)/$(EXECUTABLE) -f $(BINDIR)/$(EXECBIN) -f $(BINDIR)/$(EXECLIST) -f $(BINDIR)/$(EXECHEX) -f $(BINDIR)/*.map | rm -f $(OBJECTS) -f $(DBJECTS) -f $(BINDIR)/$(EXECUTABLE) -f $(BINDIR)/$(EXECBIN) -f $(BINDIR)/$(EXECLIST) -f $(BINDIR)/$(EXECHEX) -f $(BINDIR)/*.map | ||
| - | code | + | </file> |
| + | |||
| + | - TOOLROOT - указываем свой путь до arm-none-eabi; | ||
| + | - SRCDIR - также свои сырцы, нужно указать; | ||
| + | - INCPATH - пути до своих инклудов. | ||
| + | - CMSIS - путь до стд библиотеки арм, | ||
| + | - STINC - путь до стд библиотеки st, | ||
| + | - STSRC - путь до стд библиотеки st, **(при использовании расскоментировать USE_STDPERIPH_DRIVER)** | ||
| + | |||
| + | |||
| + | === Отладка === | ||
| + | Если **make** прошла успешно, можно пользовать отладку файлом **flash_openocd.sh** | ||
| + | состоящим из: | ||
| + | <code> | ||
| + | #!/bin/bash | ||
| + | openocd -f ./openocd.cfg | ||
| + | </code> | ||
| + | ==openocd.cfg== | ||
| + | <code> | ||
| + | source [find interface/stlink-v2.cfg] | ||
| + | set WORKAREASIZE 0x4000 | ||
| + | source [find target/stm32f1x.cfg] | ||
| + | </code> | ||
| + | Далее цепляемся gdb на порт 3333 | ||
| + | |||
| + | === Прошивка === | ||
| + | <code> | ||
| + | #!/bin/bash | ||
| + | openocd -f ./openocd.cfg -f ./openocdflash.cfg | ||
| + | </code> | ||
| + | где **openocdflash.cfg** | ||
| + | <code> | ||
| + | init | ||
| + | reset init | ||
| + | halt | ||
| + | flash write_image erase name.hex | ||
| + | verify_image name.hex | ||
| + | reset | ||
| + | shutdown | ||
| + | </code> | ||
| + | |||
| + | === Среда разработки === | ||
| + | Рекомендую Eclipse for C/C++; | ||
| + | - Создаем проект Makefile project/ Empty Project, | ||
| + | - кормим ему свои наработки в том числе makefile | ||
| + | - | ||