完整的开发板使用流程

完整工作流程

最简流程(推荐新手):

  1. 下载镜像 → 2. 烧录 SD 卡 → 3. 启动开发板 → 4. 开发应用

完整流程(进阶):

  1. 安装工具链 → 2. 获取/编译镜像 → 3. 烧录 → 4. 启动 → 5. 交叉编译开发

1. 安装交叉编译工具链(可选)

只在需要交叉编译时才需要安装:

  • aarch64-linux-gnu 工具链可以编译任何 ARM 64位架构的程序
  • 针对 ARMv8-A 架构的代码基本通用
  • 但不同芯片可能支持不同的指令集扩展(如 NEON、SVE 等)

方法1:apt 安装(最简单)

c++ 复制代码
# 方法1:apt 安装(最简单)
# 直接安装 Ubuntu 提供的交叉编译工具链
sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

aarch64-linux-gnu-gcc --version  # 验证版本
查看所有安装的交叉编译工具ls /usr/bin/aarch64-linux-gnu-*

方法2:手动下载配置

C++ 复制代码
# 方法2:手动下载配置
# 从官网或镜像下载工具链

wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz

# 解压到 /opt
# 配置环境变量

方法3:Linaro 工具链

C++ 复制代码
# 方法3:Linaro 工具链
wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
# 从镜像站下载
# 配置环境变量

配置编译环境

针对手动解压到 /opt 的工具链

C++ 复制代码
export CROSS_COMPILE=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-
export LD_LIBRARY_PATH=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export PATH=$PATH:/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/
export ARCH=arm64

针对apt安装的

c 复制代码
只需要设置这两个(如果需要编译内核/驱动)
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64

1. CROSS_COMPILE(需要,但路径不同)

js 复制代码
# 原来的(指向 /opt 下的工具链)
export CROSS_COMPILE=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-

# 你现在的(系统已经识别)
export CROSS_COMPILE=aarch64-linux-gnu-

2. LD_LIBRARY_PATH(不需要)

c 复制代码
# 原来的工具链需要手动指定库路径
# 你的工具链库已经在系统标准路径中
# /usr/lib/gcc-cross/aarch64-linux-gnu/

3. PATH(不需要)

c 复制代码
# 你的工具链已经在 /usr/bin/ 中
# 系统默认就会搜索这个路径

4. ARCH(根据需要设置)

c 复制代码
# 只在编译内核时需要
export ARCH=arm64

2. 获取系统镜像

方式1:下载预编译镜像(推荐)

c 复制代码
# 直接从官网下载
# 不需要编译
# 省时省力

方式2:编译系统镜像(进阶)

c 复制代码
# 下载 rdk-gen
git clone https://github.com/HorizonRDK/rdk-gen.git
# 编译(但可能遇到服务器问题)
sudo ./pack_image.sh

什么情况下需要编译系统镜像

需要自己编译的情况:

  • 深度定制系统(修改内核配置、驱动)
  • 裁剪系统大小(嵌入式应用)
  • 添加私有驱动程序
  • 修改启动流程
  • 学习系统构建过程

不需要自己编译的情况(大多数场景):

  • 使用开发板进行应用开发
  • 运行 AI 算法和模型
  • 测试和部署应用程序
  • 学习和教学
  • 使用标准功能

3. 烧录到 SD 卡

工具选择:

c 复制代码
# Windows:
- Rufus(推荐)
- balenaEtcher
- Win32DiskImager

# Linux:
- dd 命令
sudo dd if=image.img of=/dev/sdX bs=4M status=progress

烧录后的完整工作流程

C++ 复制代码
# 1. 开发板上电启动
# 2. 系统自动初始化
# 3. 登录系统
# 4. 配置网络
# 5. 开始开发/使用

Windows 上烧录镜像和ubuntu烧录的区别

Windows 烧录

  • 使用图形化工具(balenaEtcher、Rufus等)
  • 操作简单直观,适合新手
  • 不需要记忆命令
  • 有进度条和提示

下载镜像安装工具打开工具选择文件选择SD卡点击烧录等待完成 时间:约10-15分钟(含工具操作)

Ubuntu 烧录

  • 使用命令行(dd命令)
  • 操作快速高效
  • 需要知道设备名
  • 适合熟悉 Linux 的用户

下载镜像解压插入SD卡lsblk查看设备dd烧录sync 时间:约5-10分钟(熟练后)

详细对比

特性 Windows Ubuntu
工具 balenaEtcher/Rufus(图形界面) dd 命令(命令行)
难度 ⭐ 简单 ⭐⭐⭐ 需要小心
速度 较慢(工具开销) 较快(直接写入)
安全性 有保护(防止选错盘) 需自己确认设备名
进度显示 图形化进度条 命令行进度
验证 自动验证 需手动验证
压缩格式 自动处理 .xz/.zip 需先解压

4. 固件说明

通常不需要烧录固件:

c 复制代码
# 出厂已预装 Bootloader
# 只有变砖时才需要重新烧录
# 正常使用完全不用管

固件和系统的区别

项目 存储位置 谁提供 需要烧录?
固件(Bootloader) NAND Flash 出厂预装 ❌ 不需要
系统镜像(Ubuntu) SD 卡 你下载 ✅ 需要

启动流程说明

js 复制代码
开发板上电启动流程:
1. NAND Flash 中的 Bootloader 启动(已有)
   ↓
2. 检测 SD 卡
   ↓
3. 从 SD 卡加载系统(你需要烧录的)
   ↓
4. 进入 Ubuntu 系统

5. 开始开发

开发方式:

方式1:直接在开发板上开发

C++ 复制代码
# SSH 连接
ssh sunrise@192.168.x.x

# 安装开发工具
sudo apt install build-essential python3-pip git

# 直接写代码编译
gcc -o app app.c
./app

方式2:交叉编译后部署

c 复制代码
# 在 PC 上编译
aarch64-linux-gnu-gcc -o app app.c

# 传输到开发板
scp app sunrise@192.168.x.x:/home/sunrise/

# 在开发板上运行
ssh sunrise@192.168.x.x
./app
相关推荐
youcans_1 天前
【嵌入式软件AI编程】01. 基于 STM32/Claude Code的AI编程
stm32·mcu·嵌入式·ai编程·claude code
小智学长 | 嵌入式1 天前
实测GPT-6 Astra绘制硬件原理图和PCB效果分享
嵌入式·嵌入式开发·ai工具·单片机开发
一路往蓝-Anbo1 天前
第七篇:以太网设计 —— 从 RMII 时序到变压器隔离的深度拆解
stm32·单片机·嵌入式硬件·嵌入式·stm32硬件设计
玄奕子2 天前
三相逆变器系列(一):看懂三相全桥拓扑
嵌入式·dsp开发·电力电子·ti c2000·三相全桥逆变
the sun342 天前
嵌入式易错点:ARM指令架构、IP核、MCU厂商关系+BOOTLoader刷机原理
stm32·嵌入式
嵌入式阿蔡3 天前
CoAP / LwM2M 轻量协议:受限设备为什么不用 MQTT
单片机·物联网·嵌入式
长江后浪博客4 天前
ESP32-SOLO-1 在 ESP-IDF v5.5 下启动不断重启问题分析与解决
单片机·嵌入式硬件·嵌入式·esp32·freertos·esp-idf
Jason_zhao_MR4 天前
Linux与采集MCU通信为什么我们用了双SPI
linux·arm开发·单片机·嵌入式硬件·嵌入式
嵌入式阿蔡4 天前
云平台设备接入实战:三元组鉴权、属性上报与命令下发(阿里云/华为云)
嵌入式硬件·物联网·嵌入式·存储