DMA乱码问题

zhuyutian 2009-05-12 04:41:23

这是我定义的结构体
struct line_type {
char line[128];
};

struct line_type cache[128];

当内存DMA一个double类型数据(值=10000)过来(这里是Cell BE编程,略过),我用cache[0]接受,然后打印
printf("miss cache line = %s\n",cache[0].line);
可是内容却是乱码,为什么??如何解决这个问题?让打印出原来的数据??
...全文
264 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hurricane880 2009-05-13
  • 打赏
  • 举报
回复
格式控制:
%#x
ltc_mouse 2009-05-12
  • 打赏
  • 举报
回复
lz测试过1楼的代码吗? 能用不?

要打印完全依赖于你传过来的数据格式. double,是按怎样的格式传呢,8个字节(还得看高低位怎么存储)?或者是转成字符串了再传? 这些应该可以在相应的spec上找到详细的介绍吧...
在不知道数据格式的情况下,常用的方法是%02x按字节打印内存里的数据(效果就是串口精灵16进制显示那样...)~~
zhuyutian 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 crst_zh 的回复:]
考虑字节序了吗?跟踪一下什么都有了。
[/Quote]
Cell Be调试太麻烦了,全是并行的
morris88 2009-05-12
  • 打赏
  • 举报
回复
这个跟 dma 有什么关系...
liliangbao 2009-05-12
  • 打赏
  • 举报
回复
当内存DMA一个double类型数据(值=10000)过来(这里是Cell BE编程,略过),我用cache[0]接受,然后打印
printf("miss cache line = %s\n",cache[0].line);
可是内容却是乱码,为什么??如何解决这个问题?让打印出原来的数据??

二进制浮点数格式,你按照字符处理,能不输出乱码吗~

模拟一下,参考
int main(int argc, char *argv[])
{
double d = 1000.1;
char *p = (char*)&d;
char str[32] = {0};
for(int i = 0;i < sizeof(double);i++)
{
str[i] = p[i];
}

double t = 0;
t = *(double*)str; //可以这样转化回来
cout<<t<<endl;

system("PAUSE");
return 0;
}
lingyin55 2009-05-12
  • 打赏
  • 举报
回复
帮顶下
  • 打赏
  • 举报
回复
帮顶
Dinelgua 2009-05-12
  • 打赏
  • 举报
回复
up
crst_zh 2009-05-12
  • 打赏
  • 举报
回复
考虑字节序了吗?跟踪一下什么都有了。
goodname 2009-05-12
  • 打赏
  • 举报
回复
printf("miss cache line = %lf\n",*(double *)(cache[0].line));

不知道强制一下能行吗
HD Tune Pro是一款小巧易用的硬盘检测工具软件,尽管非常小巧但功能强大,HD Tune Pro也适用于移动硬盘检测工具。 主要功能有硬盘传输速率检测,健康状态检测,温度检测及磁盘表面扫描,坏道扫描等。另外,还能检测出硬盘的固件版本、序列号、容量、缓存大小以及当前的Ultra DMA模式等。虽然这些功能其它软件也有,但难能可贵的是此软件把所有这些功能积于一身,而且非常小巧,速度又快,更重要的是它是免费软件,可自由使用。 HD Tune硬盘检测工具汉化版特点: 1.程序不用加密壳压缩(因为加密壳会严重影响兼容性和稳定性,还有速度),只用最简单的压缩壳减小程序体积,也防止一些杀毒软件报毒! 2.更加深入稳定的破解,源文件从官方网站直接下载文件破解,更加稳定不会反弹! 3.完美显示摄氏度和华氏摄氏度的中文符号(包括系统托盘) 4.完美解决保存屏幕截图时默认文件名乱码问题 4.完美解决以前其他所有英文版,汉化版所不能解决的保存屏幕截图的问题 5.在程序主界面不带任何LOGO,不带任何插件,纯净破解。 HDTune硬盘检测工具更新日志: 添加可广泛应用的自动保存截图的功能 错误扫描 添加速率图 添加可设置扫描范围的选项 擦除: 添加核实功能 添加选项:工作可更改电源设置 添加对 USB 3.0 设备的支持 修复 4核 CPU 的 CPU 占用率显示 修复 64位 Windows 7 系统下的 nVidia 驱动不兼容现象 修复某些USB卡不兼容现象 修复错误:扇区大小超过512字节的删除功能

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧