Xilinx社区
首页 > Kevin专栏 > Kevin学ZedBoard之8:土著的神器
Kevin专栏
Kevin学ZedBoard之8:土著的神器
来源:  时间:2015-01-22  浏览量:1829

  Native compile 相对于 Cross compile 来讲,分别翻译为本地编译 和 交叉编译。其实Native的翻译,我更愿意翻译成土著。

  对很多人来讲, 本地编译就是在PC机上编译PC机上运行的软件。交叉编译嘛, 就是在PC机上编译ARM上运行的软件。 对Kevin来讲,这也是一个思维定式了。 嵌入式系统,肯定要先讲交叉编译。

  ZedBoard板的出现,使得直接在ZedBoard上编译成为可能。反正跑的是全版本的Ubuntu,上面加载全套的gcc没有任何问题。这个gcc与pc上的gcc相比,其实是arm的二进制版本而不是x86版本。 由于地盘站在ARM系统上, 自己的那个arm-xilinx-.....gcc,就可以脱掉交叉的帽子,变本地了。 就像俺住在上海,本来说普通话,在一堆上海人中间,上海话居然就相当与普通话了。

  linaro的那个包里,已经预装了gcc工具链, 因此,连gcc的安装都省了,直接用。

  这样,在ZedBoard板上编译一个C语言的hellow world 就简单到一步。

  只需要打开gedit 编辑helloworld.c, 敲入

  #include

  main()

  {

  printf("hello world\n");

  }

  然后运行

  gcc helloworld.c

  就可以看到a.out生成了

  ./a.out 就可以看到打印出来的hello world 信息。

  紧接着,就可以直接使用gdb进行单步调试了。

  以前对于嵌入式系统的调试,能够启动gdb server, 能够用jtag,或串口进行调试和单步跟踪,是一件不大不小的技术活,现在,有了ZedBoard这个提供无数Native的土著软件的平台,一切都变得甚至比PC机还方便。比如要gdb,根本不需要交叉啊,server啊之类的东西。

  重新编译,加上 -g 参数,使得a.out带上调试信息。

  gcc -g helloworld.c

  然后运行

  gdb ./a.out

  在gdb里面敲

  start

  就可以看到程序运行并停留在第一句。

  然后敲

  n

  就可以单步跟踪了。

  此可谓,我的地盘我作主, 有了ZedBoard板,上面的Ubuntu使得土著Native工具链就可以大显神威。编写嵌入式代码和调试嵌入式代码基本上和PC上无甚区别。

  为什么说这个土著工具是神器呢?这意味着,这个东东可以自己给自己打源代码补丁。 也就是说,夜深人静的时候,ZedBoard板可以下载你新写的软件版本的源代码,然后自己编译,然后,自己升级。

  说得更科幻一点,如果用ZedBoard板做机器人的话, 有了这写土著神器,机器人就具有了自己进化自己大脑的能力。 当然ZedBoard板的硬件可编程部分PL还可以让机器人进化自己的小脑甚至躯干。 然后再加上3D打印机自己复制自己身体的话.......不敢想,不敢想。

  有图有真相:





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

中国授权培训机构

北京 电话:(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