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

有关c6416的hpi boot加载问题

c6416的dsp关于hpi  boot引导加载,现在是我已把自己编的LED灯程序.out文件转化为.h文件了,也下载到dsp的0地址了,现在是dsp无法运行(不是hpi boot 可以运行的);我想的是在.h文件里有Entry point 和 .text 以及 .const 这些有运行地址和长度,是不是要在dsp上设置什么寄存器标识这些信息啊,要不然dsp也不知道哪些是.text哪些是.data段????

Shine:

HPI boot后,是从address 0开始运行的,所以entry point应该设成0.

如cmd文件中

MEMORY

{

VECS: o = 00000000h l = 0000200h}

SECTIONS

{

vectors > VECS}

mallo:

回复 Shine:

你好,我知道dsp复位后开始从0地址运行,但是我写的程序是从另一地址运行,如0x00001ec0;这个时候该怎么设置啊?需要设置entry point 寄存器的话c6416又找不到该寄存器!

Shine:

回复 mallo:

我上面的方法就是把entry point设成地址0.

mallo:

回复 mallo:

你好,我试了,但是ccs上为什么显示的main()地址和.out文件转换为。hex文件显示的开始执行地址不是0地址啊;这是我的QQ:1184246627;求大神指点!

Shine:

回复 mallo:

请问把把entry point address设成0了吗?

mallo:

回复 Shine:

你好,entry point 不是编写程序运行后自动就生成的吗,可以设置它吗,我的程序在ccs运行后entry point的为0x000001ec0;不晓得怎么修改它为0地址;你上次说的memory 定义段在内存的位置只能说代码程序放在内存那一块地方,不能说程序就从0地址开始执行啊,程序的执行入口可能就在代码的中间或者什么的;不知道我理解的对不对???

Shine:

回复 mallo:

你按照我上面的cmd写法,entry point address不能设成0?中断向量表的第一句是goto _cint00, 所以把中断向量表定义到地址0,就相当于把程序入口地址设成0.

mallo:

回复 Shine:

你好,谢谢你以前的帮助,现在我又遇到一个问题了,能否帮我解释一下啊,非常谢谢了!

C6416 EMIFA  这样配置寄存器   然后向外部存储器的三个地址写数据,最后观看CCS的memory为什么出现0xA0000000以后的所有地址都是一个值啊???都是0xFFFFFFFF,而不是0xA0000000是0x55555555,0xA0000004是0x12345678,0xA0000008是0xFFFFFFF?????

程序如下:

#include <csl.h>#include <csl_emifa.h>#include <stdio.h>

#define EMIFA_CE3_BASE_ADDR1 0xA0000000#define EMIFA_CE3_BASE_ADDR2 0xA0000004#define EMIFA_CE3_BASE_ADDR3 0xA0000008

EMIFA_Config emifaCfg0 = {0x0009207C,

0xFFFFFFD3,0xFFFFFF03,0xFFFFFF43,0x6326CC22,

0x57116000,0x0008061A,0x00054549,

0x00000042,0x00000042,0x00000042,0x00000042};

Uint32  index, tempData1,tempData2,tempData3; Uint32 *pAsyncData1 = (Uint32 *)EMIFA_CE3_BASE_ADDR1;Uint32 *pAsyncData2 = (Uint32 *)EMIFA_CE3_BASE_ADDR2;Uint32 *pAsyncData3 = (Uint32 *)EMIFA_CE3_BASE_ADDR3;void main(){/*Initialise CSL,???CSL?*/CSL_init();EMIFA_config(&emifaCfg0);tempData1 = 0x55555555;tempData2 = 0x12345678;tempData3 = 0xFFFFFFFF;index=0;while(1){*pAsyncData1 = tempData1;*pAsyncData2 = tempData2; *pAsyncData3 = tempData3;}printf("\nAsynchronous Read Write is Successful\n"); return;}

Shine:

回复 mallo:

回读一下看看是否跟写进去的值一样?看是否是CCS显示的问题。

mallo:

回复 Shine:

不是显示的问题啊,memory上显示的全都是一个值;是不是在写数据的时候出错了啊,下面的这样赋值对不对啊

*pAsyncData1 = tempData1;*pAsyncData2 = tempData2; *pAsyncData3 = tempData3;

是不是在写每个数据之间还要时延啊? FPGA这边用singletap查看信号,发现有三个数据的现实  但是不规则 而且还有别的数值,这又是怎么回事啊???谢了!

赞(0)
未经允许不得转载:TI中文支持网 » 有关c6416的hpi boot加载问题
分享到: 更多 (0)