问题遇到的现象和发生背景
我用的是imx6q开发板,使用eim读取fpga数据,fpga位宽16bit。一次要读取50400个字。等于一次要向SSD写入50400个字节,我看了下没有超过一次write的最大字节数。
问题相关代码,请勿粘贴截图
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
/* file management */
#include <sys/stat.h>
#include <fcntl.h>
/* sleep, write(), read() */
#include <unistd.h>
#define FPGA_BYTE 504000
typedef unsigned char uint8
typedef unsigned short uint16
typedef unsigned int uint32
/*extern*/
extern uint16 FPGA_buf[252000];
/*
*@function:采集数据到固态硬盘
*/
uint8 DataToDisk()
{
uint32 savefd;
uint32 savefw;
if((savefd=open(txtfile,FLAGS,MODE)) < 0) //txtfile:以当前时间命名文件名。
{
return -1;
}
if((savefw=write(savefd,(char*)FPGA_buf,FPGA_BYTE)) < 0)
{
return -1;
}
return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
我查阅了一些资料,尝试过更改编码格式,比如utf-8,但依然是乱码。
又尝试过使用fopen,fprintf进行写操作,发现写入字节数不对。
我想要达到的结果
显示正确的数据,比如504000个数字等