Hello,
i have some problem about double!
Through terminal there is some query, that i should give some number.
for example how much delay in per hour.
if i give through terminal a number 1.1 h then it printed about -1173000!
It shall print only 1.1.
And i think, maybe there is some problem about makefile from FreeRTOS.
( because it doesn’t compiler through FreeRTOS to STM32F407 Processor! )
And I believe something throug this line shall be solved!
— CPU = -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16
Please I need help, thanks
here is the fully Code of Makefile:
Optimization level, can be [0, 1, 2, 3, s].
0 = turn off optimization. s = optimize for size.
OPT = 0
Object files directory
Warning: this will be removed by make clean!
#
OBJDIR = obj
Target file name (without extension)
TARGET = $(OBJDIR)/main
TARGET = $(OBJDIR)/STM32F4_Test
Define all C source files (dependencies are generated automatically)
#
SOURCES += src/uart.c
SOURCES += src/ustime.c
SOURCES += src/main.c
SOURCES += src/startup
stm32f4xx.S
SOURCES += src/systemstm32f4xx.c
SOURCES += src/syscalls.c
SOURCES += src/modbus.c
SOURCES += src/test.c
SOURCES += src/get.c
SOURCES += src/heap_2.c
SOURCES += FreeRTOS/Source/tasks.c
SOURCES += FreeRTOS/Source/queue.c
SOURCES += FreeRTOS/Source/list.c
SOURCES += FreeRTOS/Source/croutine.c
SOURCES += FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/misc.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
adc.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxcan.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
crc.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxcryp.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
crypaes.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
crypdes.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
cryptdes.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
dac.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxdbgmcu.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
dcmi.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxdma.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
exti.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxflash.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
fsmc.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxgpio.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
hash.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxhash
md5.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxhash
sha1.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxi2c.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
iwdg.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxpwr.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
rcc.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxrng.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
rtc.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxsdio.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
spi.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxsyscfg.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx
tim.c
SOURCES += libs/STM32F4xxStdPeriph
Driver/src/stm32f4xxusart.c
SOURCES += libs/STM32F4xx
StdPeriphDriver/src/stm32f4xx_wwdg.c
OBJECTS = $(addprefix $(OBJDIR)/,$(addsuffix .o,$(basename $(SOURCES))))
Place -D, -U or -I options here for C and C++ sources
CPPFLAGS += -Isrc
CPPFLAGS += -IFreeRTOS/Source/include
CPPFLAGS += -Ilibs/CMSIS/Include
CPPFLAGS += -Ilibs/Device/STM32F4xx/Include
CPPFLAGS += -Ilibs/STM32F4xx
StdPeriphDriver/inc
—————- Compiler Options C —————-
-g*: generate debugging information
-O*: optimization level
-f…: tuning, see GCC documentation
-Wall…: warning level
-Wa,…: tell GCC to pass this to the assembler.
-adhlns…: create assembler listing
CFLAGS = -O$(OPT)
CFLAGS += -std=gnu99
CFLAGS += -gdwarf-2
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
CFLAGS += -Wall
CFLAGS += -Wextra
CFLAGS += -Wpointer-arith
CFLAGS += -Wstrict-prototypes
CFLAGS += -Winline
CFLAGS += -Wunreachable-code
CFLAGS += -Wundef
CFLAGS += -Wa,-adhlns=$(OBJDIR)/$(*F).lst
Optimize use of the single-precision FPU
#
CFLAGS += -fsingle-precision-constant
This will not work without recompiling libs
#
CFLAGS += -fshort-double
—————- Compiler Options C++ —————-
#
CXXFLAGS = $(CFLAGS)
—————- Assembler Options —————-
-Wa,…: tell GCC to pass this to the assembler
-adhlns: create listing
#
ASFLAGS = -Wa,-adhlns=$(OBJDIR)/$(*F).lst
—————- Linker Options —————-
-Wl,…: tell GCC to pass this to linker
-Map: create map file
–cref: add cross reference to map file
LDFLAGS += -lm
LDFLAGS += -Wl,-Map=$(TARGET).map,–cref
LDFLAGS += -Wl,–gc-sections
LDFLAGS += -Tsrc/stm32_flash.ld
============================================================================
Define programs and commands
TOOLCHAIN = d:/Programme/CodeSourcery/Sourcery
201109
ARMEABI/bin/arm-none-eabi
CC = $(TOOLCHAIN)-gcc
OBJCOPY = $(TOOLCHAIN)-objcopy
OBJDUMP = $(TOOLCHAIN)-objdump
SIZE = $(TOOLCHAIN)-size
NM = $(TOOLCHAIN)-nm
OPENOCD = D:Toolsopenocd-0.7.0binopenocd-0.7.0.exe
DOXYGEN = doxygen
STLINK = tools/ST-LINK_CLI.exe
MKDIR = d:toolsunxutilsbinmkdir.exe
ifeq (AMD64, $(PROCESSOR_ARCHITEW6432))
SUBWCREV = tools/SubWCRev64.exe
else
SUBWCREV = tools/SubWCRev.exe
endif
Compiler flags to generate dependency files
GENDEPFLAGS = -MMD -MP -MF $(OBJDIR)/$(*F).d
Combine all necessary flags and optional flags
Add target processor to flags.
#
CPU = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
CPU = -mcpu=cortex-m4 -mthumb
#
// kannst du mal nach dem problem suchen? Und dich ueber floating point probleme informieren?
// auf der ARM cpu oder spezielle dieser F407 cpu
CPU = -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16
CPU = -mcpu=cortex-m4 -mthumb
CFLAGS += $(CPU)
CXXFLAGS += $(CPU)
ASFLAGS += $(CPU)
LDFLAGS += $(CPU)
Default target.
all: setup gccversion build showsize
setup:
$(MKDIR) -p $(OBJDIR)
$(MKDIR) -p $(OBJDIR)src
$(MKDIR) -p $(OBJDIR)FreeRTOSSource
$(MKDIR) -p $(OBJDIR)FreeRTOSSourceportableGCCARM
CM4F
$(MKDIR) -p $(OBJDIR)libsSTM32F4xxStdPeriph_Driversrc
build: elf hex lss sym bin
elf: $(TARGET).elf
hex: $(TARGET).hex
bin: $(TARGET).bin
lss: $(TARGET).lss
sym: $(TARGET).sym
doxygen:
@echo
@echo Creating Doxygen documentation
@$(DOXYGEN)
Display compiler version information
gccversion:
@$(CC) –version
Show the final program size
showsize: elf
@echo
@$(SIZE) $(TARGET).elf
debug level
OOCD_CL=-d2
OOCD_CL=-d3
interface and board/target settings (using the OOCD target-library here)
OOCD_CL+=-c “fast enable”
OOCD
CL+=-f interface/signalyzer.cfg -f openocd/stm32f4x.cfg
OOCDCL+=-f openocd/config.cfg
OOCD_CL+=-c init -c targets
commands to prepare flash-write
OOCD_CL+=-c “halt”
flash-write and -verify
OOCD
CL+=-c “flash writeimage erase $(TARGET).elf” -c “verify_image $(TARGET).elf”
reset target
OOCD_CL+=-c “reset run”
terminate OOCD after programming
OOCD_CL+=-c shutdown
Flash the device
flash: hex
$(OPENOCD) -f “interface/signalyzer.cfg” -f “openocd/stm32f4x.cfg” -f “openocd/config.cfg” -c “flash_image $(TARGET).elf; shutdown”
$(OPENOCD) $(OOCD_CL)
$(STLINK) -c SWD -P $(TARGET).hex -Run
Target: clean project
clean:
@echo Cleaning project:
rm -rf $(OBJDIR)
rm -rf docs/html
Create extended listing file from ELF output file
%.lss: %.elf
@echo
@echo Creating Extended Listing: $@
$(OBJDUMP) -h -S -z $< > $@
Create a symbol table from ELF output file
%.sym: %.elf
@echo
@echo Creating Symbol Table: $@
$(NM) -n $< > $@
Link: create ELF output file from object files
.SECONDARY: $(TARGET).elf
.PRECIOUS: $(OBJECTS)
$(TARGET).elf: $(OBJECTS)
@echo
@echo Linking: $@
$(CC) $^ $(LDFLAGS) –output $@
Create final output files (.hex, .eep) from ELF output file.
%.hex: %.elf
@echo
@echo Creating hex file: $@
$(OBJCOPY) -O ihex $< $@
Create bin file :
%.bin: %.elf
@echo
@echo Creating bin file: $@
$(OBJCOPY) -O binary $< $@
Compile: create object files from C source files
$(OBJDIR)/%.o : %.c
@echo
@echo Compiling C: $<
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(GENDEPFLAGS) $< -o $@
Compile: create object files from C++ source files
$(OBJDIR)/%.o : %.cpp
@echo
@echo Compiling CPP: $<
$(CC) -c $(CPPFLAGS) $(CXXFLAGS) $(GENDEPFLAGS) $< -o $@
Assemble: create object files from assembler source files
$(OBJDIR)/%.o : %.s
@echo
@echo Assembling: $<
$(CC) -c $(CPPFLAGS) $(ASFLAGS) $< -o $@
Include the dependency files
-include $(wildcard $(OBJDIR)/*.d)
Listing of phony targets
.PHONY: all build flash clean
doxygen elf lss sym
showsize gccversion
build elf hex bin lss sym clean clean_list setup program