По факту: проект компилируется, линкуется и я получаю готовый .hex файл. Затем заливаю hex файл в микроконтроллер STM32F100RBT6B (при помощи ST-Link на STM32F1DISCOVERY) и программы STM32 ST-LINK Utility.
Микроконтроллер должен вывести лог. 1 на 8-ю и 9-ю ножки порта C, но этого не происходит. Я грешу на makefile (в свою очередь разобрался с ним, добавил комментарии ко всем операциям и флагам) или скрипт для линковщика.
Прошу помощи в определении причины неработоспособности прошивки.
Проект лежит тут (в корне проекта лежат также файлы, получаемые при построении проекта) : ссылка на проект на гитхаб
Ниже привожу лог построения проекта:
CODE
--- building ARM-test0. defines: -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER
make clean
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- cleaning...
del /f /q .\*.o
del /f /q .\*.d
del /f /q .\*.lst
del /f /q .\*.lss
del /f /q .\*.map
del /f /q .\*.elf
del /f /q .\*.bin
del /f /q .\*.hex
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
make .\ARM-test0.elf
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- compiling stm32f10x_gpio.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./stm32f10x_gpio.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o stm32f10x_gpio.o stm32f10x_gpio.c
--- compiling system_stm32f10x.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./system_stm32f10x.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o system_stm32f10x.o system_stm32f10x.c
--- compiling core_cm3.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./core_cm3.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o core_cm3.o core_cm3.c
--- compiling stm32f10x_rcc.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./stm32f10x_rcc.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o stm32f10x_rcc.o stm32f10x_rcc.c
--- compiling main.cpp...
arm-none-eabi-g++ -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./main.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -std=gnu++0x -funsigned-bitfields -fshort-enums -o main.o main.cpp
--- assembling startup_ARMCM3.s...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./startup_ARMCM3.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -x assembler-with-cpp -o startup_ARMCM3.o startup_ARMCM3.s
--- linking...
arm-none-eabi-g++ ././stm32f10x_gpio.o ././system_stm32f10x.o ././core_cm3.o ././stm32f10x_rcc.o ././main.o ././startup_ARMCM3.o -mcpu=cortex-m3 -mthumb -Wl,-Map=".\ARM-test0.map",--cref -Wl,--gc-sections -TSTM32F10X_MD_VL.ld -o .\ARM-test0.elf
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
make .\ARM-test0.hex
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- making hex...
arm-none-eabi-objcopy -O ihex .\ARM-test0.elf .\ARM-test0.hex
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
make .\ARM-test0.lss
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- making disassembly...
arm-none-eabi-objdump -dC .\ARM-test0.elf > .\ARM-test0.lss
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
arm-none-eabi-size -d .\ARM-test0.elf
text data bss dec hex filename
1592 1076 28 2696 a88 .\ARM-test0.elf
"Errors: none"
[Finished in 1.3s]
make clean
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- cleaning...
del /f /q .\*.o
del /f /q .\*.d
del /f /q .\*.lst
del /f /q .\*.lss
del /f /q .\*.map
del /f /q .\*.elf
del /f /q .\*.bin
del /f /q .\*.hex
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
make .\ARM-test0.elf
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- compiling stm32f10x_gpio.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./stm32f10x_gpio.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o stm32f10x_gpio.o stm32f10x_gpio.c
--- compiling system_stm32f10x.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./system_stm32f10x.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o system_stm32f10x.o system_stm32f10x.c
--- compiling core_cm3.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./core_cm3.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o core_cm3.o core_cm3.c
--- compiling stm32f10x_rcc.c...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./stm32f10x_rcc.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -o stm32f10x_rcc.o stm32f10x_rcc.c
--- compiling main.cpp...
arm-none-eabi-g++ -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./main.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -std=gnu++0x -funsigned-bitfields -fshort-enums -o main.o main.cpp
--- assembling startup_ARMCM3.s...
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -DSTM32F10X_MD_VL -DHSE_VALUE=8000000 -DUSE_STDPERIPH_DRIVER -I "." -Wa,-adhlns=./startup_ARMCM3.lst -MD -O1 -g -gdwarf-2 -ffunction-sections -fdata-sections -Wall -Wextra -Wundef -Wcast-align -Winline -x assembler-with-cpp -o startup_ARMCM3.o startup_ARMCM3.s
--- linking...
arm-none-eabi-g++ ././stm32f10x_gpio.o ././system_stm32f10x.o ././core_cm3.o ././stm32f10x_rcc.o ././main.o ././startup_ARMCM3.o -mcpu=cortex-m3 -mthumb -Wl,-Map=".\ARM-test0.map",--cref -Wl,--gc-sections -TSTM32F10X_MD_VL.ld -o .\ARM-test0.elf
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
make .\ARM-test0.hex
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- making hex...
arm-none-eabi-objcopy -O ihex .\ARM-test0.elf .\ARM-test0.hex
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
make .\ARM-test0.lss
make[1]: Entering directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
--- making disassembly...
arm-none-eabi-objdump -dC .\ARM-test0.elf > .\ARM-test0.lss
make[1]: Leaving directory 'D:/4 electronics/soft/Sublime Text projects/ARM-test0'
arm-none-eabi-size -d .\ARM-test0.elf
text data bss dec hex filename
1592 1076 28 2696 a88 .\ARM-test0.elf
"Errors: none"
[Finished in 1.3s]
P.S.: я положил все файлы исходников в корень проекта для того что бы исключить возможное "недобавление" какого-то файла в передачу компилятору или ещё что-то. Как прошивка заработает, то раскидаю по папкам как положено.