abszy 发表于 2015-3-13 11:31:19

[已解决]KE02使用KDS学习MQX lite链接不过,提示`m_data' 溢出

本帖最后由 abszy 于 2015-3-13 16:08 编辑

在FRDM-KE02Z开发板上,学习MQX。按照DWF13_APF_ENT_T1286_Ch.pdf文档()的步骤,一步一步的使用KDS中的PE操作,最后编译工程,提示如下:
'Building target: test.elf'
'Invoking: Cross ARM C++ Linker'
arm-none-eabi-g++ -mcpu=cortex-m0plus -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections-g3 -T "C:/Users/yang.zou/workspace.kds/test/Project_Settings/Linker_Files/ProcessorExpert.ld" -Xlinker --gc-sections -L"C:/Users/yang.zou/workspace.kds/test/Project_Settings/Linker_Files" -Wl,-Map,"test.map" -nanolibc -o "test.elf"./Sources/Events.o ./Sources/main.o ./Sources/mqx_tasks.o./Project_Settings/Startup_Code/startup.o./MQXLITE/psp/cortex_m/core/M0/boot.o ./MQXLITE/psp/cortex_m/core/M0/dispatch.o./MQXLITE/psp/cortex_m/cortex.o ./MQXLITE/psp/cortex_m/int_gkis.o ./MQXLITE/psp/cortex_m/int_inst.o ./MQXLITE/psp/cortex_m/int_kisr.o ./MQXLITE/psp/cortex_m/int_pvta.o ./MQXLITE/psp/cortex_m/int_unx.o ./MQXLITE/psp/cortex_m/int_vtab.o ./MQXLITE/psp/cortex_m/int_xcpt.o ./MQXLITE/psp/cortex_m/mem_zero.o ./MQXLITE/psp/cortex_m/psp_iinit.o ./MQXLITE/psp/cortex_m/psp_supp.o ./MQXLITE/psp/cortex_m/psp_tiad.o ./MQXLITE/psp/cortex_m/psp_tinm.o ./MQXLITE/psp/cortex_m/psp_tipr.o ./MQXLITE/psp/cortex_m/psp_tisu.o ./MQXLITE/psp/cortex_m/sc_irdyq.o ./MQXLITE/psp/cortex_m/stack_bu.o ./MQXLITE/psp/cortex_m/stack_de.o ./MQXLITE/psp/cortex_m/stack_st.o./MQXLITE/kernel/idletask.o ./MQXLITE/kernel/int.o ./MQXLITE/kernel/klog.o ./MQXLITE/kernel/lwevent.o ./MQXLITE/kernel/lwlog.o ./MQXLITE/kernel/lwmem.o ./MQXLITE/kernel/lwmsgq.o ./MQXLITE/kernel/lwsem.o ./MQXLITE/kernel/lwtimer.o ./MQXLITE/kernel/mqx_utils.o ./MQXLITE/kernel/mqxlite.o ./MQXLITE/kernel/mutex.o ./MQXLITE/kernel/qu_test.o ./MQXLITE/kernel/sched.o ./MQXLITE/kernel/task.o ./MQXLITE/kernel/time_ticks.o./MQXLITE/config/task_template_list.o./Generated_Code/BLUE.o ./Generated_Code/Cpu.o ./Generated_Code/CsIO1.o ./Generated_Code/GREEN.o ./Generated_Code/IO1.o ./Generated_Code/MQX1.o ./Generated_Code/PE_LDD.o ./Generated_Code/RED.o ./Generated_Code/SystemTimer1.o ./Generated_Code/Vectors.o   
c:/freescale/kds_1.1.1/toolchain/bin/../lib/gcc/arm-none-eabi/4.8.0/../../../../arm-none-eabi/bin/ld.exe: test.elf section `._user_heap_stack' will not fit in region `m_data'
c:/freescale/kds_1.1.1/toolchain/bin/../lib/gcc/arm-none-eabi/4.8.0/../../../../arm-none-eabi/bin/ld.exe: region `m_data' overflowed by 332 bytes
collect2.exe: error: ld returned 1 exit status
make: *** Error 1

11:22:28 Build Finished (took 34s.588ms)


从提示看出,是链接时m_data段溢出,然后我就在PE中查看了连接设置,见下图(也可以直接修改Project_Setting-Linker_Files-ProcessorExpert.ld)

以上配置都是默认生成的,
栈和堆都是0x100,不知道应该减小到多少?太小了MQX应该无法执行吧?

abszy 发表于 2015-3-13 15:21:20

试着将第二张图中的
stack size改为最小的20
heap size 改为0

可以了

FSL_TICS_ZP 发表于 2015-3-16 14:23:44

OK,以后有问题再交流!
页: [1]
查看完整版本: [已解决]KE02使用KDS学习MQX lite链接不过,提示`m_data' 溢出