问题一、
我在用HHARM2410-R5学习linux开发,但不知道怎么调试能够运行在开发板上的驱动程序和应用程序。
在虚拟机中,知道用gdb可以调试程序,但编写的开发板的驱动只能在开发板运行,编程序开发板的应用程序也只能在开发板上运行,虽然可以mount到主机上运行开发板的应用程序,但怎么调试呢?用什么调试呢?开发板上用过的调试工具有哪些,怎么用?
问题二、
写了一小段程序:
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);
fclose(fp1);
free(fprt);
}
1、编译时的问题:warning: assignment makes pointer from integer without a cast
[[email protected] 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
[[email protected] wrt_gui]#
出现问题的地方在 fprt=MyTranslation24bitcolor(buf1);处,这里貌似没有错误啊,MyTranslation24bitcolor(buf1)返回的是字符型指针,不知道什么原因。
------解决方案--------------------
你没有包含相应的头文件,也就是说编译器在编译gui.c时没有得到函数MyTranslation24bitcolor的类型声明,编译器就会默认为返回值是int类型。所以报错。
lz要添加相应的头文件即可。
c语言是基础,不能草草学了就上马项目,一定要学好c语言。