树莓派4B
2 分钟阅读
介绍
树莓派4B的工程是XWOS主仓库中的示例工程。工程目录位于 xwbd/RPi4B 。
- 硬件主页:https://www.raspberrypi.com/products/raspberry-pi-4-model-b/
- SOC: BCM2711
开发环境搭建指南
下载源码
git clone https://gitee.com/xwos/XWOS.git
或
git clone https://github.com/xwos/XWOS.git
vscode
调试需要先安装 vscode 。
安装插件:
Cortex-DebugC/C++Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
安装工具链
xwtc 是XWOS编译的工具集合,可以从百度网盘下载,按照内部 说明.md 安装就可。
- https://pan.baidu.com/s/1WwSaEajt6JqgMOLOa8iPEQ
- 提取码:xwos
- 注意 :一定要设置环境变量
XWTC,.vscode/launch.json中配置的gdb路径会使用此环境变量。
若用户使用 Ubuntu-24.04 作为开发环境,需要额外安装一些工具:
sudo dpkg-reconfigure dash # 选择 “否”
sudo apt install build-essential
sudo apt install emacs # 如果是纯命令行服务器环境,改为emacs-nox
openocd
- https://github.com/xpack-dev-tools/openocd-xpack/releases
- 根据自己的平台下载最新版本。
Ubuntu
-
- 解压。
-
- 打开
主文件夹,按ctrl+h显示隐藏文件,找到.local/。 将解压后内容(bin,openocd,libexec, …等文件夹)拷贝到.local/内并合并。
- 打开
-
- 重新登录系统后生效。
Windows
-
- 解压。
-
- 右键点击
此电脑–>属性–>高级系统设置–>环境变量。
- 右键点击
-
- 找到环境变量
Path,增加解压后的bin文件夹路径。
- 找到环境变量
-
- 重新登录系统后生效。
编译
编译的方法有两种:
- 打开终端,在终端中输入
- 切换到电路板目录
cd xwbd/RPi4B - 编译
make -j20 - 清理
make d
- 切换到电路板目录
- Vscode中选择
终端–>运行任务- 编译
build - 清理
clean
- 编译
调试
制作启动TF卡
- 到树莓派官网 https://www.raspberrypi.com/software/ 下载
Raspberry Pi Imager - 使用
Raspberry Pi Imager制作一个可启动的SD卡- Device选择
RASPBERRY PI 4 - 系统可以选择
RASPBERRY PI OS(64-BIT)或Use custom并选择 ubuntu 的img
- Device选择
- 打开TF卡的
system-boot分区,删除其中所有文件 。 - 将
xwbd/RPi4B/firmware/目录下的所有文件拷贝到TF卡的system-boot分区。
连接调试器
| JTAG 信号 | 树莓派4B排针 | GPIO | 备注 |
|---|---|---|---|
| TMS | J8-13 | 27 | |
| nTRST | J8-15 (TRST) | 22 | |
| VTREF | J8-17 (3v3) | Segger官方的JLink必须接 | |
| RTCK | J8-16 | 23 | 可以不接 |
| TDO | J8-18 | 24 | |
| TCK | J8-22 | 25 | |
| TDI | J8-37 | 26 | |
| GND | J8-39 | ||
| nRESET/SRST | J2-RUN |
连接终端串口
| UART 信号 | 树莓派4B排针 | GPIO | 备注 |
|---|---|---|---|
| TXD | J8-08 | 14 | |
| RXD | J8-10 | 15 | |
| GND | J8-25 |
- 波特率:2000000 BPS
启动调试
- 插入TF卡
- 插入电源
- 等待片刻(等待树莓派4B的GPU完成系统的初始化、读取config.txt,加载固件)
- 在
运行与调试页面- 首次上电
- JLink 选择
Rpi4b-AllCores-Openocd-Jlink-Launch - DapLink 选择
Rpi4b-AllCores-Openocd-Daplink-Launch
- JLink 选择
- 接入正在运行的系统
- JLink 选择
Rpi4b-AllCores-Openocd-Jlink-Attach - DapLink 选择
Rpi4b-AllCores-Openocd-Daplink-Attach
- JLink 选择
- 首次上电

调试经验
使用调试器时启动时序可能错误
- 调试启动后,CPU0会停在
soc_init(),其他CPU会在SPIN_TABLE自旋。 - 继续运行CPU0至
cpu0_mthd_mainfunc()线程的soc_boot_mp(),CPU0会启动其他CPU。 此时,才可点击其他CPU的继续运行按钮。
高外设地址模式
- Vscode的插件
Cortex-Debug只支持32bit的地址。开启高外设地址模式会导致外设寄存器显示功能失效。