Ср янв 01, 2020 18:34:16
Ср янв 01, 2020 19:29:54
Ср янв 01, 2020 19:55:06
STARTUP = startup_armcm3.s
SRC = system_stm32f1xx.c main.c
# Указываем каталоги, в которых находятся *.h файлы от библиотек.
DEVICE = /media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/STM32F1xx_HAL_Driver
CORE = /media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/CMSIS/Device/ST/STM32F1xx/Include
CMSIS = /media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/CMSIS/Include/
PROJ = .
# Собираем каталоги в одну переменную вида -I<путь> -I<путь>
INCLUDES += -I$(DEVICE)/Inc \
-I$(CORE) \
-I$(CMSIS) \
-I$(PROJ)
CC=arm-none-eabi-gcc
LD=arm-none-eabi-ld
CP=arm-none-eabi-objcopy
# Некоторые дефайны - нестандартная частота кварца, тип кристалла и заглушка для HAL драйвера (который работает БЕЗ остальной части нормально).
DEFS = -DSTM32F103xB -DHSE_VALUE=12000000 -DUSE_HAL_DRIVER
LDSCRIPT = stm32f103cbt6_app.ld
OPTIMIZE = -Os
MCU = cortex-m3
MCFLAGS = -mcpu=$(MCU) -mthumb -mlittle-endian --specs=nosys.specs -ffunction-sections -fdata-sections -Wl,--gc-sections -nostartfiles
CFLAGS = $(MCFLAGS) $(OPTIMIZE) $(DEFS) $(INCLUDES) -g -gdwarf-2 -Wall -c
LDFLAGS = $(MCFLAGS) -T$(LDSCRIPT)
OBJS := $(notdir $(SRC:.c=.o)) $(STARTUP:.s=.o)
BUILDS := $(addprefix $(BUILDDIR)/, $(OBJS))
%.o: %.c
@echo "Compiling: $^"
@$(CC) $(CFLAGS) $^ -o $(BUILDDIR)/$@
%.o: %.s
@echo "Compiling: $^"
@$(CC) $(CFLAGS) $^ -o $(BUILDDIR)/$@
$(TARGET): $(EXECUTABLE)
@$(SIZE) $(EXECUTABLE)
@$(CP) -O binary $< $@
$(EXECUTABLE): $(OBJS)
@echo "Building: $(EXECUTABLE)"
@$(CC) $(LDFLAGS) $(BUILDS) -o $(EXECUTABLE)
@echo "[DONE]"
clean:
rm -rf $(BUILDDIR)/*.elf $(BUILDDIR)/*.o $(BUILDDIR)/*.bin
arm-none-eabi-gcc -mcpu=$(MCU) -mthumb -mlittle-endian --specs=nosys.specs -ffunction-sections -fdata-sections -Wl,--gc-sections -nostartfiles -Os -DSTM32F103xB -DHSE_VALUE=12000000 -DUSE_HAL_DRIVER -I/media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/STM32F1xx_HAL_Driver -I/media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/CMSIS/Device/ST/STM32F1xx/Include -I/media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/CMSIS/Include/ -g -gdwarf-2 -Wall -c main.c -o main.o
arm-none-eabi-gcc -mcpu=$(MCU) -mthumb -mlittle-endian --specs=nosys.specs -ffunction-sections -fdata-sections -Wl,--gc-sections -nostartfiles -Os -DSTM32F103xB -DHSE_VALUE=12000000 -DUSE_HAL_DRIVER -I/media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/STM32F1xx_HAL_Driver -I/media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/CMSIS/Device/ST/STM32F1xx/Include -I/media/Data/ARM/STM32CubeF1/STM32Cube_FW_F1_V1.2.0/Drivers/CMSIS/Include/ -g -gdwarf-2 -Wall -c startup_armcm3.s -o startup_armcm3.o
arm-none-eabi-gcc -mcpu=$(MCU) -mthumb -mlittle-endian --specs=nosys.specs -ffunction-sections -fdata-sections -Wl,--gc-sections -nostartfiles -Tstm32f103cbt6_app.ld <ВСЕ *.o файлы> -o <some_app.elf>
arm-none-eabi-objcopy -O binary <some_app.elf> <some_app.hex>
Ср янв 01, 2020 20:19:12
debug: CFLAGS += -DEBUG -Werror
debug: all
PREFIX ?= /opt/bin/arm-none-eabi
Чт янв 02, 2020 10:13:49
Чт янв 02, 2020 22:58:18
Мне надо понять, как это работает. Дальше уже можно и IDE настроить соответствующим образом.Мурик писал(а):Почему бы не использовать IDE с компилятором GCC?
Чт янв 02, 2020 23:32:53
Все это не нужно знать при использовании IDE.BOND12 писал(а):Мне надо понять, как это работает. Дальше уже можно и IDE настроить соответствующим образом.Мурик писал(а):Почему бы не использовать IDE с компилятором GCC?
Пт янв 03, 2020 22:33:37
Мурик писал(а):Все это не нужно знать при использовании IDE.
Сб янв 04, 2020 10:11:06
Сб янв 04, 2020 11:58:00
oleg110592 писал(а):тут для начала простейший пример "STM32F103RB a minimal example" для GCC
http://pandafruits.com/stm32_primer/stm ... inimal.php
oleg110592 писал(а):з.ы. Кейл под вайном нормально работает, настроить отладку даже вроде можно (не пробовал - мне не надо было). Надо Кейл установить на ПК с виндовс, потом просто скопировать папку себе в линукс и запускать экзешник - вайн запускает. Кейл вполне портабелен - запускал и v4 и v5, пользуюсь в основном v4 для поддержки старых проектов.
Сб янв 04, 2020 12:03:33
Сб янв 04, 2020 12:27:00
Сб янв 04, 2020 14:52:05
Сб янв 04, 2020 20:42:16
Сб янв 04, 2020 21:26:11
Сб янв 04, 2020 22:06:13
oleg110592 писал(а):по зеленой иконке это 5 Кейл. Установщик ставит только uVision и тулчейн. Библиотеки и примеры устанавливаются через Pack Installer - только то, что нужно. Если какого-то устройства в данный момент нет, можно установить Legacy Support для нужной серии. Когда то делал уже забыл. Все есть мануале
http://www.keil.com/support/man/docs/uv ... taller.htm
Вс янв 05, 2020 23:55:47
Пн янв 06, 2020 00:45:05
Пн янв 06, 2020 00:57:42
Какой билд сервер если нет опыта работы с STM32 и GCC?bevice писал(а):А на билд-сервера тоже предлагаете IDE натягивать?
Пн янв 06, 2020 10:39:19
Какой билд сервер если нет опыта работы с STM32 и GCC?bevice писал(а):А на билд-сервера тоже предлагаете IDE натягивать?
binaries-debug:
image: bevice/gcc-arm-none-eabi
tags:
- arm-none-eabi-gcc
script:
- BUILD_DIR=${CI_PROJECT_NAME}-$(git log -1 --format=%h)-dbg
- rm -rf ${BUILD_DIR}
- mkdir ${BUILD_DIR}
- cd ${BUILD_DIR}
- cmake -DCMAKE_BUILD_TYPE=Debug ..
- cmake --build . -- -j 8
- git log -3 > changes.txt
artifacts:
name: "${CI_PROJECT_NAME}-$(git log -1 --format=%h)-dbg"
paths:
- ${CI_PROJECT_NAME}-$(git log -1 --format=%h)-dbg/*.bin
- ${CI_PROJECT_NAME}-$(git log -1 --format=%h)-dbg/*.elf
- ${CI_PROJECT_NAME}-$(git log -1 --format=%h)-dbg/changes.txt