交叉编译树莓派bcm2835-1.42库。

我正在尝试在Ubuntu中为我的树莓派板交叉编译库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错误:无效屏障types – dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:365: Error: invalid barrier type -- dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:453错误:无效屏障types – dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:480: Error: invalid barrier type -- dmb str r1,[r6] dmb' /tmp/ccxDzazg.s:644错误:无效屏障types – dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:731: Error: invalid barrier type -- dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:807错误:无效屏障types – dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:868: Error: invalid barrier type -- dmb str r1,[r0] dmb'

解决,这将与bcm2835-1.44库工作正常。

如果您不必使用bcm2835-1.42库,Raspberry Pi论坛上的这篇文章建议使用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