newbornsun Posted January 30, 2017 Report Share Posted January 30, 2017 Hello, I am attempting to compile and flash a uGFX Mikromedia-STM32-M4-ILI9341 example program to my Mikromedia devboard. I am able to successfully compile and therefore create a .hex file in ChibiStudio using the tetris uGFX example file (by setting GFXDEMO = games/tetris in the makefile). As noted, this all compiles fine and dandy, however, when I try to flash the .hex file using ST-Link utility or other .hex flasher, it works, the board successfully flashes, however, only a blank white screen appears upon startup of the dev board. I am wondering if you might happen to know why this is the case or if you can provide me with further assistance. Thank you! Link to comment Share on other sites More sharing options...
newbornsun Posted January 30, 2017 Author Report Share Posted January 30, 2017 (edited) Perhaps I should include my console output: 11:41:09 **** Build of configuration Default for project Mikromedia-example **** make -j4 all . C Compiler Options.... Compiling ../../uGFX/src/gfx.c Compiling ../../uGFX/src/gos/gos_chibios.c arm-none-eabi-gcc -c -ggdb -O1 -mcpu=cortex-m4 -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -fomit-frame-pointer -Wall -Wextra -Wstrict-prototypes -fverbose-asm -ffunction-sections -fdata-sections -fno-common -flto -MMD -MP -MF .build/dep/fakethumbfile.o.d -I. -I../../uGFX -I../../uGFX/3rdparty/tinygl-0.4-ugfx/include -I../../uGFX/boards/base/Mikromedia-STM32-M4-ILI9341 -I../../uGFX/drivers/gdisp/ILI9341 -I../../uGFX/drivers/gaudio/vs1053 -I../../uGFX/demos/applications/notepad -I../../chibios26/os/ports/common/ARMCMx/CMSIS/include -I../../chibios26/os/ports/common/ARMCMx -I../../chibios26/os/ports/GCC/ARMCMx -I../../chibios26/os/ports/GCC/ARMCMx/STM32F4xx -I../../chibios26/os/kernel/include -I../../chibios26/os/hal/include -I../../chibios26/os/hal/platforms/STM32F4xx -I../../chibios26/os/hal/platforms/STM32 -I../../chibios26/os/hal/platforms/STM32/GPIOv2 -I../../chibios26/os/hal/platforms/STM32/I2Cv1 -I../../chibios26/os/hal/platforms/STM32/OTGv1 -I../../chibios26/os/hal/platforms/STM32/RTCv2 -I../../chibios26/os/hal/platforms/STM32/SPIv1 -I../../chibios26/os/hal/platforms/STM32/TIMv1 -I../../chibios26/os/hal/platforms/STM32/USARTv1 -I../../uGFX/boards/base/Mikromedia-STM32-M4-ILI9341/ChibiOS_Board -DGFX_USE_OS_CHIBIOS=TRUE -DGFX_USE_OS_CHIBIOS=TRUE -DCORTEX_USE_FPU=TRUE -DUSE_FPU=hard -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB fakethumbfile.c -o .build/obj/fakethumbfile.o . Linker Options........ Compiling ../../uGFX/src/gos/gos_freertos.c arm-none-eabi-gcc -u chThdExit -Wl,--defsym=__process_stack_size__=0x400 -Wl,--defsym=__main_stack_size__=0x400 -mcpu=cortex-m4 -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -nostartfiles -mthumb -Wl,--gc-sections -T../../chibios26/os/ports/GCC/ARMCMx/STM32F4xx/ld/STM32F407xG.ld -lm .build/obj/fakethumbfile.o -o .build/Mikromedia-example.elf In file included from ../../uGFX/src/../gfx.h:185:0, from ../../uGFX/src/gfx.c:16: ../../uGFX/src/../src/gdisp/gdisp_rules.h:65:6: warning: #warning "GDISP: GDISP_NEED_ANTIALIAS has been set but your hardware does not support reading back pixels. Anti-aliasing will only occur for filled characters." [-Wcpp] #warning "GDISP: GDISP_NEED_ANTIALIAS has been set but your hardware does not support reading back pixels. Anti-aliasing will only occur for filled characters." ^ . Compiling ../../uGFX/src/gos/gos_win32.c Compiling ../../uGFX/src/gos/gos_linux.c Compiling ../../uGFX/src/gos/gos_osx.c ... Compiling ../../chibios26/os/hal/platforms/STM32/TIMv1/pwm_lld.c Compiling ../../chibios26/os/hal/platforms/STM32/USARTv1/serial_lld.c Compiling ../../chibios26/os/hal/platforms/STM32/USARTv1/uart_lld.c Compiling ../../uGFX/boards/base/Mikromedia-STM32-M4-ILI9341/ChibiOS_Board/board.c Compiling ../../uGFX/boards/base/Mikromedia-STM32-M4-ILI9341/ChibiOS_Board/flash_memory.c Linking .build/Mikromedia-example.elf Creating .build/Mikromedia-example.hex Creating .build/Mikromedia-example.bin Creating .build/Mikromedia-example.dmp . text data bss dec hex filename 26920 0 6036 32956 80bc .build/Mikromedia-example.elf 11:41:20 Build Finished (took 11s.638ms) Edited January 31, 2017 by Joel Bodenmann Using code box and shortening unnecessary output Link to comment Share on other sites More sharing options...
inmarket Posted January 30, 2017 Report Share Posted January 30, 2017 Start with the gdisp/basics demo as this enables us to test the hardware with the least amount of "fluff". Make sure that you have the M4 board not the M4-Plus board as that has different hardware on it. Also the M4 board itself comes in 2 versions, one with the ILI9341 and the other with a different display controller. Make sure you have the ILI9341 version. This is a board that I have myself so last time I tried this configuration was working well. If we can't identify the problem then I will fire up my board and retest however that won't happen until next week as I am currently away on business. Link to comment Share on other sites More sharing options...
newbornsun Posted January 31, 2017 Author Report Share Posted January 31, 2017 Hi thanks for the reply. I believe it is the one with ILI9341, as listed on the website. Is there any way to deterministically check? Haven't seen a Mikromedia STM32 M4 with a different driver... Also, I should note, that I was only able to compile the above example by including the following in my makefile: LDFLAGS = -u chThdExit Otherwise wont compile and have linking issues as mentioned in a different thread. Link to comment Share on other sites More sharing options...
newbornsun Posted January 31, 2017 Author Report Share Posted January 31, 2017 Hi, I figured out the problem. Had to set OPT_LINK_OPTIMIZE = no for some reason... Took out -u chThdExit and works like a charm. Thanks for the help. Link to comment Share on other sites More sharing options...
Joel Bodenmann Posted January 31, 2017 Report Share Posted January 31, 2017 Hello @newbornsun and welcome to the µGFX community! I'm glad to hear that you got everything working! The OPT_LINK_OPTIMIZE = no doesn't surprise me at all. Basically that doesn't do anything but turning LTO off. There is one (known) GCC version which has a bug in the LTO stuff. The -u chThdExit stuff would be surprising however. That's definitely wrong and doesn't belong there. Link to comment Share on other sites More sharing options...
inmarket Posted January 31, 2017 Report Share Posted January 31, 2017 The GCC link optimizer is a great idea but unreliable. I tend to leave it on as it leads to smaller binaries but turn it off the moment i get any strange linking errors. Glad you found the problem. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now