Rk3568驱动开发_开发环境的搭建_1

1、环境说明:

需要用官方的程序包,这个程序需要在虚拟机里编译再将镜像烧录到板子里,本质上是给板子上一套Linux操作系统,镜像是.img文件
Linux操作系统被分成了多个模块,编译好后储存在镜像里,本质上就和程序编译好后变成可执行文件一样

Linux系统镜像文件通常是多个模块的集合,不同镜像封装不同功能组件,常见类型包括:
引导镜像(如u-boot.img)
封装内容:引导加载程序(如U-Boot),负责初始化硬件并加载内核。
作用:提供启动流程控制、环境变量管理、内核加载入口。
内核镜像(如vmlinuz或bzImage)
封装内容:内核核心代码,包含进程调度、内存管理、VFS等模块的二进制代码。
作用:驱动硬件、管理系统资源、提供基础服务(如系统调用)。
根文件系统镜像(如rootfs.img)
封装内容:用户空间工具(如BusyBox)、配置文件(/etc)、设备节点(/dev)和库文件(/lib)。
作用:提供用户交互环境、应用程序运行依赖、设备访问接口。
完整系统镜像(如system.iso)
封装内容:整合引导程序、内核、根文件系统及附加组件(如驱动程序、网络工具)。
作用:用于系统安装、备份或虚拟机部署。
专用功能镜像(如initramfs.img)
封装内容:临时根文件系统,包含硬件初始化脚本和必要驱动。
作用:在系统启动早期加载,辅助内核挂载主根文件系统。

在这里插入图片描述

驱动开发主要操作内核模块

2、大致编译流程:

1.解压代码

解压 atk-rk3568_linux5.10_release_v1.2_20250104.tgz
tar -vxf 解压
python3 .repo/repo/repo sync -l -j16 同步

将dl包解压到buildroot文件夹下,dl包是编译代码的一些依赖软件包,否则编译会失败
tar -vxzf dl.tgz

2.SDK中指定设备我的是rk3568

./build.sh lunch
或者./build.sh BoardConfig-rk3568-atk-evb1-ddr4-v10.mk (建议使用)

3.若需要所有镜像文件则需要全编译,否则只编译一个模块如内核模块

全编译
./build.sh alientek_rk3568_defconfig
./build.sh all

4.打包img文件,为了后续方便烧录

./build.sh updateimg

5.烧录镜像,只用烧update.img即可他是上述镜像模块的集合体

在这里插入图片描述
按住开发板上的 UPDATE 按键,然后给开发板上电或复位,此时设备便会进入 Maskrom 模式
在这里插入图片描述
点击升级即可烧录,注意一点是烧录后的串口波特率为1500000

烧录后用uname -r可查内核版本
在这里插入图片描述
配置一下ip后续需要用tftp传输ko文件做挂载

ifconfig eth0 192.168.11.10 netmask 255.255.255.0

在这里插入图片描述

### RK3568 AMP 架构开发流程与指南 RK3568 是一款由瑞芯微电子推出的高性能处理器,支持异构多处理(AMP)架构。该架构允许不同的操作系统或内核在同一硬件平台上并行运行,从而实现资源的有效分配和利用。 #### 1. 开发环境搭建 为了启动基于 RK3568 的 AMP 应用程序开发开发者需准备合适的工具链和支持库。通常情况下,这包括但不限于: - 安装 Linux 或 Windows 主机系统作为开发平台。 - 配置交叉编译器用于为目标板生成可执行文件。 - 下载官方提供的 BSP(Board Support Package),其中包含了必要的驱动程序和固件更新脚本[^1]。 ```bash sudo apt-get install build-essential git-core libncurses-dev bison flex gperf \ python-is-python3 u-boot-tools gcc-aarch64-linux-gnu ``` #### 2. 系统配置与初始化 在完成上述准备工作之后,下一步是对目标设备进行基本设置。具体操作如下: - 使用 UEFI/GRUB 加载引导加载程序,并确保其能够识别多个核心镜像。 - 编辑 `config.txt` 文件来指定主次 CPU 及各自的操作参数。 - 设置内存映射表以划分给各个子系统的 RAM 范围。 #### 3. 实现通信机制 由于存在两个独立运作但又相互协作的计算单元,在实际编程过程中必须建立有效的 IPC(进程间通讯)。常见的做法有通过共享存储区传递消息或是借助专用 API 进行远程过程调用(RPC)。 ```c // Example of shared memory setup between cores #include <fcntl.h> #include <sys/mman.h> int main() { int fd = shm_open("/shared_mem", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); ftruncate(fd, sizeof(data_t)); data_t *data_ptr = mmap(NULL, sizeof(data_t), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); // Use the shared memory segment... } ``` #### 4. 测试与调试 最后阶段涉及全面的功能验证以及性能优化工作。建议采用以下措施保障项目质量: - 利用 GDBServer 和 JTAG 接口连接外部仿真器辅助定位潜在错误源。 - 记录日志信息以便于后期分析问题所在位置。 - 对关键路径上的函数做详尽剖析找出瓶颈环节加以改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值