Contents

Embedded:BeagleBone black

本文采用知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接。

简介

BeagleBone Black Rev.C是一款基于AM335x处理器的开发套件,它集成了ARM Cortex™-A8内核,处理速度高达1GHz,并有丰富的外设。可扩展的接口有以太网、USB、OTG、TF卡、串口、JTAG、D型HDMI、ADC、I2C、SPI、PWM及LCD。

https://cdn.jsdelivr.net/gh/zhangyuhu/share_images/images/202302092108250.jpg https://cdn.jsdelivr.net/gh/zhangyuhu/share_images/images/202302100948175.jpg

常规参数

·尺寸: 86.36 mm×54.61mm
·工作温度:0 ~ 70℃
·工作湿度:20% ~ 90% (Non-Condensing)
·供电电压5V/0.35A

AM335x处理器

·集成 1GHz ARM Cortex™-A8内核
·集成 NEON™ SIMD 协处理器
·集成 SGX530图形引擎
·集成实时可编程子系统单元
·集成32KB指令缓存和32KB数据缓存具有一位奇偶校验位
·集成256KB带错误检测码的第二层快速存储器

板载内存

• 4GB 8-位eMMC 板载闪存
• 512MB DDR3 SDRAM

板载接口

• 1个D型HDMI接口(16位颜色与音频输出)
• 1个LCD接口 (24-bit输出, P8接口输出)
• 1个10/100M以太网接口 (RJ45 接头)
• 1个带PHY的高速USB 2.0 OTG接口(Mini USB type-B 接头)
• 1个带PHY的高速USB 2.0 HOST接口 (USB type-A 接头)
• 1个TF卡槽(SD/MMC)
• 1个3线调试串口(6引脚 2.54接头)
• 1个D型HDMI接口
• 1 个扩展接口,可接LCD、 UART、eMMC、ADC、I2C、SPI及PWM
• 1 个JTAG 接口 (可选,20引脚标准接口, 默认不焊接)

按键&灯

• 1个开机选择按键
• 1个电源开关
• 1个重启开关
• 1个LED电源指示灯
• 4个常规指示灯

系统框图

操作系统: Debian, Angstrom, Ubuntu, Android

设备驱动

Uart:Uart 驱动
Ehternet:10/100 IEEE1588
显示器:HDMI Driver
mmc/sd:SD 2.0 /eMMC 驱动
USB:高速USB驱动
Led:用户 LED驱动
支持Debian系统,带有驱动和源代码。
支持TISDK系统,带有驱动和源代码。

资源

Beagleboard:BeagleBoneBlack
Beagleboard:BeagleBoneBlack Debian

开发环境搭建

串口工具

sudo apt-get install minicom

启动并配置minicom

sudo minicom -s

查看USB串口设备

ls /dev/ttyUSB*

minicom退出

crtl + a + z + x

查看系统信息

板载闪存

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
root@BBB-2:~# df -h 
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                  3.4G  2.0G  1.3G  60% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   100M  520K   99M   1% /run
/dev/disk/by-uuid/b74cd3fe-800f-4a18-a50e-598d20a512fd  3.4G  2.0G  1.3G  60% /
tmpfs                                                   249M     0  249M   0% /dev/shm
tmpfs                                                   249M     0  249M   0% /sys/fs/cgroup
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   100M     0  100M   0% /run/user

以太网

ifconfig eth0

1
2
3
4
5
6
7
8
9
eth0      Link encap:Ethernet  HWaddr b0:d5:cc:f9:e3:11  
          inet addr:192.168.101.217  Bcast:192.168.101.255  Mask:255.255.254.0
          inet6 addr: fe80::b2d5:ccff:fef9:e311/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1537 errors:0 dropped:0 overruns:0 frame:0
          TX packets:352 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:217702 (212.5 KiB)  TX bytes:109929 (107.3 KiB)
          Interrupt:40 

交叉编译

arm-eabi :是用于编译裸机程序的,当然也包括Bootloader
arm-linux-gnueabihf :适用于编译运行于嵌入式linux的程序

arm-eabi

arm:指的是arm内核的处理器;
eabi:指的是嵌入式应用二进制接口(Embedded application binary interface)。
交叉编译工具链在windows上面运行的时候需要配合mingw32使用,可以直接下载gcc-linaro-7.4.1-2019.02-i686-mingw32_arm-eabi.tar.xz版本。

arm-linux-gnueabihf

arm:指的是arm内核的处理器;
linux:表示用于运行在linux上的程序的编译;
gnueabihf:The GNU C compiler for armhf architecture,hf表示使用hard硬件浮点模式。

交叉编译工具链在windows上面运行的时候需要配合mingw32使用,可以直接下载gcc-linaro-7.4.1-2019.02-i686-mingw32_arm-linux-gnueabihf.tar.xz版本。

安装

  • 安装32位软件支持
1
2
3
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386
  • 将交叉编译工具软件包解压到自己想要安装的目录(最好不要有中文)。将解压后的bin目录添加到环境变量。

  • 测试 输入

1
arm-linux-gnueabihf-gcc -v

输出

1
2
3
4
5
6
7
使用内建 specs。
COLLECT_GCC=arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/opt/tegra-linux/x86-arm/arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/4.8.3/lto-wrapper
目标:arm-linux-gnueabihf
配置为:/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/gcc-linaro-4.8-2014.04/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install --with-sysroot=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --enable-multilib --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3-d16 --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-isl=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-gold --with-local-prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long --with-mode=thumb --with-float=hard
线程模型:posix
gcc 版本 4.8.3 20140401 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04)