当前位置: 技术问答>linux和unix
PC机怎么不懂开发板的心??????????
来源: 互联网 发布时间:2016-12-31
本文导语: 程序如下: int main(int argc,char*argv[]) { short i,j,w,h; struct stat st; int filelength; /*定义缓冲区,并初始化*/ char buf1[700000]; char *fprt; FILE *fp,*fp1; /*初始化液晶屏*/ initgraph()...
程序如下:
int main(int argc,char*argv[])
{
short i,j,w,h;
struct stat st;
int filelength;
/*定义缓冲区,并初始化*/
char buf1[700000];
char *fprt;
FILE *fp,*fp1;
/*初始化液晶屏*/
initgraph();
clearscreen();
// ShowBMP("bqb4.bmp",0,0);
if((fp=fopen("bqb4.bmp","r"))==NULL)/*以只读方式打开文件*/
{
printf("Can't find the file"); /*如文件缺失则报错,返回*/
return 1;
}
stat("bqb4.bmp",&st); /*取得文件的状态参数,存放于结构体内*/
filelength=st.st_size; /*从结构体中取出文件长度*/
fread(buf1,1,filelength,fp); /*将文件内容读入缓冲区,刚才取得的文件长度应用于此*/
fclose(fp); /*关闭文件,释放资源*/
fprt=MyTranslation24bitcolor(buf1);
ShowBuf(fprt,0,0);
if((fp1=fopen("bq.bmp","w+"))==NULL)/*以只读方式打开文件*/
{
printf("Can't find the file"); /*如文件缺失则报错,返回*/
return 1;
}
fwrite(fprt,1,700000,fp1);
fclose(fp1);
free(fprt);
// free(buf1);
}
问题一:用虚拟机的linux系统和s3c2410开发板开发程序。
在linux上写了一个小程序(见上面),本意是处理一个图像文件bqb4.bmp,然后把处理的结果保存成另外一个文件bq.bmp。
第一种方法是把开发板直接mount到主机上,运行程序后,出现如下问题:
/tmp/HHARM2410-R5/applications/gui-demo/wrt_gui # ./gui
wrt
please choose the direction of Translation : 1 left and right,2 up and down
1
please input the size of Translation(negative left or up):
40
Can't find the file/tmp/HHARM2410-R5/applications/gui-demo/wrt_gui #
难道mount到主机上就不能?
第二种方法是这个程序封装到ramdisk中烧写到开发板内,看看能否在其中创建文件,结果出现了下面的问题:
/hhtech/wrt/wrt_gui # ls
1.bmp bqb12.bmp graphic.h gui.stamp tags
ChangeLog.gui bqb4.bmp graphic.o guiyuanlai.c wrt.BMP
Makefile bqb6.bmp gui hanzi wrt1.BMP
Thumbs.db bqb8.bmp gui.c hzk
bak font_8x16.h gui.h hzk_m
bqb10.bmp graphic.c gui.o mathf.h
/hhtech/wrt/wrt_gui # ./gui
modprobe: Note: /etc/modules.conf is more recent than /lib/modules/2.4.18-rmk7-p
modprobe: modprobe: Can't locate module binfmt-0000
modprobe: Note: /etc/modules.conf is more recent than /lib/modules/2.4.18-rmk7-p
modprobe: modprobe: Can't locate module binfmt-0000
/hhtech/wrt/wrt_gui #
上面的为什么出错?
怎样才能在开发板上创建文件?
问题二:
在上面的程序中,若是不注销// free(buf1);这一句,编辑会运行时就会出现下面的错误:
[root@localhost wrt_gui]# make
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -c -o gui.o gui.c
gui.c: In function `main':
gui.c:64: warning: assignment makes pointer from integer without a cast
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -o gui graphic.o gui.o -lm
[root@localhost wrt_gui]#
为什么不能free(buf1)呢?
int main(int argc,char*argv[])
{
short i,j,w,h;
struct stat st;
int filelength;
/*定义缓冲区,并初始化*/
char buf1[700000];
char *fprt;
FILE *fp,*fp1;
/*初始化液晶屏*/
initgraph();
clearscreen();
// ShowBMP("bqb4.bmp",0,0);
if((fp=fopen("bqb4.bmp","r"))==NULL)/*以只读方式打开文件*/
{
printf("Can't find the file"); /*如文件缺失则报错,返回*/
return 1;
}
stat("bqb4.bmp",&st); /*取得文件的状态参数,存放于结构体内*/
filelength=st.st_size; /*从结构体中取出文件长度*/
fread(buf1,1,filelength,fp); /*将文件内容读入缓冲区,刚才取得的文件长度应用于此*/
fclose(fp); /*关闭文件,释放资源*/
fprt=MyTranslation24bitcolor(buf1);
ShowBuf(fprt,0,0);
if((fp1=fopen("bq.bmp","w+"))==NULL)/*以只读方式打开文件*/
{
printf("Can't find the file"); /*如文件缺失则报错,返回*/
return 1;
}
fwrite(fprt,1,700000,fp1);
fclose(fp1);
free(fprt);
// free(buf1);
}
问题一:用虚拟机的linux系统和s3c2410开发板开发程序。
在linux上写了一个小程序(见上面),本意是处理一个图像文件bqb4.bmp,然后把处理的结果保存成另外一个文件bq.bmp。
第一种方法是把开发板直接mount到主机上,运行程序后,出现如下问题:
/tmp/HHARM2410-R5/applications/gui-demo/wrt_gui # ./gui
wrt
please choose the direction of Translation : 1 left and right,2 up and down
1
please input the size of Translation(negative left or up):
40
Can't find the file/tmp/HHARM2410-R5/applications/gui-demo/wrt_gui #
难道mount到主机上就不能?
第二种方法是这个程序封装到ramdisk中烧写到开发板内,看看能否在其中创建文件,结果出现了下面的问题:
/hhtech/wrt/wrt_gui # ls
1.bmp bqb12.bmp graphic.h gui.stamp tags
ChangeLog.gui bqb4.bmp graphic.o guiyuanlai.c wrt.BMP
Makefile bqb6.bmp gui hanzi wrt1.BMP
Thumbs.db bqb8.bmp gui.c hzk
bak font_8x16.h gui.h hzk_m
bqb10.bmp graphic.c gui.o mathf.h
/hhtech/wrt/wrt_gui # ./gui
modprobe: Note: /etc/modules.conf is more recent than /lib/modules/2.4.18-rmk7-p
modprobe: modprobe: Can't locate module binfmt-0000
modprobe: Note: /etc/modules.conf is more recent than /lib/modules/2.4.18-rmk7-p
modprobe: modprobe: Can't locate module binfmt-0000
/hhtech/wrt/wrt_gui #
上面的为什么出错?
怎样才能在开发板上创建文件?
问题二:
在上面的程序中,若是不注销// free(buf1);这一句,编辑会运行时就会出现下面的错误:
[root@localhost wrt_gui]# make
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -c -o gui.o gui.c
gui.c: In function `main':
gui.c:64: warning: assignment makes pointer from integer without a cast
/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -o gui graphic.o gui.o -lm
[root@localhost wrt_gui]#
为什么不能free(buf1)呢?
|
char buf1[700000];
buf1又不是堆空间申请的,干嘛要free啊
buf1又不是堆空间申请的,干嘛要free啊
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。