阅读:3962回复:0
tornado2.2下的cacheDmaMalloc问题
在tornado2.0下调试通过的声卡驱动程序,移植到tornado2.2下一启动dma就死机(声卡其他功能正常),今天找到导致死机的问题如下:
通过cacheDmaMalloc(size)分配buffer供dma传输用,buffer的大小小于0X9F0字节时,DMA工作正常,buffer的大小超过0X9F0时,cacheDmaMalloc()函数返回仍显示内存分配成功,但此时一启动DMA就死机了. 这个问题让我想起移植的最初我回避了的一个问题:当时是定义了一个全局数组,结果发现数组的长度只能非常小,否则系统启动时加载了vxworks image就死机.将数组改为malloc动态分配内存就好了,就可以得到我需要的比较大的一段内存了. 不知道这个数组大小受限问题和dma buffer大小受限问题有没有联系,希望能得到大家的指点和启发,不胜感激! |
|