ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RK3506 裸机开发(一):Ubuntu 22.04 交叉编译与串口环境搭建

RK3506 裸机开发(一):Ubuntu 22.04 交叉编译与串口环境搭建 一、先展示一下我的设备先贴一下我的设备配置方便大家对照项目我的配置系统Ubuntu 22.04.5 LTSCPUi7-13700H内存15 GiB 总量可用约 7.4 GiB显卡RTX 4050 Laptop6 GB 显存这套配置跑 ARM 裸机交叉编译和串口调试完全够用。二、安装环境2.1 需要装哪些软件软件是否必须作用gcc-arm-none-eabi✅ 必须ARM 交叉编译器在 x86 电脑上生成 ARM 机器码binutils-arm-none-eabi✅ 必须提供as/ld/objcopy/objdump/readelf/nm等工具picocom✅ 必须串口终端用来和 U-Boot 对话python3几乎肯定已有用来把.bin转成 U-Boot 的mw命令2.2 安装命令Ubuntu 下三条命令即可bashsudo apt update sudo apt install -y gcc-arm-none-eabi binutils-arm-none-eabi picocom如果python3没装再补bashsudo apt install -y python32.3 验证安装建议直接写完整命令避免${CROSS}未定义时命令为空basharm-none-eabi-gcc --version | head -1 arm-none-eabi-ld --version | head -1 arm-none-eabi-objcopy --version | head -1 arm-none-eabi-objdump --version | head -1 arm-none-eabi-readelf --version | head -1 arm-none-eabi-nm --version | head -1 which picocom picocom --version | head -1 python3 --version本机实测输出textarm-none-eabi-gcc (15:10.3-2021.07-4) 10.3.1 20210621 (release) GNU ld (2.38-3ubuntu115build1) 2.38 GNU objcopy (2.38-3ubuntu115build1) 2.38 # objdump/readelf/nm 同属 binutils版本一般也是 2.38 这一套 /usr/bin/picocom Python 3.10.122.4 确认串口设备原文这里把/dev/ttyACM0和arm-none-eabi-ld --version混在一起了建议拆开写bashls /dev/ttyACM* /dev/ttyUSB* 2/dev/null # 本机实测/dev/ttyACM0说明CH343 是 CDC-ACM所以通常是ttyACM*CH340/CP2102 通常是ttyUSB*。三、读懂工具链名字arm-none-eabiarm-none-eabi-gcc这个名字可以拆成三部分部分含义arm目标架构是 ARMnone没有操作系统no OS也就是“裸机”eabiEmbedded Application Binary Interface嵌入式应用二进制接口所以arm-none-eabi-gcc是一个不链接任何操作系统、不带完整 libc 的 ARM 编译器。裸机程序必须用这一套。四、最小安装清单把下面这段抄走在新机器上跑一遍就能开工bashsudo apt update sudo apt install -y gcc-arm-none-eabi binutils-arm-none-eabi picocom python3 # 可选 # sudo apt install -y android-tools-adb # 验证 arm-none-eabi-gcc --version | head -1 picocom --version | head -1 python3 --version就这些。这里先做裸机不需要下载 SDK。
返回列表