Station P2(ROC-RK3568-PC) 裸机开发1_开发环境搭建

我是这个设备:Station P2, 下面的链接说里面的板子是 ROC-RK3568-PC ,但是好像这个板子做了两个版本的电路板。
https://download.t-firefly.com/product/Board/RK356X/Document/Hardware/ROC-RK3568-PC/Specification/CN/ROC-RK3568-PC-开源主板-规格书.pdf

想在这个设备上玩裸机开发,了解了下这个板子的参数:
    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:\Users\lenovo>dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

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

映像版本: 10.0.19043.1466

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

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

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

查看wsl1和wsl2的区别:
https://docs.microsoft.com/zh-cn/windows/wsl/compare-versions
https://docs.microsoft.com/zh-cn/windows/wsl/basic-commands


如果觉得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\你的用户目录\AppData\Local\Packages\
搜索 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:\Users\lenovo>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2

C:\Users\lenovo>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

    如果需要,可以更新系统软件源列表,以便使用国内的软件源(比如清华的,这样安装软件快一些)
    从 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 获取对应的软件源列表
    覆盖掉 Ubuntu 的软件源配置文件 /etc/apt/sources.list 。

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

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


下面开始搞交叉编译工具:
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
我下载的这个: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


这次裸机开发,99%参考了这个项目:
https://hceng.cn/2018/08/16/RK3399——裸机大全/
https://github.com/hceng/RK3399/tree/master/hardware/

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

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

make rk3399.bin

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值