Jump to content

Sinalco94

Members
  • Posts

    17
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ok, Thanks. I could solve the build Error. I did the build clean before, but that didn't helped. So I did a full chip eraese. That worked. For the stacksize problem: Do I understand this right that I have to add the options Chibios_process_stacksize and exceptions_stacksize to my makefile and the option 'LDFLAGS' should be empty?
  2. Hello, I have got a question. My Project based on ugfx with ChibiOS runs on an STM32F407VG with the Embest Base Board. I was able to make it run. But now (I didn't changed anything in my Project) it returns an Error when I compile it with ChibiStudio. It returns following error: .build/obj/GFXLIB/src/gfile/gfile.o:(.data+0x0): undefined reference to `FsROMVMT' I couldn't find anything on google about this error. So maybe someone can help me? Another question is about my Linker Options: arm-none-eabi-gcc -Wl,--defsym=__process_stack_size__=0x0F00 -Wl,--defsym=__main_stack_size__=0x0F00 -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 -T../../chibios26/os/ports/GCC/ARMCMx/STM32F4xx/ld/STM32F407xG.ld -lm .build/obj/fakethumbfile.o -o .build/PowerSupply.elf . The question here is? Why is the process and main stack size declared two times? I declared it in my make file with 0x0F00, you can see it below #Makefile für UGFX Embest-STM32-DMSTF4BB #------------------------------------------------------------------------------ # Haupteinstellungen # # Einstellungen # Unter $(GFXLIB)/tools/gmake_scripts/readme.txt Liste der Variablen OPT_OS = chibios OPT_THUMB = yes OPT_LINK_OPTIMIZE = no OPT_CPU = stm32m4 # uGFX Einstellungen # Unter $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk Liste der Variablen GFXLIB = ../../ugfx GFXBOARD = Embest-STM32-DMSTF4BB GFXDEMO = modules/gdisp/basics # ChibiOS Einstellungen ifeq ($(OPT_OS),chibios) # Unter $(GFXLIB)/tools/gmake_scripts/os_chibios_x.mk Liste der Variablen CHIBIOS = ../../chibios26 CHIBIOS_VERSION = 2 CHIBIOS_BOARD = CHIBIOS_PLATFORM = STM32F4xx CHIBIOS_PORT = GCC/ARMCMx/STM32F4xx CHIBIOS_LDSCRIPT = STM32F407xG.ld endif ############################################################################################## # Weiteres für's Projekt # ARCH = arm-none-eabi- SRCFLAGS = -ggdb -O2 CFLAGS = CXXFLAGS = -fno-rtti ASFLAGS = LDFLAGS = -Wl,--defsym=__process_stack_size__=0x0F00 -Wl,--defsym=__main_stack_size__=0x0F00 SRC = OBJS = DEFS = LIBS = INCPATH = LIBPATH = LDSCRIPT = #------------------------------------------------------------------------------ # Includes immer am Ende einbinden # include $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk include $(GFXLIB)/tools/gmake_scripts/os_$(OPT_OS).mk include $(GFXLIB)/tools/gmake_scripts/compiler_gcc.mk # *** Ende *** I would be very happy if anyone can help me Thank you.
  3. ok, i tried 0x1000 for stack file. That didn't worked. Here is my gfxconf file: /* * Copyright (c) 2012, 2013, Joel Bodenmann aka Tectu <joel@unormal.org> * Copyright (c) 2012, 2013, Andrew Hannam aka inmarket */ #ifndef _GFXCONF_H #define _GFXCONF_H /* The operating system to use. One of these must be defined - preferably in your Makefile */ //#define GFX_USE_OS_CHIBIOS FALSE //#define GFX_USE_OS_WIN32 FALSE //#define GFX_USE_OS_LINUX FALSE //#define GFX_USE_OS_OSX FALSE /* GFX sub-systems to turn on */ #define GFX_USE_GDISP TRUE #define GFX_USE_GWIN TRUE #define GFX_USE_GINPUT TRUE #define GFX_USE_GEVENT TRUE #define GFX_USE_GTIMER TRUE #define GFX_USE_GQUEUE TRUE /* Features for the GDISP sub-system. */ #define GDISP_NEED_VALIDATION TRUE #define GDISP_NEED_CLIP TRUE #define GDISP_NEED_IMAGE TRUE #define GDISP_STARTUP_COLOR HTML2COLOR(0xC0C0C0) #define GDISP_NEED_CIRCLE TRUE #define GDISP_NEED_TEXT TRUE #define GDISP_NEED_MULTITHREAD TRUE /* GDISP image decoders */ //#define GDISP_NEED_IMAGE_NATIVE TRUE //#define GDISP_NEED_IMAGE_GIF TRUE #define GDISP_NEED_IMAGE_BMP TRUE //#define GDISP_NEED_IMAGE_JPG TRUE //#define GDISP_NEED_IMAGE_PNG TRUE #define GFX_USE_GFILE TRUE #define GFILE_NEED_ROMFS TRUE //#define GFILE_NEED_NATIVEFS TRUE /* GDISP fonts to include */ #define GDISP_INCLUDE_FONT_UI2 TRUE /* Features for the GWIN subsystem. */ #define GWIN_NEED_WINDOWMANAGER TRUE #define GWIN_NEED_WIDGET TRUE #define GWIN_NEED_SLIDER TRUE #define GWIN_NEED_CONSOLE TRUE /* Features for the GINPUT subsystem. */ #define GINPUT_NEED_MOUSE TRUE /* Features for the GQUEUE subsystem. */ #define GQUEUE_NEED_ASYNC TRUE #endif /* _GFXCONF_H */ and my makefile: #Makefile für UGFX Embest-STM32-DMSTF4BB #------------------------------------------------------------------------------ # Haupteinstellungen # # Einstellungen # Unter $(GFXLIB)/tools/gmake_scripts/readme.txt Liste der Variablen OPT_OS = chibios OPT_THUMB = yes OPT_LINK_OPTIMIZE = no OPT_CPU = stm32m4 # uGFX Einstellungen # Unter $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk Liste der Variablen GFXLIB = ../../ugfx GFXBOARD = Embest-STM32-DMSTF4BB GFXDEMO = modules/gdisp/basics # ChibiOS Einstellungen ifeq ($(OPT_OS),chibios) # Unter $(GFXLIB)/tools/gmake_scripts/os_chibios_x.mk Liste der Variablen CHIBIOS = ../../chibios26 CHIBIOS_VERSION = 2 CHIBIOS_BOARD = CHIBIOS_PLATFORM = STM32F4xx CHIBIOS_PORT = GCC/ARMCMx/STM32F4xx CHIBIOS_LDSCRIPT = STM32F407xG.ld endif ############################################################################################## # Weiteres für's Projekt # ARCH = arm-none-eabi- SRCFLAGS = -ggdb -O0 CFLAGS = CXXFLAGS = -fno-rtti ASFLAGS = LDFLAGS = -Wl,--defsym=__process_stack_size__=0x1000 -Wl,--defsym=__main_stack_size__=0x1000 SRC = OBJS = DEFS = LIBS = INCPATH = LIBPATH = LDSCRIPT = #------------------------------------------------------------------------------ # Includes immer am Ende einbinden # include $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk include $(GFXLIB)/tools/gmake_scripts/os_$(OPT_OS).mk include $(GFXLIB)/tools/gmake_scripts/compiler_gcc.mk # *** Ende *** The last line that was executed in the gfx files is: i2cMasterTransmitTimeout(&I2CD1, STMPE811_ADDR, txbuf, 2, 0, 0, MS2ST(STMPE811_TIMEOUT)); in the "gmouse_lld_STMPE811_board.h" Thanks for the help
  4. Update: I tested to change both process stack size and main stack size. I changed both to 0x23000, but it didn't worked. The debugger stops also, like before, after port_unlock_from_isr();.
  5. I just tested an existing example. The Debugger also stops in the _ginputInit() routine while mouse Initialization. void SVCallVector(void) { struct extctx *ctxp; #if CORTEX_USE_FPU /* Enforcing unstacking of the FP part of the context.*/ SCB_FPCCR &= ~FPCCR_LSPACT; #endif /* Current PSP value.*/ asm volatile ("mrs %0, PSP" : "=r" (ctxp) : : "memory"); /* Discarding the current exception context and positioning the stack to point to the real one.*/ ctxp++; /* Restoring real position of the original stack frame.*/ asm volatile ("msr PSP, %0" : : "r" (ctxp) : "memory"); port_unlock_from_isr(); } The Debugger Stops after port_unlock_from_isr(); in the SVCalVector() Function. The Program doesn't jump to a hard fault handler. The actual stack size is: LDFLAGS = -Wl,--defsym=__process_stack_size__=0x0800 -Wl,--defsym=__main_stack_size__=0x0800 Do I have to change both, main_stack_size and process_stack_size. Is the stack size big enough?
  6. Sorry. I use the Embest-Base Board with the Touchscreen. I included all the board files and tried to implement the demo /gdisp/basics. Everything went fine. The dispaly worked. But then I tried to implement the Ginput. So I added to the gfxconf.h: /////////////////////////////////////////////////////////////////////////// // GINPUT // /////////////////////////////////////////////////////////////////////////// #define GFX_USE_GINPUT TRUE #define GINPUT_NEED_MOUSE TRUE Here is the full gfxconf.h: #ifndef _GFXCONF_H #define _GFXCONF_H /* The operating system to use. One of these must be defined - preferably in your Makefile */ //#define GFX_USE_OS_CHIBIOS FALSE //#define GFX_USE_OS_WIN32 FALSE //#define GFX_USE_OS_LINUX FALSE //#define GFX_USE_OS_OSX FALSE /* GFX sub-systems to turn on * #define GFX_USE_GDISP TRUE /* Features for the GDISP sub-system. */ #define GDISP_NEED_VALIDATION TRUE #define GDISP_NEED_CLIP TRUE /////////////////////////////////////////////////////////////////////////// // GINPUT // /////////////////////////////////////////////////////////////////////////// #define GFX_USE_GINPUT TRUE #define GINPUT_NEED_MOUSE TRUE #endif /* _GFXCONF_H */ When I set GFX_USE_GINPUT and GINPUT_NEED_MOUSE to FALSE everything works again. But with both on TRUE the Debugger stops after port_unlock_from_isr(); in the "chcore_v7m.c" file. I didn't changed anything at the main.c from the gdisp/basics Demo. Do you need more Information?
  7. Hello everyone, I have got a problem. I just tried to implement ginput. There are no errors from the compiler, but the debugger always stops in the gfxinit() routine. I debbuged everything and got to the point where the debugger actual stops. It stops always after: port_unlock_from_isr(); in the "chcore_v7m.c" file. I don't know why? Can anyone help me please?
  8. Thanks to everyone, I could fix the Problem. The demo is working now at the Embest Board It actually had some issue with the gfxSleepmilliseconds. I changed the delay a little bit and now it works.
  9. Sorry of course my fault Do I understand that right that I have to change the macro "DEBUGWRITE" to something that is compatible to my platform? I tried that but get the same output?
  10. There is no hard-fault, it just stops there and i can't move to the next line. I tried to run threads and threads_advanced in the gos directory. Both return an error, here is the output for threads: make -j4 all . Compiling ../../ugfx/demos/modules/gos/threads/main.c C Compiler Options.... arm-none-eabi-gcc -c -ggdb -O0 -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 -MMD -MP -MF .build/dep/fakethumbfile.o.d -I. -I../../ugfx -I../../ugfx/3rdparty/tinygl-0.4-ugfx/include -I../../ugfx/boards/base/Embest-STM32-DMSTF4BB -I../../ugfx/drivers/gdisp/SSD2119 -I../../ugfx/demos/modules/gos/threads -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 -DGFX_USE_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........ In file included from ../../chibios26/os/kernel/include/ch.h:110:0, from ../../ugfx/src/gos/gos_chibios.h:18, from ../../ugfx/src/gos/gos.h:483, from ../../ugfx/gfx.h:200, from ../../ugfx/demos/modules/gos/threads/main.c:1: ./chconf.h:531:0: warning: "CORTEX_USE_FPU" redefined #define CORTEX_USE_FPU FALSE ^ <command-line>:0:0: note: this is the location of the previous definition arm-none-eabi-gcc -Wl,--defsym=__process_stack_size__=0x0800 -Wl,--defsym=__main_stack_size__=0x0800 -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 -T../../chibios26/os/ports/GCC/ARMCMx/STM32F4xx/ld/STM32F407xG.ld -lm .build/obj/fakethumbfile.o -o .build/Embest.elf . ../../ugfx/demos/modules/gos/threads/main.c:13:3: warning: #warning "You must alter this demo to define a DEBUGWRITE macro for your platform." [-Wcpp] #warning "You must alter this demo to define a DEBUGWRITE macro for your platform." ^ ../../ugfx/demos/modules/gos/threads/main.c:14:3: warning: #warning "Be careful of using C library functions as they sometimes crash if they are not expecting stack changes (if possible use a multi-thread aware C library)" [-Wcpp] #warning "Be careful of using C library functions as they sometimes crash if they are not expecting stack changes (if possible use a multi-thread aware C library)" ^ ../../ugfx/demos/modules/gos/threads/main.c:15:3: warning: #warning "You might flash LED's instead if that is better for your platform." [-Wcpp] #warning "You might flash LED's instead if that is better for your platform." ^ ../../ugfx/demos/modules/gos/threads/main.c:16:3: error: #error "--" #error "--" ^ ../../ugfx/demos/modules/gos/threads/main.c: In function 'heartbeat1': ../../ugfx/demos/modules/gos/threads/main.c:24:6: warning: implicit declaration of function 'DEBUGWRITE' [-Wimplicit-function-declaration] DEBUGWRITE("thread 1\n"); ^ make: *** [.build/obj/GFXLIB/demos/modules/gos/threads/main.o] Error 1 and here for threads_advanced: make -j4 all . C Compiler Options.... Compiling ../../ugfx/demos/modules/gos/threads_advanced/main.c arm-none-eabi-gcc -c -ggdb -O0 -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 -MMD -MP -MF .build/dep/fakethumbfile.o.d -I. -I../../ugfx -I../../ugfx/3rdparty/tinygl-0.4-ugfx/include -I../../ugfx/boards/base/Embest-STM32-DMSTF4BB -I../../ugfx/drivers/gdisp/SSD2119 -I../../ugfx/demos/modules/gos/threads_advanced -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 -DGFX_USE_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........ arm-none-eabi-gcc -Wl,--defsym=__process_stack_size__=0x0800 -Wl,--defsym=__main_stack_size__=0x0800 -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 -T../../chibios26/os/ports/GCC/ARMCMx/STM32F4xx/ld/STM32F407xG.ld -lm .build/obj/fakethumbfile.o -o .build/Embest.elf In file included from ../../chibios26/os/kernel/include/ch.h:110:0, from ../../ugfx/src/gos/gos_chibios.h:18, from ../../ugfx/src/gos/gos.h:483, from ../../ugfx/gfx.h:200, from ../../ugfx/demos/modules/gos/threads_advanced/main.c:41: ./chconf.h:531:0: warning: "CORTEX_USE_FPU" redefined #define CORTEX_USE_FPU FALSE ^ <command-line>:0:0: note: this is the location of the previous definition . ../../ugfx/demos/modules/gos/threads_advanced/main.c:56:3: warning: #warning "You must alter this demo to define a DEBUGWRITE macro for your platform." [-Wcpp] #warning "You must alter this demo to define a DEBUGWRITE macro for your platform." ^ ../../ugfx/demos/modules/gos/threads_advanced/main.c:57:3: warning: #warning "Be careful of using C library functions as they sometimes crash if they are not expecting stack changes (if possible use a multi-thread aware C library)" [-Wcpp] #warning "Be careful of using C library functions as they sometimes crash if they are not expecting stack changes (if possible use a multi-thread aware C library)" ^ ../../ugfx/demos/modules/gos/threads_advanced/main.c:58:3: warning: #warning "You might flash LED's instead if that is better for your platform." [-Wcpp] #warning "You might flash LED's instead if that is better for your platform." ^ ../../ugfx/demos/modules/gos/threads_advanced/main.c:59:3: error: #error "--" #error "--" ^ ../../ugfx/demos/modules/gos/threads_advanced/main.c: In function 'Thread_function': ../../ugfx/demos/modules/gos/threads_advanced/main.c:73:3: warning: implicit declaration of function 'DEBUGWRITE' [-Wimplicit-function-declaration] DEBUGWRITE("Message from Thread\n"); ^ make: *** [.build/obj/GFXLIB/demos/modules/gos/threads_advanced/main.o] Error 1
  11. Thanks for reply. Update: I debugged the whole Project with : __main_stack_size__ = 0x0800; __process_stack_size_ = 0x0800; but i added it to the makefile(LDFLAGS). The Debugger always stops at the Hardware Reset in "gdisp_lld_SSD2119.c", at the second "gfxSleepMilliseconds(20)". ..
  12. Has anyone an advice for the Problem with the white screen? I tried to change: __main_stack_size__ = 0x0200; __process_stack_size__ = 0x0200; with __main_stack_size__ = 0x0800; __process_stack_size_ = 0x0800; but this didn't worked for me.
  13. I tried the first tip I changed the stack_size to 0x0800, but now I got the info while debugging "Unable to match requested speed 8000 kHz, using 4000 kHz" So I changed the file back to default and I still get the message "Unable to match requested speed 8000 kHz, using 4000 kHz". The Debugger alwas stops at "_gdispInit();". As I use ChibiOS V2 the first advice should be the right one. But it still doesn't work.
  14. Update: I was able to fix the problem. I just added #include "board.c" in the "hal.c" file. Now everything compiles without any errors. But now I have got another Problem. After Compiling and Debugging the LCD turns white. I used the gfxdemo: GFXDEMO = modules/gdisp/basics when i look at the main.c file I see that there should be something else instead of the white LCD Screen? Do i miss something? Do I have to include the STMPE811 Controller Files and the SSD2119?
  15. I have been on holidays the last few weeks so I couldn't work on my project until now. I added the board.c and board.h file form \boards\base\Embest-STM32-DMSTF4BB\example_chibios_2.x to the compilation tree but it still doesn't work. How do I add it to the include path? My Compilation tree looks like this: I couldn't find any solution to fix this problem. Could you please help me?
×
×
  • Create New...