TI中文支持网
TI专业的中文技术问题搜集分享网站

初次下载Hello World模板到cortex A8中,出现下面的错误

才开始学习DM8168,一般上手时都希望写一个简单的程序验证一下整个开发流程。我想把hello world程序通过jtag烧写到arm中,出现下面错误:

CortexA8: Trouble Writing Memory Block at 0x40300000 on Page 0 of Length 0x5030: (Error -1065 @ 0x3D5A) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 6.0.14.5)CortexA8: File Loader: Verification failed: Target failed to write 0x40300000
CortexA8: GEL: File: C:\Users\RW\workspace_v6_1\HelloWorld\Debug\HelloWorld.out: Load failed.

我查阅过网上遇到此问题的帖子,总结错误出现的原因可能为cmd文件地址错误,我使用的是ccs提供的hello world模板,cmd是默认自动生成的。我检查过tms320dm8168的memory map,没有发现错误。还有一种可能是因为gel文件使用错了,我现在使用的开发板是第三方提供的,不是TI的评估板。但是使用的gel为第三方提供的,没有使用ti的gel,因此这应该也是没有问题的。现在卡死在这里了,不知如何分析

Chris Meng:

Wei Ren,

在TI DM8168 EVM的gel里面有使能OCMC时钟的配置(如下),请问你使用的gel里面是否有类似的操作?

Setup_PRCM(){    /* Enable the OCMC0RAM Clocks */    WR_MEM_32(CM_ALWON_OCMC_0_CLKSTCTRL, 2);    WR_MEM_32(CM_ALWON_OCMC_0_CLKCTRL,   2);    while(((RD_MEM_32(CM_ALWON_OCMC_0_CLKSTCTRL) & 0x100)>>8)!=1);    while(((RD_MEM_32(CM_ALWON_OCMC_0_CLKCTRL)&0x30000)>>17)!=0);

    /* Enable the OCMC1RAM Clocks */    WR_MEM_32(CM_ALWON_OCMC_1_CLKSTCTRL, 2);    WR_MEM_32(CM_ALWON_OCMC_1_CLKCTRL,   2);    while(((RD_MEM_32(CM_ALWON_OCMC_1_CLKSTCTRL) & 0x100)>>8)!=1);    while(((RD_MEM_32(CM_ALWON_OCMC_1_CLKCTRL)&0x30000)>>17)!=0);

wei ren:

回复 Chris Meng:

有,已经解决问题了,原来在下载程序到目标板时,不能让kernel boot,否则kernel会占用ocmc的地址空间。

wei ren:

回复 Chris Meng:

有,已经解决问题了,原来在下载程序到目标板时,不能让kernel boot,否则kernel会占用ocmc的地址空间。

Chris Meng:

回复 wei ren:

你好,

应该是Linux起来后使能了MMU,导致地址映射关系变化,然后导致的问题。

赞(0)
未经允许不得转载:TI中文支持网 » 初次下载Hello World模板到cortex A8中,出现下面的错误
分享到: 更多 (0)