Компиляция под STM32 с помощью gcc
Добавлено: Ср янв 01, 2020 18:34:16
Ну, основной вопрос составляет то, как заставить компилятор вырабатывать объектные файлы под вариант архитектуры arm cortex m3, на которой построены данные микроконтроллеры. Сама компиляция осуществляется, если я ничего не напутал, командой arm-none-eabi-gcc. Почитав интернет, наткнулся на статью, где её автор писал про данную компиляцию. Проблема его статьи была в том, что в самой статье команд на компиляцию он не привёл, а отвёл роль изучения данных команд на приложенный к статье makefile, который скачать было нельзя, а из той-же самой статьи следовало то, что cortex m3 это упрощённая версия arm, в которой отсутствует как минимум 1 команда (там-же приведённая). Так вот, как должна быть составлена команда на компиляцию, чтобы компилятор выработал код, полностью совместимый с данной архитектурой? Так-же, заодно вопрос, как выработанный код преобразовать в файл .hex? Так-же, при попытке скомпилировать программу, подсунув ему нужные файлы из cmsis выдаёт следующие сообщения об ошибках:
core_cm3.c: In function 'uint32_t __get_PSP()':
core_cm3.c:445:12: error: cannot allocate stack for variable 'result', naked function.
uint32_t result=0;
^~~~~~
core_cm3.c: In function 'uint32_t __get_MSP()':
core_cm3.c:479:12: error: cannot allocate stack for variable 'result', naked function.
uint32_t result=0;
^~~~~~
In file included from system_stm32f10x.c:65:0:
stm32f10x.h:96:3: error: #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
А при попытке подсунуть файл startup_stm32f10x_cl.s кучу сообщений такого рода:
startup_stm32f10x_cl.s:349: Error: bad instruction `else '
Как это можно исправить?
И, если знаете толковые материалы про использованию arm-gcc для stm32, подскажите, пожалуйста.
core_cm3.c: In function 'uint32_t __get_PSP()':
core_cm3.c:445:12: error: cannot allocate stack for variable 'result', naked function.
uint32_t result=0;
^~~~~~
core_cm3.c: In function 'uint32_t __get_MSP()':
core_cm3.c:479:12: error: cannot allocate stack for variable 'result', naked function.
uint32_t result=0;
^~~~~~
In file included from system_stm32f10x.c:65:0:
stm32f10x.h:96:3: error: #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
А при попытке подсунуть файл startup_stm32f10x_cl.s кучу сообщений такого рода:
startup_stm32f10x_cl.s:349: Error: bad instruction `else '
Как это можно исправить?
И, если знаете толковые материалы про использованию arm-gcc для stm32, подскажите, пожалуйста.