- 论坛徽章:
- 0
|
源代码
fstat(img_fd,&sb);
img_addr = mmap(NULL,sb.st_size,PROT_READ,MAP_PRIVATE,img_fd,0);
for(i = 0; i < Pkg_num; i++)
{
usleep(450000);
tcflush(fd,TCIFLUSH);
#ifdef debug
printf("i=%d\n",i);
#endif
memcpy(PKG.data,img_addr + img_index,512);
len=write(fd,PKG.data,sizeof(_PKG));
memcpy(img_addr2 + img_index2,& KG,sizeof(_PKG));
img_index += 512;
}
用这个程序串口发送小图片4k左右可以,但是超过10k的图片只有开头正常,到了中间总是丢失数据,丢失的长度不确定,只能用16进制比较确定好似丢失了,导致数据格式不正确,后半截图片看不到,问一下有没有可能是读取内存的时候有错误呢?还是串口的不稳定造成的呢?因为现在一直没有确定内存的读取是否正确,所以请帮帮忙,指点一下用mmap以后在从addr读取数据能否出现读取不全的情况. |
|