打印

通过PCI写入DM642的SDRAM时候PC机死机

[复制链接]
2980|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
extreme001|  楼主 | 2007-8-24 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用DM642提供的PDF文件里的那些API

试图将一个磁盘上的图象文件读入RAM后,再将图象的二维数组内容通过PCI写入DM642的SDRAM中

但是运行的时候,PC机就死机了,并且DSP板子上的指示灯也不再闪烁

请问是什么问题造成的呢?会不会是写入的格式不一样?

我是用的8位的写入方式,即调用SI_TI_PassThroughWrite8(...)函数

void PassThroughWrite()
{
    int i;
    INT32 error;
    UINT32 region = 0;
    UINT32 offset = 0;
    UINT32 count = IMAGEWIDTH;//*sizeof(IMAGEDATA_TYPE);
    for(i=0;i<IMAGEHEIGHT;i++)
    {
        error = SI_TI_PassThroughWrite8
            (
                pTIDev,
                region,
                count,
                offset,
                IrL
            );
        if (e_Err_NoError != error)
            printf("ERROR MESSAGE = %s ",error);
        offset += count; 
    }

    for(i=0;i<IMAGEHEIGHT;i++)
    {
        error = SI_TI_PassThroughWrite8
            (
                pTIDev,
                region,
                count,
                offset,
                IgL
            );
        if (e_Err_NoError != error)
            printf("ERROR MESSAGE = %s ",error);
        offset += count; 
    }

    for(i=0;i<IMAGEHEIGHT;i++)
    {
        error = SI_TI_PassThroughWrite8
            (
                pTIDev,
                region,
                count,
                offset,
                IbL
            );
        if (e_Err_NoError != error)
            printf("ERROR MESSAGE = %s ",error);
        offset += count; 
    }

    for(i=0;i<IMAGEHEIGHT;i++)
    {
        error = SI_TI_PassThroughWrite8
            (
                pTIDev,
                region,
                count,
                offset,
                IrR
            );
        if (e_Err_NoError != error)
            printf("ERROR MESSAGE = %s ",error);
        offset += count; 
    }

    for(i=0;i<IMAGEHEIGHT;i++)
    {
        error = SI_TI_PassThroughWrite8
            (
                pTIDev,
                region,
                count,
                offset,
                IgR
            );
        if (e_Err_NoError != error)
            printf("ERROR MESSAGE = %s ",error);
        offset += count; 
    }

    for(i=0;i<IMAGEHEIGHT;i++)
    {
        error = SI_TI_PassThroughWrite8
            (
                pTIDev,
                region,
                count,
                offset,
                IbR
            );
        if (e_Err_NoError != error)
            printf("ERROR MESSAGE = %s ",error);
        offset += count; 
    }
    printf("TEST WRITE COMPLETE! ");
    printf(" Press enter to continue:");
    getchar();    

}

相关帖子

沙发
extreme001|  楼主 | 2007-8-24 20:15 | 只看该作者

没人看

怎么都没个人看看的啊~

使用特权

评论回复
板凳
pbxywyq| | 2007-8-25 12:14 | 只看该作者

和你的驱动程序有关吧

和你的驱动程序有关吧,把你的驱动程序头文件完整地贴出来先。

使用特权

评论回复
地板
yxwsz| | 2007-8-27 21:17 | 只看该作者

用fread, fwrite函数

何必搞那么复杂,用fopen, fread, fwrite,fclose函数就可以访问磁盘上的文件啊;
只是速度慢些而已

使用特权

评论回复
5
aspl| | 2007-8-28 19:06 | 只看该作者

你应该是写到不存在的地址里了吧

使用特权

评论回复
6
extreme001|  楼主 | 2007-8-28 21:42 | 只看该作者

上面那些函数是从内存写到DSP的SDRAM去用的

上面那些函数是从内存写到DSP的SDRAM去用的

我先临时写到了SDRAM的0x00000000去的,难道这块内存地址不能写?

可我有时候写了不死机,有时候会死机的

使用特权

评论回复
7
aspl| | 2007-8-29 16:55 | 只看该作者

如果写数据块,不能超过4M的临界地址处.越界就会死,要修改DSP

使用特权

评论回复
8
extreme001|  楼主 | 2007-8-29 17:05 | 只看该作者

DSPP?怎么修改DSPP?

我是新手,不明白什么是DSPP?怎么修改?

还有,DM642的SDRAM不就只有4M-64bit么?

使用特权

评论回复
9
pbxywyq| | 2007-8-30 19:30 | 只看该作者

DSPP是作Prefetchable Read/Write用的

DSPP是作Prefetchable Read/Write用的,当采用Prefetchable Read/Write模式读写DSP数据时,DSP利用DSPP的[9:0]作为页面地址,加上22位地址总线[21:0]构成32位寻址地址,因此当寻址范围超过4M就需要修改DSPP内容(DM642地址为:0x01C1FFF8);另,数据写入的具体地址与DSP的存储空间划分有关,默认情况下从0x00000000开始的256KB存储空间为DSP内部SRAM,不知你对写入SRAM的数据是如何处理的,如果你的写入数据超过256KB就死机的话,很有可能是你的寻址空间出现了问题。

使用特权

评论回复
10
pbxywyq| | 2007-8-30 19:36 | 只看该作者

另外

请问楼主的驱动源码是从哪里获得的?好像不是太完成(;-)没有仔细阅读,呵呵。

使用特权

评论回复
11
extreme001|  楼主 | 2007-8-30 21:10 | 只看该作者

驱动来自于DM642光盘

驱动来自于DM642光盘

使用特权

评论回复
12
pbxywyq| | 2007-8-30 21:23 | 只看该作者

TI的原版DM642评估板吗?

TI的原版DM642评估板吗?还是国内其它厂商的?

使用特权

评论回复
13
extreme001|  楼主 | 2007-8-31 11:28 | 只看该作者

国内合众达的

国内合众达的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

20

帖子

0

粉丝