资源描述:
《Kevin学ZED之7:交叉编译初探.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Kevin学ZED之7:交叉编译初探 在Kevin学ZED之6:指鹿为马中,我们明确了学习方法,也就是试图修改一点点软件的源代码,找到那个写LED0,LED1的地址那句话,然后换一下它们的地址或命令字,然后重新编译源代码,使得最终我们点亮LED0的那句echo1>/sys/class/gpio/gpio61/value的结果是点亮了LED1,或者是LED7,等等. 一旦你能够修改源代码,并能够把你的修改在硬件中体现出来,后面的事情就简单了,更复杂的修改就成了一个完成工作量的问题.ZED其实已经足够强大,理
2、论上,要想直接在ZED上进行本机编译,其实也是可以滴,只需要装一个ARM版的GCC就可以了.当然,目前还不推荐这样做,因为毕竟是嵌入式系统,特别是可编程逻辑PL端,还要跑Vivado等软件.因此,需要交叉编译. 交叉编译用的工具链,按理说应该在这里可以找到:可打开一看,死活也找不到下载链接.最后,在这里找到了: 当然,嵌入式系统软硬件协同设计实战指南-基于XilinxZYNQ的光盘里也有,在这里:D:DVD_DiskChapter9Src9.3SingleBoardComputerxilinx-
3、2011.09-50-arm-xilinx-linux-gnueabi.bin 安装完了,按照给出的错误提示,解决dash问题.关于这个问题的来龙去脉,俺2009年的Blog中有详细解释.这里一笔带过.现在解决,只需要按照提示敲进去就行了.至于书上写的要设PATH啊,设CROSS_COMPILE环境变量啊,暂时还用不着. 然后,就可以写一个helloworld.c了,就用gedit写吧,上网搜了拷贝过来也可以.然后,用gcc编译一下。如图: 然后,gcchelloworld.c然后,赫然看到a.ou
4、t.然后运行它./a.out这不,第一个C程序就运行起来了。别急,这只是在PC机上运行起来了,并没有在ZED板上运行起来。但能到这一步,至少说明你的C程序是没有问题滴。 那么,需要把gcc换成交叉编译的版本,最土的办法:~/CodeSourcey/Sourcey_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/arm-xilinx-linux-gnueabi-gcchelloworld.c得到a.out运行它,系统报错:无法执行二进制文件 这就对了。因为生成的是ARM的二进
5、制文件。当然无法在PC机上运行。把ZED板上的SD卡拔下来,插到PC上,将a.out拷贝到ext文件系统中,比如/home/linaro下面。然后,再插回到ZED板。启动。 然后运行a.out./a.out 这不,ZED板的HelloWorld就有了。有图有真相。