嵌入式项目之交叉编译m2440篇
在Linux虚拟机上写好代码,并进行编译,确保编译无出错,准备移植到开发板上的工作。
系统烧入
首先先将开发板的USB接口以及电源接口接上,这里要记住先不能打开开关S1,原因是打开开关的时候系统会自动判断S2所在的位置,如果先打开S1而S2不在NOR位置上,系统不会进入到NOR。连接好了之后下载友善之臂的2440开发工具,minitools进行烧写系统。如下图
如果接线都没有错误,但是左下角显示红色没有连接上,那么就是驱动的问题,这里使用驱动精灵进行检测,会检测到一个安卓的驱动没装,点击安装即可。这时候一定要上电,且S2在NOR上。
左下角点变为绿色之后就可以进行系统的烧入了。
交叉编译
交叉编译(架构不同)在电脑上编译,在开发板上运行。电脑(虚拟机)一般是X86架构,而开发板是ARM架构,这两个架构的二进制文件差别较大,所以需要交叉编译。
先在开发板官网找到其资源arm-linux-gcc,然后进行安装。使用命令arm-linux-gcc不发生找不到命令即可。
这次项目使用到一个需要交叉编译的库json,我们先进到json库的路径下,使用make clean命令清空之前编译的文件
./configure --host=arm-linux CC=arm-linux-gcc --prefix=/home/json_arm_install
生成ARM架构的makefile文件,然后使用make和make install 即可安装。
安装完成之后,需要修改一下项目的makefile,使其使用arm-linux-gcc进行编译
DEBUG=-DARM#DEBUG=Target=mainObject=main.o select.o device.o player.o link.o socket.oCC=arm-linux-gccCFLAGS=-L /home/json_arm_install/lib -I /home/json_arm_install/include$(Target):$(Object)$(CC) $(Object) -o $(Target) -Wall -ljson $(DEBUG) $(CFLAGS) -staticclean:rm -f $(Object) $(Target)
然后将编译好的可执行文件移植到开发板上,即可运行。