首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >瑞芯微RK3506 3核A7@1.5GHz+双网口+双CAN-FD 工业开发板—Linux系统开发手册

瑞芯微RK3506 3核A7@1.5GHz+双网口+双CAN-FD 工业开发板—Linux系统开发手册

原创
作者头像
创龙科技Tronlong
发布2025-05-20 17:29:06
发布2025-05-20 17:29:06
5930
举报

前 言

本文主要演示Linux系统开发流程。包括LinuxSDK的配置与编译,U-Boot、Kernel及Rootfs开发,以及系统镜像的替换方法,旨在帮助开发者完成系统开发。

开发环境

Windows开发环境:Windows10 64bit

Linux开发环境:VMware16.2.5、Ubuntu22.04.4 64bit

LinuxSDK开发包:LinuxSDK-[版本号](基于RK3506_LINUX6.1_SDK_Release_V1.1.0_20241128

交叉编译工具链:

Rootfs开发:arm-buildroot-linux-gnueabihf-gcc(版本为12.4.0,通过LinuxSDK编译生成)

U-Boot开发、内核开发:gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf

评估板系统版本:U-Boot-2017.09、Linux-6.1.99、Buildroot-2024.02

备注:本文基于256MByte NAND FLASH、256MByte DDR3配置核心板进行演示。

术语表

为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

注意事项

NAND FLASH配置评估板支持通过系统启动卡和板载NAND FLASH启动系统。eMMC配置评估板仅支持通过板载eMMC启动系统。

Linux系统各镜像可通过命令行方式和瑞芯微开发工具替换,具体如下表所示。

Linux系统相关软件包位于产品资料“4-软件资料\Linux\”目录下,具体如下表。

备注:我司推荐使用最新版本的LinuxSDK,亦可根据“4-软件资料\Linux\LinuxSDK\LinuxSDK-feature-support.pdf”的变更说明,自行替换对应模块(如device/rockchip)至旧版本LinuxSDK进行更新。

评估板简介

RK3506J/RK3506B处理器的IO电平标准一般为1.8V、3.3V,上拉电源一般不超过3.3V或1.8V,当外接信号电平与IO电平不匹配时,中间需增加电平转换芯片或信号隔离芯片。按键或接口需考虑ESD设计,ESD器件选型时需注意结电容是否偏大,否则可能会影响到信号通信。

评估板硬件资源图解1
评估板硬件资源图解1
评估板硬件资源图解2
评估板硬件资源图解2

LinuxSDK配置与编译

请先参考《开发环境搭建》文档正确安装LinuxSDK和依赖软件,再执行以下步骤。

配置编译选项

进入LinuxSDK源码目录,配置LinuxSDK编译选项。

Host# cd /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/

Host# ./build.sh tl3506_evm_nand_defconfig

备注:如需编译生成适用于eMMC或系统启动卡系统启动方式的Linux系统镜像,请将命令中的"nand"修改为"emmc"或"sd"。

图 1
图 1

配置编译设备树文件

我司提供的设备树文件位于LinuxSDK源码"kernel/arch/arm/boot/dts"目录。设备树文件根据NAND FLASH、eMMC两种配置,以及评估板部分复用外设功能进行区分。具体说明如下表。

以下设备树文件适用于NAND FLASH配置评估板,同时支持系统启动卡。

以下设备树文件仅适用于eMMC配置评估板。

评估板使用的设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级设备树文件,被上一级设备树文件所引用。

本次操作以替换为tl3506-evm-nand-lvds-lcd.dts设备树(支持LVDS LCD显示)进行演示,其他设备树修改方法同理。

进入LinuxSDK源码目录执行如下命令,修改"device/rockchip/rk3506/tl3506_evm_nand_defconfig"文件。

Host# vim device/rockchip/rk3506/tl3506_evm_nand_defconfig

备注:如需编译生成适用于eMMC或系统启动卡系统启动方式的设备树文件,请将命令中的"nand"修改为"emmc"或"sd"。

图 2
图 2

修改内容如下:

RK_KERNEL_DTS_NAME="tl3506-evm-nand-lvds-lcd" //将"tl3506-evm-nand"修改为"tl3506-evm-nand-lvds-lcd"

图 3
图 3

配置内核选项

我司默认配置的是Linux内核(推荐使用)。如需修改内核编译选项配置,请继续执行"./build.sh kernel-config"命令打开图形配置界面。此命令通过读取当前目录的.config文件,以图形界面的方式提供内核编译配置查看和修改方法。如无需修改内核编译选项配置,可跳过此步骤。

menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库。

Host# sudo apt-get install libncurses5-dev

图 4
图 4

ncurses库安装完成后,执行如下命令打开图形配置界面。

Host# cd /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/

Host# ./build.sh kernel-config

图 5
图 5
图 6
图 6

可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。

每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到内核中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到内核中。按下M键,会将相应的选项配置编译为内核模块,菜单选项前面变为< M >。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。

图 7
图 7

配置完毕后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按Enter键退出。

图 8
图 8

备注:若配置有改动,退出menuconfig后脚本会自动将改动保存到原始的defconf文件。

配置Buildroot

RK3506系列芯片包含RK3506J和RK3506B两种型号,支持eMMC(系统启动卡与eMMC共用同一份配置文件)和NAND FLASH两种启动模式。请根据实际情况操作,软链接buildroot目录下的configs文件。

Host# cd /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/

Host# cd buildroot/configs/

Host# ln -sf rockchip_rk3506_nand_defconfig rockchip_rk3506_defconfig

Host# ls -l rockchip_rk3506_defconfig* //确认软链接正确

备注:若系统启动方式为eMMC或系统启动卡,请将命令中的"nand"更换为"emmc"。

图 9
图 9

如需修改Buildroot配置,请执行如下命令打开Buildroot配置界面。若无需修改Buildroot配置,可跳过此步骤。

Host# cd /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/

Host# ./build.sh buildroot-config:rockchip_rk3506_nand

备注:若系统启动方式为eMMC或系统启动卡,请将命令中的"nand"更换为"emmc"。

图 10
图 10
图 11
图 11

可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。

每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到Buildroot中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到Buildroot中。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。

配置完毕后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按Enter键退出。若配置有改动,退出menuconfig后脚本会自动将改动保存到原始的defconf文件。

编译LinuxSDK

若非首次编译LinuxSDK,且系统镜像的存储介质从NAND FLASH切换为eMMC或Micro SD卡(系统启动卡),需执行如下命令清理文件系统再执行编译命令。

Host# cd /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/

Host# ./build.sh clean-rootfs

图 12
图 12

请确保已参照配置编译选项章节配置LinuxSDK编译选项,然后在LinuxSDK的源码目录下执行如下命令,一键编译生成U-Boot、Kernel、Buildroot、Recovery等镜像,并打包生成Linux系统镜像。

Host# ./build.sh

图 13
图 13

预计耗时约2小时后编译完成,最终在rockdev目录下生成U-Boot、Kernel、Buildroot、Recovery、Linux系统等镜像如下所示。

图 14
图 14
图 15
图 15

系统组件镜像说明

U-Boot开发

U-Boot配置

U-Boot可使用menuconfig进行配置,请参考“配置内核选项”章节,配置menuconfconfig所需依赖环境。

在LinuxSDK源码目录下,执行如下命令先编译一次U-Boot,脚本会在U-Boot目录下执行"make rk3506_defconfig"生成.config文件。

Host# ./build.sh uboot

图 16
图 16
图 17
图 17

在LinuxSDK源码目录下,执行如下命令,进入"u-boot"目录,通过menuconfig配置U-Boot。

Host# cd u-boot/

Host# make menuconfig

图 18
图 18
图 19
图 19

在U-Boot目录下执行如下命令,更新defconfig文件。

Host# make savedefconfig

Host# mv defconfig configs/rk3506_defconfig

图 20
图 20

编译U-Boot

在LinuxSDK源码目录下执行如下命令,配置编译选项,并单独编译U-Boot。

Host# ./build.sh uboot

图 21
图 21
图 22
图 22

备注:U-Boot编译会将"rkbin/bin/rk35/"目录下的bl31固件一起编译。编译后生成U-Boot SPL镜像rk3506_spl_loader_v1.04.110.bin、rk3506_idblock_v1.04.110.img和U-Boot镜像uboot.img。

替换U-Boot

替换U-Boot SPL

我司已提供SPL镜像rk3506_spl_loader_v1.04.110.bin和rk3506_idblock_v1.04.110.img文件,位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2017.09-[版本号]-[Git系列号]\”目录下。

其中rk3506_idblock_v1.04.110.img文件可通过评估板文件系统固化至系统启动卡或eMMC。rk3506_spl_loader_v1.04.110.bin文件仅支持通过瑞芯微开发工具RKDevTool固化至NAND FLASH或eMMC。

备注:通过命令行替换方式暂未支持固化SPL镜像至NAND FLASH。通过瑞芯微开发工具RKDevTool替换方式不支持固化SPL镜像至系统启动卡。

通过命令行替换

请从系统启动卡或eMMC启动系统,将SPL镜像rk3506_idblock_v1.04.110.img文件拷贝到评估板root目录下,执行如下命令固化至系统启动卡或eMMC。

备注:系统启动卡与eMMC均为同一个设备节点"/dev/mmcblk0"。

Target# dd if=rk3506_idblock_v1.04.110.img of=/dev/mmcblk0 seek=64 conv=fsync

Target# reboot

图 23
图 23

通过瑞芯微开发工具替换

请确保评估板Micro SD卡槽未插入Micro SD卡,并使用Type-C线将评估板USB2.0 OTG接口连接至PC机USB接口。

备注:在进行本次操作前,需确保NAND FLASH或eMMC已固化完整系统镜像。

请参考《Linux系统固化手册》文档安装瑞芯微开发工具RKDevTool。将SPL镜像rk3506_spl_loader_v1.04.110.bin文件拷贝至Windows非中文工作目录下。本次以固化至NAND FLASH为例,固化至eMMC操作方法类似。

打开瑞芯微开发工具,点击选择待替换的SPL镜像rk3506_spl_loader_v1.04.110.bin,并勾选对应选项。

图 24
图 24

长按评估板的USER1(KEY3)按键,将评估板上电启动,等待瑞芯微开发工具提示“发现一个LOADER设备”后松开USER1(KEY3)按键。

图 25
图 25

点击“设备分区表”,在弹出的询问窗口中点击“是(Y)”。

图 26
图 26
图 27
图 27

点击“确定”完成分区表更新。

图 28
图 28

点击“执行”按钮,固化镜像,固化完成后评估板不会自动重启,依然处于LOADER模式,将评估板重启即可生效。

图 29
图 29

替换U-Boot镜像

我司已提供U-Boot镜像uboot.img文件,位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2017.09-[版本号]-[Git系列号]\”目录下。

其中uboot.img文件可通过评估板文件系统固化至系统启动卡或eMMC。亦可通过瑞芯微开发工具RKDevTool固化至NAND FLASH或eMMC。

备注:通过命令行替换方式暂未支持固化U-Boot镜像至NAND FLASH。通过瑞芯微开发工具RKDevTool替换方式不支持固化U-Boot镜像至系统启动卡。

通过命令行替换

请从系统启动卡或eMMC启动系统,请将U-Boot镜像uboot.img文件拷贝至评估板root目录下,执行如下命令将其固化至系统启动卡或eMMC。

备注:系统启动卡与eMMC均为同一个设备节点"/dev/mmcblk0p1"。

Target# dd if=uboot.img of=/dev/mmcblk0p1 conv=fsync

Target# reboot

图 30
图 30

通过瑞芯微开发工具替换

请确保评估板Micro SD卡槽未插入Micro SD卡,并使用Type-C线将评估板USB2.0 OTG接口连接至PC机USB接口。

备注:在进行本次操作前,需确保NAND FLASH或eMMC已固化完整系统镜像。

请参考《Linux系统固化手册》文档安装瑞芯微开发工具RKDevTool。将U-Boot镜像uboot.img文件拷贝至Windows非中文工作目录下。本次以固化至NAND FLASH为例,固化至eMMC操作方法类似。

打开瑞芯微开发工具,点击选择待替换的U-Boot镜像uboot.img,并勾选对应选项。

图 31
图 31

长按评估板的USER1(KEY3)按键,将评估板上电启动,等待瑞芯微开发工具提示“发现一个LOADER设备”后松开USER1(KEY3)按键。

图 32
图 32

点击“设备分区表”,在弹出的询问窗口中点击“是(Y)”。

图 33
图 33
图 34
图 34

点击“确定”完成分区表更新。

图 35
图 35

点击“执行”按钮,固化镜像,固化完成后评估板会自动重启,等待评估板重启进入系统后,瑞芯微开发工具提示“发现一个ADB设备”即可生效。

图 36
图 36

Kernel开发

Kernel配置

设备树配置

请参考“配置编译设备树文件”章节配置设备树文件。

Linux内核选项配置

请参考“配置内核选项”章节配置内核选项。

编译Kernel

在LinuxSDK源码目录下执行如下命令,配置编译选项,单独编译Linux内核。

Host# ./build.sh kernel

图 37
图 37
图 38
图 38

替换Kernel镜像

我司已提供Linux内核镜像文件,位于产品资料“4-软件资料\Linux\Kernel\image\linux-6.1.99-[版本号]-[Git系列号]\”目录下。

其中boot-nand.img文件可通过评估板文件系统固化至NAND FLASH或系统启动卡。亦可通过瑞芯微开发工具RKDevTool固化至NAND FLASH。

boot-emmc.img文件可通过评估板文件系统固化至eMMC。亦可通过瑞芯微开发工具RKDevTool固化至eMMC。

备注:通过瑞芯微开发工具RKDevTool替换方式不支持固化Linux内核镜像至系统启动卡。

通过命令行替换

请将Linux内核镜像拷贝至评估板root目录下(镜像名称请以实际情况为准),执行如下命令固化至NAND FLASH。如需固化至系统启动卡或eMMC,请将命令中的"mtdblock4"替换为"mmcblk0p3"。

Target# dd if=boot.img of=/dev/mtdblock4 conv=fsync

Target# reboot

图 39
图 39

通过瑞芯微开发工具替换

请确保评估板Micro SD卡槽未插入Micro SD卡,并使用Type-C线将评估板USB2.0 OTG接口连接至PC机USB接口。

备注:执行本操作前,需确保NAND FLASH或eMMC中已固化完整系统镜像。

请参考《Linux系统固化手册》文档安装瑞芯微开发工具RKDevTool。将Linux内核镜像文件拷贝至Windows非中文工作目录下。本次以固化至NAND FLASH为例,固化至eMMC操作方法类似。

打开瑞芯微开发工具,点击选择待替换的Linux内核镜像boot.img,并勾选对应选项。

图 40
图 40

长按评估板的USER1(KEY3)按键,将评估板上电启动,等待瑞芯微开发工具提示“发现一个LOADER设备”后松开USER1(KEY3)按键。

图 41
图 41

点击“设备分区表”,在弹出的询问窗口中点击“是(Y)”。

图 42
图 42
图 43
图 43

点击“确定”完成分区表更新。

图 44
图 44

点击“执行”按钮,固化镜像,固化完成后评估板会自动重启,等待评估板重启进入系统后,瑞芯微开发工具提示“发现一个ADB设备”即可生效。

图 45
图 45

Rootfs开发

Rootfs源码说明

Rootfs(根文件系统)是Linux内核启动后挂载的第一个文件系统,它包含了Linux系统启动和运行所必需的所有文件和目录。我司的根文件系统基于LinuxSDK源码的buildroot进行编译开发。

图 46
图 46

Rootfs配置

请参考“配置Buildroot”章节,并根据评估板系统镜像存储介质软链接buildroot目录下的configs文件。

编译Rootfs

如需将系统镜像的存储介质从NAND FLASH切换到eMMC/SD(或从eMMC/SD切换到NAND FLASH),需要执行如下命令清理文件系统再执行编译命令。

Host# cd /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/

Host# ./build.sh clean-rootfs

图 47
图 47

配置好Rootfs后,在LinuxSDK源码目录下执行如下命令,配置编译选项,单独编译文件系统。

Host# cd /home/tronlong/RK3506/rk3506_linux6.1_release_v1.1.0/ Host# ./build.sh buildroot

图 48
图 48
图 49
图 49

替换Rootfs镜像

我司已提供文件系统镜像文件,位于产品资料“4-软件资料\Linux\Filesystem\image\buildroot-2024.02-[版本号]-[Git系列号]\”目录下。

其中rootfs-nand.img文件可通过瑞芯微开发工具RKDevTool固化至NAND FLASH。rootfs-emmc.img文件可通过瑞芯微开发工具RKDevTool固化至eMMC。

备注:根文件系统暂不支持通过命令行替换的方式固化Rootfs镜像,仅支持通过瑞芯微开发工具替换。执行本操作前需确保NAND FLASH或eMMC已固化完整系统镜像。

请确保评估板Micro SD卡槽未插入Micro SD卡,并使用Type-C线将评估板USB2.0 OTG接口连接至PC机USB接口。参考《Linux系统固化手册》文档安装瑞芯微开发工具RKDevTool。将Rootfs镜像rootfs-nand.img文件拷贝至Windows非中文工作目录下。本次以固化至NAND FLASH为例,固化至eMMC操作方法类似。

打开瑞芯微开发工具,点击选择待替换的Rootfs镜像rootfs-nand.img,并勾选对应选项。

图 50
图 50

长按评估板的USER1(KEY3)按键,将评估板上电启动,待瑞芯微开发工具提示“发现一个LOADER设备”后松开USER1(KEY3)按键。

图 51
图 51

点击“设备分区表”,在弹出的询问窗口中点击“是(Y)”。

图 52
图 52
图 53
图 53

点击“确定”完成分区表更新。

图 54
图 54

点击“执行”按钮,固化镜像,固化完成后评估板会自动重启,等待评估板重启进入系统后,瑞芯微开发工具提示“发现一个ADB设备”即可生效。

图 55
图 55

关注微信公众号Tronlong创龙科技,可获取更多更新的干货。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前 言
    • 开发环境
    • 术语表
    • 注意事项
  • 评估板简介
  • LinuxSDK配置与编译
    • 配置编译选项
      • 配置编译设备树文件
      • 配置内核选项
      • 配置Buildroot
    • 编译LinuxSDK
    • 系统组件镜像说明
  • U-Boot开发
    • U-Boot配置
    • 编译U-Boot
    • 替换U-Boot
      • 替换U-Boot SPL
      • 替换U-Boot镜像
  • Kernel开发
    • Kernel配置
      • 设备树配置
      • Linux内核选项配置
    • 编译Kernel
    • 替换Kernel镜像
  • Rootfs开发
    • Rootfs源码说明
    • Rootfs配置
    • 编译Rootfs
    • 替换Rootfs镜像
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档