Мой ARM Cortex M3 micro генерирует серьезную ошибку при запуске функции библиотеки C "localtime ()". Пошаговое выполнение функции localtime показывает, что 64-битные адреса используются везде. Это не вызывало никаких проблем, пока эта строка кода «str r1, [r3, r2]» не использует относительный 64-битный адрес. Компилятор GCC настроен для режима Thumb. Должен ли компилятор / компоновщик распознавать режим Thumb и код компиляции / компоновки для этого режима? Что я могу сделать, чтобы решить эту проблему?
пошаговая функция localtime () для поиска источника ошибки адреса.
str r1, [r3, r2]
===========================================
Сделать файл
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
-include ../makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include Source/subdir.mk
-include subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
-include ../makefile.defs
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: GPS_Clock3.axf
dependents:
-cd C:/Users/Greg/SimplicityStudio/v4_workspace/GPS_Clock3/GNU\ ARM\ v4.9.3\ -\ Release && $(MAKE) all
# Tool invocations
GPS_Clock3.axf: $(OBJS) $(USER_OBJS) C:/Users/Greg/SimplicityStudio/v4_workspace/GPS_Clock3/GNU\ ARM\ v4.9.3\ -\ Release/GPS_Clock3.axf
@echo 'Building target: $@'
@echo 'Invoking: GNU ARM C Linker'
arm-none-eabi-gcc -g3 -gdwarf-2 -mcpu=cortex-m3 -mthumb -T "C:/Users/Greg/SimplicityStudio/v4_workspace/GPS_Clock3/GNU ARM v4.9.3 - Debug/GPS_Clock3.ld" -nostartfiles --specs=nosys.specs -Xlinker --gc-sections -Xlinker -Map="GPS_Clock3.map" --specs=nano.specs -o GPS_Clock3.axf "./Source/aeabi_memset-thumb.o" "./Source/crt0.o" "./Source/em_emu.o" "./Source/functions.o" "./Source/interrupts.o" "./Source/main.o" "./Source/startup_efm32jg1b.o" "./Source/test.o" -lm -Wl,--start-group -lgcc -lc -lnosys -Wl,--end-group
@echo 'Finished building target: $@'
@echo ' '
@echo 'Building hex file: GPS_Clock3.hex'
arm-none-eabi-objcopy -O ihex "GPS_Clock3.axf" "GPS_Clock3.hex"
@echo ' '
@echo 'Building bin file: GPS_Clock3.bin'
arm-none-eabi-objcopy -O binary "GPS_Clock3.axf" "GPS_Clock3.bin"
@echo ' '
@echo 'Building s37 file: GPS_Clock3.s37'
arm-none-eabi-objcopy -O srec "GPS_Clock3.axf" "GPS_Clock3.s37"
@echo ' '
@echo 'Running size tool'
arm-none-eabi-size "GPS_Clock3.axf"
@echo ' '
# Other Targets
clean:
-$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) GPS_Clock3.axf
-@echo ' '
.PHONY: all clean dependents
.SECONDARY:
C:/Users/Greg/SimplicityStudio/v4_workspace/GPS_Clock3/GNU\ ARM\ v4.9.3\ -\ Release/GPS_Clock3.axf:
-include ../makefile.targets