新手小白,学完单片机STM32入手一块Linux开发板正点原子的ATK-DLRK3506B,需要学习哪些知识_rk3506 docker
目录
一、RK3506B开发板核心特点
二、必备知识储备
1. Linux基础
2. 嵌入式Linux开发流程
3. RK3506B特有功能
三、具体学习步骤
阶段1:环境搭建与基础实验
阶段2:外设驱动开发
阶段3:系统级开发
1. Loader 模式(常规烧录模式)
(1)工作原理
(2)操作步骤
2. MaskROM 模式(紧急修复模式)
(1)工作原理
(2)操作步骤
五、调试与进阶
六、推荐学习资源
七、注意事项
总结:学习路线图
作为STM32新手转向学习正点原子的RK3506B开发板(基于瑞芯微RK3506B处理器),你需要跨越从单片机到Linux嵌入式系统的门槛。以下是系统的学习路径和建议:
一、RK3506B开发板核心特点
-
异构架构:3核Cortex-A7@1.5GHz(运行Linux) + 1核Cortex-M0@200MHz(实时任务)15。
-
外设接口:USB OTG(烧录口)、UART(调试串口)、EMMC(存储)、GPIO、PWM、I2C、SPI 等。
-
应用场景:工业HMI、网关、音视频处理等,支持LVGL快速启动(3秒内)。
-
配套资源:正点原子提供完整的资料包(uboot、内核、文件系统、示例代码)。
-
启动模式:通过 SARADC_IN0 引脚电平选择启动方式(如 EMMC/USB 烧录模式)
名词解释:①LVGL(Light and Versatile Graphics Library)是一款轻量级、开源的嵌入式图形库,专为资源受限的嵌入式系统(如MCU或Linux嵌入式设备)设计,用于构建交互式用户界面(GUI)。②U-Boot(Universal Boot Loader) 是一个开源的引导加载程序(Bootloader),主要用于嵌入式系统,如开发板、路由器、物联网设备等。它在系统启动时首先运行,负责初始化硬件设备(如CPU、内存、外设等),然后加载操作系统内核(如Linux)并启动它,类似于PC中的BIOS或UEFI。③OTG烧录是一种通过USB OTG(On-The-Go)接口将固件或系统镜像烧录到嵌入式设备(如RK3506B开发板)的方法,无需依赖额外的烧录器或SD卡。
二、必备知识储备
1. Linux基础
-
命令行操作:熟悉Linux常用命令(
ls
、cd
、vim
等)和文件系统结构。 -
交叉编译:理解如何在PC上编译ARM架构的程序(如使用
gcc-arm-linux-gnueabihf
)。 -
设备树(DTS):掌握设备树语法,用于硬件外设配置(如串口、GPIO)。
名词解释:①设备树(Device Tree,简称 DT)是一种描述硬件配置的数据结构,主要用于 嵌入式系统(如 ARM、PowerPC、MIPS 架构),它告诉操作系统内核当前设备有哪些硬件资源(如 CPU、内存、外设等),而无需在内核代码中硬编码硬件信息。
②交叉编译 是指在一个 平台(主机,Host) 上编译生成另一个 不同平台(目标机,Target) 上可执行的代码。例如:
(1)主机(Host):x86_64 架构的 PC(如 Ubuntu 系统)
(2)目标机(Target):ARM 架构的嵌入式开发板(如树莓派、STM32)
2. 嵌入式Linux开发流程
-
固件组成:uboot引导 → 内核启动 → 文件系统加载。
-
开发工具链:
-
编译环境:Ubuntu 22.04(推荐真机或Docker)。
-
工具:
repo
、git
、交叉编译工具链(如rk3506_linux_release
SDK)。
-
3. RK3506B特有功能
-
核间通信(RPMsg):A7与M0核心通过共享内存通信。
-
2D加速引擎:优化LVGL等图形界面性能。
三、具体学习步骤
阶段1:环境搭建与基础实验
-
硬件准备:
-
开发板 + 12V电源 + Type-C调试串口(通过CH343芯片转换)。
-
-
软件工具:
-
安装Ubuntu 22.04,配置SDK编译环境(参考正点原子提供的《RK3506B开发指南》)。
-
-
第一个程序:
-
通过调试串口(UART0)打印\"Hello World\",学习Linux下的串口驱动与应用层编程。
-
阶段2:外设驱动开发
-
GPIO控制:点亮LED,对比STM32的HAL库与Linux的
sysfs
或libgpiod
接口。 -
UART通信:与STM32类似,但需注意Linux下的
ttyS
设备节点和termios
配置。 -
网络通信:利用双网口实现TCP/UDP数据传输(底板支持百兆网络)。
阶段3:系统级开发
-
移植uboot:修改启动参数,支持从eMMC或SD卡启动。
-
定制文件系统:使用Buildroot或Yocto构建最小系统,添加自定义应用。
-
多核协同:编写M0核的裸机程序(如实时控制),通过RPMsg与A7核通信。
名词解释:①eMMC 是一种 嵌入式闪存存储解决方案,它将 NAND Flash 存储芯片、闪存控制器 和 标准接口协议 集成在一个小型 BGA 封装中,主要用于智能手机、平板电脑、嵌入式设备等对空间和功耗敏感的场景。 ②Buildroot 是一个轻量级的嵌入式 Linux 系统构建框架,主要用于快速生成精简的 Linux 系统(包含 bootloader、内核、根文件系统和应用程序)。它采用 Kconfig + Makefile 的配置方式,类似于 Linux 内核的配置方法。③Yocto Project 是一个工业级的嵌入式 Linux 构建系统,由 Linux 基金会支持,适用于高度定制化的 Linux 发行版。它基于 BitBake 构建引擎,采用 分层架构(Layers),支持复杂的软件包管理和跨平台适配
四、烧录模式
正点原子 RK3506B 开发板的固件烧录主要通过 MaskROM 模式 和 Loader 模式 实现,两种模式分别用于不同场景,以下是它们的详细工作原理及操作步骤:
1. Loader 模式(常规烧录模式)
(1)工作原理
-
触发条件:通过硬件配置 SARADC_IN1 引脚为低电平(如按下
Recovery
按键)启动设备,使芯片进入 Loader 模式。 -
功能:
-
允许通过 USB OTG0 接口与 PC 通信,使用工具(如
MfgTool
)烧录固件。 -
支持分区烧录(如单独更新内核或文件系统),适合调试阶段。
-
-
硬件设计:
-
SARADC_IN1 引脚需默认上拉(10KΩ 电阻保持高电平),避免意外进入 Loader 模式。
-
(2)操作步骤
-
硬件连接:
-
开发板 USB OTG0 接口连接 PC。
-
串口(UART0)连接 PC 用于查看日志。
-
-
进入 Loader 模式:
-
按住
Recovery
按键(或短接测试点)上电,保持 SARADC_IN1 为低电平,直到 PC 识别到设备。
-
-
烧录固件:
-
使用
MfgTool
工具加载镜像文件(如uboot.img
、kernel.img
),点击 Start 烧录。
-
2. MaskROM 模式(紧急修复模式)
(1)工作原理
-
触发条件:当 EMMC 损坏 或 Loader 模式失效 时,通过短接 EMMC 数据引脚与地线,强制芯片进入 MaskROM 模式。
-
功能:
-
芯片内置的 BootROM 代码直接接管,通过 USB 接收主机发送的初始引导程序(如
uboot
),用于修复变砖设备。
-
-
风险提示:
-
需谨慎操作,短接错误可能导致硬件损坏。
-
(2)操作步骤
-
断电准备:
-
断开开发板所有电源。
-
-
短接测试点:
-
用镊子短接 EMMC 数据引脚与地线(通常为背面两个特定测试点)。
-
-
连接 USB:
-
插入 USB OTG0 接口到 PC,保持短接几秒后松开。
-
-
烧录修复:
-
PC 识别到
MaskROM
设备后,使用工具(如RKDevTool
)重新烧录完整固件。
-
五、调试与进阶
-
调试技巧:
-
使用
minicom
或screen
工具监控串口输出。 -
通过
JTAG
调试内核(需额外调试器)。
-
-
性能优化:
-
利用2D加速引擎提升LVGL帧率。
-
调整CPU频率与功耗策略(RK3506B支持动态调频)。
-
六、推荐学习资源
-
正点原子资料:下载配套的《RK3506B开发手册》和示例代码。
-
Linux系统编程:推荐《UNIX环境高级编程》。
-
实战项目:从简单HMI界面(LVGL)开始,逐步实现网关或数据采集系统。
七、注意事项
-
电平兼容:RK3506B的IO多为1.8V/3.3V,连接外设时需注意电平转换。
-
上电时序:核心板与底板的电源需按顺序启动(12V → 5V → 3.3V)。