TI论坛
直播中

周润艺

7年用户 200经验值
私信 关注
[问答]

请教C6416 EMIFA配置寄存器的问题,附程序

C6416 EMIFA  这样配置寄存器   然后向外部存储器的三个地址写数据,最后观看CCS的memory为什么出现0xA0000000以后的所有地址都是一个值啊???都是0xFFFFFFFF,而不是0xA0000000是0x55555555,0xA0000004是0x12345678,0xA0000008是0xFFFFFFF?????
程序如下:
#include
#include
#include
#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 Successfuln");
return;
]

不是显示的问题啊,memory上显示的全都是一个值;是不是在写数据的时候出错了啊,下面的这样赋值对不对啊
*pAsyncData1 = tempData1;
*pAsyncData2 = tempData2;
*pAsyncData3 = tempData3;
是不是在写每个数据之间还要时延啊? FPGA这边用singletap查看信号,发现有三个数据的现实  但是不规则 而且还有别的数值,这又是怎么回事啊?

都显示这样的

回帖(1)

谭齐慧

2018-7-24 07:53:19
怎么还在用十几年前的芯片啊!
你是用FPGA模拟一个同步存储器吗?如果是同步方式访问的话,每次访问可能都会产生一个burst。建议先仔细研究一下文档。
你代码里访问的地址是0xA0000000,而memory窗口里显示的是0xB0000000?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分