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

C6455_EMIFA

刚学用 EMIFA 不过C6455的库给的例子试跑和调试看映射到板子的内容对不对!不过看例子根本没进行读写。调试后:Sync Read Write is NOT Successful
    Reason:Error in data read.[status = 0x1]
查一下:
    tempData = 0xdeadbeef;
    for (index = 0; index < DATA_CNT; index++) {
        pAsyncData[index] = tempData;
    }


    tempData = 0x55550000;
    for (index = 0; index < DATA_CNT; index++) {
        pAsyncData[index] = tempData + index;
    }
 

根本没有给存储器地址:0xB0000000 赋值。(再说也不懂为什么里面讲前者是无效,后者是有效。————好奇怪)
    /* Verify that the data was indeed written */
    result = DATA_MATCH_SUCCESS;
    for (index = 0; index < DATA_CNT; index++) {
        if (pAsyncData[index] != (tempData + index)) {
            result = DATA_MATCH_FAIL;                     
            break ;
        }
    }——————这语句也就跑了一次  index=0 后就不跑了!说明没进行写好?搞不出是什么原因!

请求帮助!谢谢!
(有待程序文件)

noaming:

你好,你用的CSL中的EMIFA的例子,前面的Asynchronous Read Write is Successful是否成功了呢?

Khoa Sang Nguyen:

回复 noaming:

都没成功!内存没有变化!当 读出来检查也不对:

 for (index = 0; index < DATA_CNT; index++) {        if (pAsyncData[index] != (tempData + index)) {            result = DATA_MATCH_FAIL;                                 break ;

就进行了一次  index=0 就弹出来了!

和这段一直搞不懂为什么:一个有效一个无效

 /* Write 'invalid' values into EMIFA CS2 area. This is to overwrite the      * previous valid values.      */    tempData = 0xdeadbeef;    for (index = 0; index < DATA_CNT; index++) {        pAsyncData[index] = tempData;    }    /* Write **valid** values into CS2 area. */    tempData = 0x55550000;    for (index = 0; index < DATA_CNT; index++) {        pAsyncData[index] = tempData + index;    }

本来 tempData 只是一个变量,设为多少是多少。。。怎么跟有效和无效有关呢?

谢谢!

Khoa Sang Nguyen:

回复 noaming:

哦!你这样说那么现在我把配置给了像下面:

hwSetup.asyncWait = &asyncWait;    hwSetup.ceCfg[0] = NULL;       hwSetup.ceCfg[1] = &asyncVal;    hwSetup.ceCfg[2] = NULL;    hwSetup.ceCfg[3] = NULL; 

那么按理说该是对了啊!但是还是不行的???结果还没写好?你能不能说一下解决方案啊?我用的是C6455DSK板子!很谢谢了!

noaming:

回复 Khoa Sang Nguyen:

你好,如果数据写不进CE3,你可以实际的查看一下CE3的寄存器状态,是否已经处于异步读、写都使能的状态了。

我这个以前是自己配置的寄存器,很容易配的,没用CSL的EMIF库,可以正确的读写FLASH的。

Khoa Sang Nguyen:

回复 noaming:

好的!谢谢你!我在试试看!

Khoa Sang Nguyen:

回复 noaming:

哦!你说的那个CE3的寄存器状态应该是这个吧:

那么根据CE3 配置,它被赋值了!我也是换成CE2还可以这样赋值。所以你将CE2和CE4不匹配我不太懂。要是按同步方法的话:SSEL=1 那么CE3 的值是 0x80000000  .

还有你以前自己配置寄存的是怎么做的!能给我发个程序吗?太麻烦你了!

(是不是按这样设置:EMIFA_Config MyConfigB = { gblctl , cectl0,cectl1, cectl2 , cectl3 , sdctl ,sdtim, sdext ,  cesec0 ,  cesec1 , cesec2, cesec3 };…EMIFA_config(&MyConfigA);  ???)!!!

noaming:

回复 Khoa Sang Nguyen:

你好,和evm板的flash配套的读写测试程序,在\c6455 evm\dsk6455_v2\boards\dsk6455_v2\examples\test

在这个工程中有TEST_execute(TEST_flash,         3, 0);

其中TEST_flash就是,你可以试试这个程序。

Khoa Sang Nguyen:

回复 noaming:

哦!以前也看过这个!不过太长也没留意过!今天看你说跑过!也看了!运行正常!和 TEST_flash 运行时看了下内存!读写是正常的!那么上面说的EMIFA到底是什么问题呢?暂时我还想不到!请你指点指点!或者你有以前跑好的程序给我参考一下可以吗!谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » C6455_EMIFA
分享到: 更多 (0)