瑞芯微Rockchip开发者社区
直播中

杨福林

7年用户 1509经验值
私信 关注
[问答]

怎样在ROC-RK3568-PC设备上玩裸机开发呢

怎样在ROC-RK3568-PC设备上玩裸机开发呢?

回帖(1)

胡劝侨

2022-3-2 15:52:55
我是这个设备:Station P2, 下面的链接说里面的板子是 ROC-RK3568-PC ,但是好像这个板子做了两个版本的电路板。

想在这个设备上玩裸机开发,了解了下这个板子的参数:
    CPU :
        RK3568 A55    => ARMv8 ARM64
    GPU :
        Mali G52 2EE    => 3D实现了 opengl ES,内带 Rockchip 自家的 RGA 2D图形加速引擎(主要想玩这个2D加速)
    其它:
        各种常见接口,以及支持 4K 的 HDMI2.0a

编译环境是 Win10 WSL ,这个是 windows 中的 linux 环境(ubuntu)
==============================================================================================
------1).
在控制面板->程序与功能->启动或关闭Windows功能中安装 “适用于 Linux 的 Windows 子系统” 和 "虚拟机平台"

------2).
C:Userslenovo>dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

部署映像服务和管理工具
版本: 10.0.19041.844

映像版本: 10.0.19043.1466

启用一个或多个功能
[==========================100.0%==========================]

------3).
C:Userslenovo>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-16.04    Running         1

据说 VERSION == 1,用起来会很慢, 如果需要,可以用下面的指令把 wsl 更新成 wsl2 ,但不一定成功!!
wsl.exe --set-version Ubuntu-16.04 2

如果觉得wsl中的 Ubuntu-16.04 版本太老,可以在开始菜单旁边的搜索框内搜索 ubuntu , 然后卸载掉 Ubuntu-16.04
再打开Microsoft Store搜索Ubuntu,安装Ubuntu20.04(需要 microsoft 账户登录)。

------4).
启用完成后, CTRL + R, 运行 bash 指令即可调出 Ubuntu shell。
mount 指令可以查看 ubuntu shell 把 Windows 下的 C D E F 等各个盘挂载到哪个目录了
lenovo@HFWin10:/mnt/c/Users/lenovo$ mount
C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,case=off)
D: on /mnt/d type drvfs (rw,noatime,uid=1000,gid=1000,case=off)
E: on /mnt/e type drvfs (rw,noatime,uid=1000,gid=1000,case=off)

-----5).
从Microsoft Store 安装的 Ubuntu, 其对应的虚拟机文件默认是压缩的,
而wsl2不支持开了压缩的虚拟机, 所以要么切换回wsl1,要么取消虚拟机压缩
切换回wsl1:wsl.exe --set-version Ubuntu-20.04 1
取消压缩:
打开 C:Users你的用户目录AppDataLocalPackages
搜索 CanonicalGroupLimited , 搜索结果列表中就是你安装的虚拟机目录, 比如:CanonicalGroupLimited.Ubuntu20.04onWindows_***
如果虚拟机处于压缩状态,其文件夹图标的右上角会有两个对挤的箭头,
右击 -> 属性 -> 常规 -> 高级 -> 取消勾选 压缩内容以便节省磁盘空间 这一项 -> 确定

因使用习惯,需要这样将Ubuntu shell由dash修改为bash
sudo dpkg-reconfigure dash ,再选择No,确定

lenovo@HFWin10:/mnt/c/Users/lenovo$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jan 17 20:51 /bin/sh -> bash


我最后是这样子的环境:
--------------------------------------------------------------------
C:Userslenovo>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2

C:Userslenovo>bash
lenovo@HFWin10:/mnt/c/Users/lenovo$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jan 17 21:43 /bin/sh -> bash


在这个 ubuntu shell环境中搭建arm64编译环境:
==============================================================================================
安装make
sudo apt install make

    如果需要,可以更新系统软件源列表,以便使用国内的软件源(比如清华的,这样安装软件快一些)
   
    覆盖掉 Ubuntu 的软件源配置文件 /etc/apt/sources.list 。

    【注意:清华的软件源里面没有make!!, 所以把安装make放到最前面】
    【注意:开始 -> 运行, \wsl$  可以读取 wslUbuntu 中的 /etc/apt/ 等文件,但没有权限更改】

    然后:
    sudo apt-get update
    sudo apt-get upgrade

我下载的这个:gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz

xz -d gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
tar -xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar

把下面指令运行一次,同时把这个指令加入到 ~/.bashrc 中
PATH=$PATH:/mnt/e/Dev/EE/Rockchip/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin


里面有几个裸机代码的例子,其中第一个 "1_template" 是点LED的,不可以直接编译
试着编译一下其中的 "3_irq" 这个例子,当做测试检查编译环境是否已搭好。

因为环境不完全相同, 所以工程里面有需要调的地方,如下:
Makefile 文件中第一行改成 PREFIX=aarch64-none-elf-

make rk3399.bin

编译成功,说明环境没问题了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分