参考链接:https://www.dianyuan.com/eestar/article-1424.html

RK3328处理器采用了64位A53架构四核处理器,主频为1.5GHz,GPU则采用了Mali-450MP2,支持安卓8.1以及Linux OS系统,能够支持4K60帧视频解码、最新4K超高清(UHD Premium)、HDR10/HLG等国际标准。支持USB3.0以及千兆以太网数据传输。定位中高端,且支持语音助手,方便操作。除家用市场外,RK3328还多用于数字标牌和广告机。RK3328算是目前性价比较高的一款芯片。

先来看看到手的样子,和具体参数:

 

详细参数:

  • 中央处理器:
    • ARM Cortex-A53四核 
    • 每个CPU 32KB L1 I缓存和D缓存
    • 256KB L2快取
  • 内部SRAM
    • 总共32KB
  • 显卡
    •  马里450MP4
    • 符合Open GL ES1.1 / 2.0
  • 多媒体:
    • 4K VP9和4K 10位H265 / H264视频解码,最高60fps
    • 1080P其他视频解码器(VC-1,MPEG-1 / 2/4,VP8)
    • 适用于H.264和H.265的1080P视频编码器
    • 支持HDR10,HLG HDR,支持SDR和HDR之间的转换
  • 显示:
    • 具有HDCP 1.4 / 2.2的4K @ 60Hz的HDMI 2.0a
    • 支持Rec.2020和Rec.709之间的转换
  • 记忆:
    • LPDDR3 / DDR3 / DDR3L / DDR4
    • eMMC 4.51,SDCard,SPI闪存
  • 外部介面
    • USB 2.0 x2和USB 3.0 x1
    • 带内置PHY的100M以太网
    • 内置CVBS和音频DAC
    • 8个通道I2S IO和8个chanel数字PDM输入(用于MIC阵列)

再来说说几个糟点,当然只是说说,人无完人,当然也没有完美的板子。

  1. 默认并没有板载emmc,但有预留一个接外扩emmc的板对板连接器,如果你需要用emmc作为存储的话,需要单独购买。
  2. 没有板载WIFI,只有以太网口。只能通过外接USB WIFI网卡的方式让ROC-RK3328-CC联网
  3. ROC-RK3328-CC 的 UART 调试口默认使用1500000波特率,以前用的开发板一般默认都是115200的

编译环境搭建

Ubuntu 14.04 软件包安装

$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip tar curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 cmake tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

安装 ARM 交叉编译工具链和编译内核相关软件包

$ sudo apt-get install gcc-arm-linux-gnueabihf \
gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev \
libssl1.0.0 libssl-dev

源码下载

在同一个目录下, 下载下面4个git仓库

kernel
git clone https://github.com/FireflyTeam/kernel.git   release-4.4
uboot
git clone https://github.com/FireflyTeam/u-boot.git    release
build
git clone https://github.com/FireflyTeam/build.git     debian
rkbin
git clone https://github.com/FireflyTeam/rkbin.git     master

编译

  • uboot

./build/mk-uboot.sh roc-rk3328-cc

编译生成文件在out/u-boot/下

  • kernel

./build/mk-kernel.sh roc-rk3328-cc

编译生成文件为out/boot.img

  • 编译rootfs

参见《创建 Linux 根文件系统》

  • 生成固件

./buil
d/mk-image.sh -c rk3328 -t system -r out/linaro-rootfs.img

生成文件为out/system.img

 

启动

roc-rk3328-cc支持从TF卡和EMMC启动。

  • TF卡启动

使用Firefly SDCard Installer制作启动卡

烧写固件到TF卡,推荐使用Firefly SDCard Installer工具,支持linux , windows,  mac os

下载链接:SDCard Installer链接

步骤如下:

1、将 SD 卡插入到电脑中后,打开 SDCard Installer

2、点击 "Choose an OS"按钮,选择ROC-RK3328-CC后,显示如图。

3、如图所示,有五种选择:

            1)若本地没有需求的操作系统,则需要下载,选择好需要的操作系统后,点击OK即可。            2)若本地有需求的操作系统,点击Browse image后,选择好系统后,点击OK即可。

4、在完成了以上步骤的同时,电脑也识别出了SD卡,点击FLASH,等待完成即可。

 

注意:在烧写完成到99%或100%时,出现如下图情况,可忽略,并不影响固件烧写进SD卡

 

5、完成烧写后,将SD卡从电脑拔出后,插入rk3328的TF卡槽,上电即可。

 

使用DD命令制作启动卡

在Linux, Mac os下,也可以直接使用dd命令,制作TF卡。

  1. 插入TF卡设备到PC上, 确认TF设备节点, 通常为/dec/mmcblk0 或者 /dev/sdb,设备节点必须确认,如果写错,可能会导致PC上硬盘数据丢失。

  2.  
    pv -tpreb out/system.img | sudo dd of=/dev/sdb seek=0 conv=notrunc && sync

     

  • EMMC启动

使用EMMC启动, 在ROC-RK3328-CC上装好EMMC模块。使用双头公对公USB线。

Windows下连接设备

首先,系统要先安装RockUSB驱动    操作方法见:《升级固件》RK USB操作

设备升级,需要处于MaskROM状态或者rockusb状态。如果emmc是未烧写过固件的,则机器开机后自动进入maskrom状态。如果烧写过固件,机器能够正常启动,可以通过命令行或者按键操作,使机器进入rockusb状态,参见 《Uboot下设备模式管理》章节

 

如果上述两种情况均异常,则必须通过以下方法使机器进入maskrom状态。

强制maskrom

先使设备断开所有电源,又因 USB数据线也能为开发板提供系统启动电源,所以也需断开 USB 数据线的连接:

  1. 数据线一端连接开发板。

  2. 短接 Flash 的数据脚与地线脚,即板子上预留出来的 CLK 焊盘和 GND 焊盘

  3. 数据线另一端连接主机。

  4. 板子上电。

  5. 稍候片刻,断开短接,设备就会进入 MaskRom 模式。

烧写固件

windows烧写固件到EMMC使用工具AndroidTool      下载链接:AndroidTool链接

打开AndroidTool后,如下图:

 

    1、升级Loader文件:rk3328_loader_ddr786_v1.06.243.bin

    2、选择需要烧写的统一固件    (点击在该行末尾的空白格处,可在本地选择)

提示:在烧写时,一定要先升级Loader文件!

            固件需要本地存在。  点击这里 可获取统一固件)

烧写完成后,如下图:

    3、将USB双公头数据线拔出后,重启板子即可。

Linux下安装工具

    Linux下烧写固件到EMMC使用工具 rkdeveloptool, 下载链接:  rkdeveloptool

    安装工具运行环境

#apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf -y

升级固件

sudo rkdeveloptool db            out/u-boot/rk3328_loader_ddr786_v1.06.243.bin
sudo rkdeveloptool wl    0x00    system.img
sudo rkdeveloptool rd

更新固件

系统启动后,uboot、kernl、dtb、rootfs等都可以单独更新,而不用重新烧写完整固件。

Linux下

TF卡部分更新:

取出TF卡,插到电脑上。确认TF卡设备节点。

  1.  挂载boot, rootfs分区到本地,替换文件更新

mkdir boot
sudo mount /dev/sdb4 boot
mkdir rootfs
sudo mount /dev/sdb5 rootfs

   2.  通过dd, 将img写入到卡里面

sudo dd if=./out/u-boot/idbloader.img of=/dev/sdb seek=64      conv=sync,fsync 
sudo dd if=./out/u-boot/uboot.img     of=/dev/sdb seek=16384   conv=sync,fsync
sudo dd if=./out/u-boot/trust.img     of=/dev/sdb seek=24576   conv=sync,fsync
sudo dd if=./out/boot.img             of=/dev/sdb seek=32768   conv=sync,fsync
sudo dd if=./out/linaro-rootfs.img    of=/dev/sdb seek=262144  conv=sync,fsync

EMMC部分更新:

sudo rkdeveloptool db           out/u-boot/rk3328_loader_ddr786_v1.06.243.bin
sudo rkdeveloptool wl 0x40      out/u-boot/idbloader.img
sudo rkdeveloptool wl 0x4000    out/u-boot/uboot.img
sudo rkdeveloptool wl 0x6000    out/u-boot/trust.img
sudo rkdeveloptool wl 0x8000    out/boot.img
sudo rkdeveloptool wl 0x40000   out/linaro-rootfs.img

Windows下:

TF 部分更新:

取出TF卡,插到电脑上。系统自动挂载boot, rootfs分区到PC,替换文件更新

EMMC部分更新:

 

 

Uboot下设备模式管理

ROC-RK3328-CC的uboot可以支持多种与PC连接的模式,这些模式可以使用户方便地对设备进行升级、更新操作。特别是在fastboot模式下,用户可以在host pc使用多种操作系统的情况下,对设备进行固件升级更新操作。

通过双公头USB线连接PC,按住Recovery键,上电开机。根据按键时间的长短,设备会依次进入以下几种状态:

  1. UMS (USB Mass Storage)

    当设备上红色LED灯闪烁1次后,松开按键,设备USB进入UMS模式,设备作为一个USB大容量存储设备连接到电脑。设备上的EMMC、TF卡上的boot、root分区都可以挂载到PC上,用户可以很方便地进行修改。

    Debug 串口输出Log: rockchip_dnl_mode = UMS mode

  2. Fastboot

    当设备上红色LED灯连续闪烁2次后,松开按键,设备USB进入Fastboot模式,通过Fastboot工具,可以对TF卡,EMMC等设备的分区进行升级更新操作。

    Debug 串口输出Log: rockchip_dnl_mode = Fastboot mode

  3. Rockusb

    当设备上红色LED灯连续闪烁3次后,松开按键,设备进入Rockusb模式,此模式主要用于EMMC设备的固件更新操作。

    Debug 串口输出Log: rockchip_dnl_mode = Download mode

  4. Maskrom

    当设备上红色LED灯连续闪烁4次后,松开按键,设备进入Maskrom模式,此模式主要用于EMMC设备的固件更新操作。

    Debug 串口输出Log: rockchip_dnl_mode = Maskrom mode

Logo

更多推荐