用于覆盆子pi的交叉编译bcm2835-1.42库。

时间:2015-04-08 10:11:26

标签: c++ linux gcc raspberry-pi cross-compiling

我正在尝试在Ubuntu中为我的覆盆子pi板交叉编译库bcm2835-1.42。 使用以下命令下载库并交叉编译:

  

wget http:www.airspayce.com/mikem/bcm2835/bcm2835-1.42.tar.gz

     

tar -xvf bcm2835-1.42.tar.gz

     

cd bcm2835-1.42

     

./ configure -host = arm -prefix = $(DEVELROOT)CC = arm-linux-gnueabihf-gcc-4.8 ar = arm-linux-gnueabihf-ar-4.8

     

当我制作源代码时,我坚持使用以下错误消息。

  

/tmp/ccxDzazg.s:汇编程序消息:

     

/tmp/ccxDzazg.s:299:错误:屏障类型无效 - dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:365: Error: invalid barrier type -- dmb str r1,[r0] dmb'   /tmp/ccxDzazg.s:453:错误:屏障类型无效 - dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:480: Error: invalid barrier type -- dmb str r1,[r6] dmb'   /tmp/ccxDzazg.s:644:错误:屏障类型无效 - dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:731: Error: invalid barrier type -- dmb str r1,[r0] dmb'   /tmp/ccxDzazg.s:807:错误:屏障类型无效 - dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:868: Error: invalid barrier type -- dmb str r1,[r0] dmb'

2 个答案:

答案 0 :(得分:1)

解决,它可以与bcm2835-1.44库一起使用。

答案 1 :(得分:0)

如果您不必使用bcm2835-1.42库,Raspberry Pi论坛上的this post建议您使用QEMU执行以下步骤:

  • 将SD卡连接到主机,执行sudo fdisk -l并找到与您的SD卡大小相匹配的磁盘
  • 使用sudo mount /dev/XXXX /mnt安装SD卡(XXXX是代表SD卡的标识符)
  • 执行sudo apt-get install qemu qemu-user qemu-user-static以安装qemu
  • 使用sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin
  • 复制文件以模拟SD卡
  • Chroot进入Pi文件系统sudo chroot /mnt
  • 现在应该提示您使用新的命令行,检查它是否与root:/# gcc -v
  • 一起使用
  • 导航到您要编译的项目并运行您需要的Makefile或gcc或ARM构建工具,它将开始构建
  • 完成后,输入此内容以退出chroot exit
  • 然后卸载设备sudo unmount /dev/sdc2