Xilinx社区
首页 > Kevin专栏 > Kevin学ZedBoard之7: 交叉编译初探
Kevin专栏
Kevin学ZedBoard之7: 交叉编译初探
来源:  时间:2015-01-22  浏览量:2587

  在Kevin学ZedBoard之6:指鹿为马中, 我们明确了学习方法, 也就是试图修改一点点软件的源代码,找到那个写LED0,LED1的地址那句话, 然后换一下它们的地址或命令字,然后重新编译源代码, 使得最终我们点亮LED0的那句 echo 1 > /sys/class/gpio/gpio61/value 的结果是点亮了LED1, 或者是LED7,等等.

  一旦你能够修改源代码,并能够把你的修改在硬件中体现出来,后面的事情就简单了,更复杂的修改就成了一个完成工作量的问题. ZedBoard其实已经足够强大,理论上,要想直接在ZedBoard上进行本机编译,其实也是可以滴, 只需要装一个ARM版的GCC就可以了. 当然,目前还不推荐这样做,因为毕竟是嵌入式系统,特别是可编程逻辑PL端, 还要跑Vivado等软件. 因此,需要交叉编译.

  交叉编译用的工具链,按理说应该在这里可以找到:http://wiki.xilinx.com/zynq-tools 可打开一看,死活也找不到下载链接.最后,在这里找到了:

  http://www.xilinx.com/member/mentor_codebench/xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin

  当然, 嵌入式系统软硬件协同设计实战指南-基于Xilinx ZYNQ 的光盘里也有,在这里:

  D:\DVD_Disk\Chapter 9\Src\9.3 Single Board Computer\ xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin

  安装完了,按照给出的错误提示, 解决dash问题. 关于这个问题的来龙去脉,俺2009年的Blog中有详细解释. http://www.openhw.org/Kevin/blog/09-12/182397_70a6c.html 这里一笔带过. 现在解决,只需要按照提示敲进去就行了.

  至于书上写的要设PATH啊,设CROSS_COMPILE环境变量啊,暂时还用不着.

  然后,就可以写一个helloworld.c 了, 就用gedit写吧,上网搜了拷贝过来也可以. 然后, 用gcc编译一下。 如图:



  然后,

  gcc helloworld.c

  然后,赫然看到a.out . 然后运行它

  ./a.out

  这不,第一个C程序就运行起来了。

  别急,这只是在PC机上运行起来了,并没有在ZED板上运行起来。 但能到这一步,至少说明你的C程序是没有问题滴。

  那么,需要把gcc换成交叉编译的版本,最土的办法:

  ~/CodeSourcey/Sourcey_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/arm-xilinx-linux-gnueabi-gcc helloworld.c

  得到a.out

  运行它,系统报错:

  无法执行二进制文件

  这就对了。 因为生成的是ARM的二进制文件。 当然无法在PC机上运行。

  把ZED板上的SD卡拔下来, 插到PC上,将a.out 拷贝到ext文件系统中,比如/home/linaro下面。 然后,再插回到ZedBoard板。 启动。



  然后运行 a.out

  ./a.out

  这不, ZedBoard板的Hello World 就有了。 有图有真相。







热点文章
精选视频
推荐资源

中国授权培训机构

北京 电话:(010)82757632
      (010) 62192881
深圳 电话:(0755)86186715
武汉 电话:(027)61389792
成都 电话:(028)80821007
南京 电话:(025)66022032
西安 电话:(029)82230498
邮箱:sales@e-elements.com

中国授权经销商

香港 电话:(852)22127848
北京 电话:(010)84148118
成都 电话:(028)86528262
上海 电话:(021)33678387
深圳 电话:(0755)26584925
武汉 电话:(027)87322806
邮箱:china@avent.com
深圳 电话:(0755)26743210
上海 电话:(021)51696680
北京 电话:(010)51726678
成都 电话:(028)85139576
武汉 电话:(027)87690155
邮箱:
xilinx_enquiry@comtech.com.cn

社区主办


《电子产品世界》杂志社

内容提供


    赛灵思公司

Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备12027778号-2 北京市公安局备案:1101082052