大家好,本人正在搭建omapl138的开发环境。
现在搭建的环境是WIN7 32位操作系统,CCS5.1,仿真器用的是北京瑞泰科技的ICETEK-XDS560U-PLUS。ARM端要跑裸机,DSP做算法。
我已经实现了DSP端控制开发板上LED,想实现ARM和DSP之间的通信,ARM去访问外设。安装了OMAPL138_StarterWare_1_10_04_01-Setup.exe。
StarterWare例程里有ipc_polling例子,我感觉挺像我要的,但是编译下载程序之后出现以下这个错误,我想请教一下什么原因。
ARM9_0: File Loader: Data verification failed at address 0xC1080000 Please verify target memory and memory map.
ARM9_0: Unable to terminate memory download: NULL buffer pointer at 0x320
ARM9_0: GEL: File: C:\ti\OMAPL138_StarterWare_1_10_04_01\build\armv5\cgt_ccs\omapl138\evmOMAPL138\ipc_polling\Debug\ipc_polling.out: a data verification error occurred, file load failed.
个人猜测应该是CMD文件的内存分配不对,想知道大家的意见。
以下是CMD文件:
-stack 0x8000 /* SOFTWARE STACK SIZE */
-heap 0x2000 /* HEAP AREA SIZE */
-e Entry
/* SPECIFY THE SYSTEM MEMORY MAP */
#define IPC_ARM_START 0x80000000
#define IPC_ARM_SIZE 0x10
#define IPC_DSP_START 0x80000010 // IPC_ARM_START + IPC_ARM_SIZE
#define IPC_DSP_SIZE 0x10
#define SHARED_IRAM_START 0x80000020 // IPC_ARM_START + IPC_ARM_SIZE + IPC_DSP_SIZE
#define SHARED_IRAM_SIZE 0x1FFDF // 0x1FFFF – (IPC_ARM_SIZE + IPC_DSP_SIZE)
MEMORY
{
IPC_ARM: o = IPC_ARM_START l = IPC_ARM_SIZE /* 16 bytes for ARM */
IPC_DSP: o = IPC_DSP_START l = IPC_DSP_SIZE /* 16 bytes for DSP */
shared_ram: o = SHARED_IRAM_START l = SHARED_IRAM_SIZE /* Remaining IntRAM */
DDR_MEM : org = 0xC1080000 len = 0x02F7FFFF /* 50MB of DDR2 RAM */
}
/* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */
SECTIONS
{
.init : {
system_config.lib<init.obj> (.text)
} load > 0xC1080000 /*0xC1080000*/
.text : load > DDR_MEM /* CODE */
.data : load > DDR_MEM
.bss : load > DDR_MEM /* GLOBAL & STATIC VARS */
RUN_START(bss_start),
RUN_END(bss_end)
.const : load > DDR_MEM /* SOFTWARE SYSTEM STACK */
.cinit : load > DDR_MEM /* SOFTWARE SYSTEM STACK */
.sysmem : load > DDR_MEM
.stack : load > DDR_MEM /* SOFTWARE SYSTEM STACK */
ipc_arm : load > IPC_ARM /* memory dedicated to IPC module */
ipc_dsp : load > IPC_DSP
}
Tony Tang:
这是DDR没有正确配置的原因,所以程序下载不下去。
gel文件里有对DDR进行配置吗?原来跑DSP时,是运行在DDR上吗?板子是谁的?gel文件是对应板子的吗?