在PC编译的驱动模块 放进开发板加载时可以正常运行 但是编译的应用程序(最简单的程序hellowold)却不能运行
具体现象是 1.gcc编译参数不加-static 出现段错误 2.gcc编译参数加-static 就像运行一个计算量很大的程序一样阻塞了 但是这里是一直阻塞也没打印出helloworld来 只能ctrl+c关掉
估计应用程序本身是没问题的 来大神分析一下原因
驱动可以运行,说明你的开发环境是可以的。
应用程序不能运行,要确认你的应用程序是不是用的编译模块的编译器,是的话编译器也没有问题,找找板子使用的库和编译器的库是不是不一样。
程序运行出错会给个错误信息,从错误信息入手排查。
一般你的开发板和PC不是一个体系架构的,所以你需要搭建交叉编译环境来完成编译,而且需要指定开发库、目标类型等等,否则如果不匹配很可能就启动不了。
试试这两个方法1.开发板通过网口,搭建NFS文件系统,这样每次程序交叉编译完,放到pc的某个路径下就行2.每次重新制作根文件系统,重新烧到flash
编译驱动时候,你用的应该是别人写的makefile文件,里面已经定义好了交叉编译的gcc。
会不会是你自己编译helloworld时候,错误地用了x86的gcc,不是交叉编译的gcc。