为 raspberry pi 交叉编译 bcm2835-1.42 库。
Cross Compile bcm2835-1.42 library for raspberry pi.
我正在尝试为 Ubuntu 中的 raspberry 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
make
当我制作源代码时,我遇到了以下错误消息。
/tmp/ccxDzazg.s: Assembler messages:
/tmp/ccxDzazg.s:299: Error: invalid barrier type -- dmb ldr r0,[r0] dmb'
/tmp/ccxDzazg.s:365: Error: invalid barrier type --
dmb str r1,[r0] dmb'
/tmp/ccxDzazg.s:453: Error: invalid barrier type -- dmb ldr r0,[r0] dmb'
/tmp/ccxDzazg.s:480: Error: invalid barrier type --
dmb str r1,[r6] dmb'
/tmp/ccxDzazg.s:644: Error: invalid barrier type -- dmb str r1,[r0] dmb'
/tmp/ccxDzazg.s:731: Error: invalid barrier type --
dmb str r1,[r0] dmb'
/tmp/ccxDzazg.s:807: Error: invalid barrier type -- dmb str r1,[r0] dmb'
/tmp/ccxDzazg.s:868: Error: invalid barrier type --
dmb str r1,[r0] dmb'
如果您不必使用 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
解决,bcm2835-1.44库可以正常工作
我正在尝试为 Ubuntu 中的 raspberry 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
make
当我制作源代码时,我遇到了以下错误消息。
/tmp/ccxDzazg.s: Assembler messages:
/tmp/ccxDzazg.s:299: Error: invalid barrier type --
dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:365: Error: invalid barrier type --
dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:453: Error: invalid barrier type --dmb ldr r0,[r0] dmb' /tmp/ccxDzazg.s:480: Error: invalid barrier type --
dmb str r1,[r6] dmb' /tmp/ccxDzazg.s:644: Error: invalid barrier type --dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:731: Error: invalid barrier type --
dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:807: Error: invalid barrier type --dmb str r1,[r0] dmb' /tmp/ccxDzazg.s:868: Error: invalid barrier type --
dmb str r1,[r0] dmb'
如果您不必使用 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
解决,bcm2835-1.44库可以正常工作