MQX usage
Hi everybody,
I'm working with the Vybrid VF6 processor with the RTOS MQX on the M4 core. I would like to build MQX application with CrossStudio. Has anyone experience using MQX in CrossStudio? I tried to set it up but I always run into "No such file or directory" errors although I linked the MQX root directory to the project. Can anyone provide help in this case? Thanks in advance.
Best regards,
Christian
-
I did get MQX running on the FRDM-K64F board with CrossWorks recently (also an M4 core). It did take a little while to get to compile, figuring out floating point options, typing in the include paths and fiddling with some other compile settngs etc.
A good starting point is to import the Kiel UVision projects into CrossWorks.
Freescale has recently released a version of MQX ported to Vybrid. Unfortunately the example projects are only for IAR and DS5, which Crossworks doesn't import (I think I'll add that to the requested features now that I think about it).
-
HI,
I have MQX compiled and running on the k64F Freedom board.
The main issue is setting up the paths up in the 'user include directories' setting.
My first attempt at this I just imported one of the uv4 example projects. This is set up quite nice in that it has a project for each of the main MQX components (bsp, mfs, psp etc) to build them into libs, and a project that contains all of those. Your project then includes that as a dependency.
If you've installed MQX using the Freescale installer, no doubt it has gone into the standard directory structure on your C drive (assuming you're using Windows).
I'd recommend putting your projects somewhere else, and not inside the MXQ folder structure where the Freescale example projects are kept. Then you can create lots of your own projects without having to keep modifying the include paths for each project.
E.g. I keep my projects in C:\my_proj\
So my 'user include paths' looks like this
$(TargetsDir)/CMSIS_3/CMSIS/Include ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/config/common ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/config/frdmk64f ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/adc/kadc ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/adc ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/cm ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/dma ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/enet/macnet ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/enet/phy ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/enet ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/esdhc ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/flashx/freescale ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/flashx ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/can/flexcan ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/gpio/kgpio ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/gpio ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/hwtimer ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/i2c ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/i2c/polled ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/i2c/int ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/bsp/frdmk64f ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/include ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/debug ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/io_mem ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/io_null ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/pipe ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/lpm ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/lwadc ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/lwgpio ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/pcb ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/pcb/mqxa ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/rtc ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/sai ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/sai/int ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/sdcard/sdcard_esdhc ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/sdcard/sdcard_spi ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/sdcard ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/serial ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/spi ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/tchres ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/tfs ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/timer ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/usb ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/usb_dcd ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/usb_dcd/polled ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/io/usb_dcd/int ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/psp/cortex_m/compiler/gcc_arm ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/psp/cortex_m/cpu ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/psp/cortex_m ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/psp/cortex_m/core/M4 ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mqx/source/tad ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/mfs/source/include ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/usb/common/include ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/usb/host/source/include ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/usb/host/source/classes/msd/mfs ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/usb/host/source/rtos/mqx ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/usb/host/source/classes/msd ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/usb/host/source/classes/hub ../../../Freescale/Freescale_MQX_4_1_FRDMK64F/shell/source/include
-----------------------------
There are a couple more tweaks to make,
my language standard is gnu99
arm fpu type is FPv4-SP-D16
include standard libraries is YES
Allow multiple symbol definitions is YES
entry point is __boot
I think that's about it.
-
Hi guys,
I am sorry for the late response. I still have problems to get MQX running with Cross Studio. But I think I made some progress. I consider your suggestions with the user include paths and additional options. Now, I am at the point where I always get the same errors even if I play around with the settings. Please see attached my screenshot. If I google these errors, I don't get anything appropriate. I also tried different examples but it makes no difference. The next thing I will try is to use an other version of MQX. Thank you in advance.
Christian
-
For the gpio_twrk70f120m project I imported the section placement file flash_placement.xml and modified it to the attached version.
I had to set the "Linker Symbols Definition" property to
__BOOT_STACK_ADDRESS=__SRAM_segment_end__
__DEFAULT_PROCESSOR_NUMBER=1
__DEFAULT_INTERRUPT_STACK_SIZE=1024
__EXTERNAL_MRAM_RAM_BASE=0xA0000000
__INTERNAL_SRAM_BASE=__SRAM_segment_start__
__INTERNAL_SRAM_SIZE=__SRAM_segment_size__
__UNCACHED_DATA_END=0x2000FFF0
__UNCACHED_DATA_START=__SRAM_segment_used_end__
__thumb_startup=_start
the "Keep Symbols" property to
__vector_table
_cfm
I had to modify boot.S - to call the __init_hardware function before the C library startup code is called.
bl __init_hardware
/* Perform toolchain startup routines */
ASM_EXTERN(toolchain_startup)
b ASM_PREFIX(toolchain_startup)
Please sign in to leave a comment.
Comments
8 comments