交叉编译bcm2835-1.42库用于树莓派

Cross Compile bcm2835-1.42 library for raspberry pi.

本文关键字:用于 bcm2835-1 交叉编译      更新时间:2023-10-16

我正试图在Ubuntu中为我的树莓pi板交叉编译库bcm2835-1.42。下载库并使用以下命令进行交叉编译:

wget网址:www.airspayce.com/mikem/bcm2835/bcm2835-142.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-lianux-gnuebihf-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'

Solve,它可以与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