100ask roc-rk3399-pc

出自 百问网嵌入式Linux wiki
前往: 導覽搜尋

BeginnerLearningRoute 005.png

roc-rk3399-pc簡介

SOC特徵

  • CPU:
    • Big.Little architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU
    • Frequency is over 1.8GHz (Big cluster)
    • L1 cache
      • 48KB Icache and 32KB Dcache for each A72
      • 32KB Icache and 32KB Dcache for each A53
    • L2 cache
      • 1024KB for big cluster
      • 512KB for little cluster
  • Internal SRAM
    • 192KB total
    • 4KB used by bootrom when bootup
  • GPU:
    •  Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11
    • Supports AFBC (ARM Frame Buffer Compression)
  • Display:
    • Dual VOP: one supports 4096x2160 with AFBC supported;The other supports 2560x1600
    • Dual channel MIPI-DSI (4 lanes per channel)
    • eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR
    • HDMI 2.0 for 4K 60Hz with HDCP 1.4/2.2
    • DisplayPort 1.2 (4 lanes, up to 4K 60Hz)
    • Supports Rec.2020 and conversion to Rec.709
  • Camera:
    •  Dual mipi CSI,dual ISP,Maximum input resolution of 13M pixels
  • Memory:
    • Dual channels 64-bit DRAM controller
    • Support DDR3/DDR3L, LPDDR3, LPDDR4
  • Connectivity:
    • PCIe 2.1 (4 full-duplex lanes with 20Gbps)
    • Embedded low power MCU for other application
    • 8 channels I2S supports 8 channels RX or 8 channels TX
RK3399 Block Diagram.png

開發板特徵

正面視圖
背面視圖
roc-rk3399-pc 開發板參數列表
主控晶片
  • Rockchip RK3399 (28納米HKMG製程)
處理器
  • 六核ARM® 64位處理器,主頻高達1.8GHz
  • 基於big.LITTLE大小核架構,雙核Cortex-A72(大核)+四核Cortex-A53(小核)
圖形處理器
  • ARM Mali-T860 MP4 四核GPU
  • 支持OpenGL ES1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11
  • 支持AFBC(幀緩衝壓縮)
視頻處理器
  • 支持4K VP9 and 4K 10bits H265/H264 視頻解碼,高達60fps
  • 1080P 多格式視頻解碼 (WMV, MPEG-1/2/4, VP8)
  • 1080P 視頻編碼,支持H.264,VP8格式
  • 視頻後期處理器:反交錯、去噪、邊緣/細節/色彩優化
電源管理
  • RK808-D PMU晶片
內存
  • 4GB LPDDR4 雙通道64位RAM
存儲器
  • 板載SPI flash(16M Byte)
  • 16GB/32GB/128GB 高速eMMC(可選)
  • 支持MicroSD (TF) 卡、U盤擴展
  • 支持擴展板M.2 M-Key 擴展SSD
乙太網
  • 千兆乙太網(RJ45接口)
WiFi/藍牙
  • 通過擴展板 M.2 E-Key接口(提供SDIO 3.0信號)
顯示
  • HDMI2.0支持4K 60Hz顯示,支持HDCP 1.4/2.2
  • DisplayPort 1.2(最高支持4K 60Hz)
  • 支持eDP 1.3
  • 支持MIPI-DSI(雙通道)
  • 支持雙屏顯示(Type-C + HDMI),支持 4K + 2K輸出
音頻
  • 1 x HDMI音頻輸出、DP音頻輸出
攝像頭
  • 雙路MIPI CSI接口(同時支持雙路攝像頭)
USB
  • USB 2.0 Host × 3
  • Type-C × 2
調試
  • 調試串口 × 1,用於開發調試
按鍵
  • Recovery × 1
  • Power × 1
紅外
  • 1路紅外接收頭,支持紅外遙控功能
RTC
  • RTC實時時鐘 x 1,板載電池座
電源
  • POE+(802.3 AT,輸出功率 30W)
  • Type-C PD 2.0電源控制晶片、支持寬電壓輸入(5V-15V)
  • 雙節電池供電(7.4V鋰電)
雙Type-C
  • 支持 4K@60fps輸出(不支持同時輸出)
  • TypeC0接口:支持 DisplayPort 1.2 + Power Delivery 2.0+ USB3.0 OTG +USB2.0 Host、
  • 使用一根Type-C線,即可同時實現的板子供電和DP輸出。
  • TypeC1 接口:支持DisplayPort 1.2 + USB3.0 HOST+ USB2.0 HOST, 支持對外供電

軟體支持

模塊支持

  • adxl345
  • dac
  • dh11
  • ds18b20
  • eeprom
  • gps
  • irda
  • oled
  • 步進電機驅動模塊
  • 超聲波
  • 人體紅外感應

快速使用

準備工作

開發板連接示意圖

要使用你的roc-rk3399-pc開發板,請提前準備好以下資源:

  • 一台可以上網的windows電腦
  • roc-rk3399-pc開發板
  • microSD卡/TF卡: Class10或以上的 8GB SDHC卡
  • 一個12v/2A的TYPE C接口電源適配器
  • VMware-player-15.1.5.exe
  • Vmware ubuntu 18.04 64位虛擬機鏡像
  • win32diskimager-1.0.0-install.exe
  • MobaXterm_Portable_v11.0.zip

開發板連接示意圖請參考右邊的連接方式,連接後用MobaXterm串口工具進行登錄。
注意開發板串口登錄用戶名為root沒有密碼

更新系統/燒寫img鏡像文件

請提前下載好配套的資料(本頁最開頭有下載連結),拷貝下列文件到到下載目錄:

Firefly-Roc-rk3399-pc_board/roc-rk3399-pc_视频配套资料_2019.06.20_v1/02_Images/Sdcard_buildroot-image


然後通過如下操作進行燒寫更新系統。

sd卡啟動

  • 1.安裝資料光碟下01_tools\SD Card Formatter 5.0.1 Setup.exe軟體,安裝完成後打開!
  • 2.使用SdCardFormatter格式化SD卡,格式化步驟如下如所示!
100ask am335x SD P 004.png 100ask am335x SD P 005.png 100ask am335x SD P 006.png
(1)選擇要格式化的SD卡,選中Quick format,點擊Format (2)在彈出的對話框中點擊是(Y) (3)等待格式化完成,在彈出的對話框中點擊確定
  • 3.安裝資料光碟下01_tools/ win32diskimager-1.0.0-install.exe軟體,安裝完成後打開!
  • 4.使用wind32diskimage燒寫存放在百度網盤中RK3399配套資料目錄中的系統鏡像文件: 02_Images/Sdcard_buildroot-image/sdcard.img

燒寫步驟如下所示:

100ask am335x SD p 001.png 100ask am335x SD p 002.png 100ask am335x SD p 003.png
(1)選中需要燒寫的SD卡設備,點擊文件圖標選擇系統鏡像文件,最後點擊寫入按鈕開始燒寫 (2)此時彈出燒寫對話框,點擊Yes按鈕,繼續燒寫, 等待任務進度執行到100%) 燒寫成功後,彈出寫入成功,此時點擊OK

體驗Arduino編程

在過去十年的教育培訓中,遇到很多程式設計師、計算機軟硬體愛好者。他們對硬體、驅動並不了解,
希望通過簡單的學習就能控制硬體,實現自己創意想法,而不是看硬體晶片手冊、編寫驅動、應用程式。
為此,我們在產品上編寫了一套基於Arduino的應用程式庫,讓用戶可以通過幾行簡單的代碼,實現對各種硬體模塊的控制。

介紹了LED燈、按鍵、紅外遙控、溫濕度傳感器、人體紅外檢測、超聲波測距、步進電機控制、OLED顯示、三軸加速度計、
實時時鐘、數模/模數轉換、GPS模塊等的基本使用,最後再示例了兩個實戰項目供讀者參考。

  • 使用方法請參考該連結,使用GIT下載文檔:http://wiki.100ask.org/BeginnerLearningRoute
  • 使用GIT下載文檔後,請參考 01_使用Arduino操作體驗簡單開發/ROC-RK3399-PC開發板Arduino使用手冊.pdf

編譯100ask linux sdk系統

注意:以下所有操作均在我們提供的資料光碟以及vmware ubuntu18.04進行過測試,確保其可用。如需自行安裝配置vmware ubuntu開發環境請參考Configuring_ubuntu

簡介:以下資源僅限於在百問網官方購買及百問網授權店鋪購買的開發板上使用,我們在官方的基礎上做了大量的定製化修改,精簡了系統,簡化下載以及編譯流程,更大的提升開發效率,系統不同於firefly官方。
如需為roc-rk3399-pc編譯ubuntu 以及Android系統請參考參考頁面 構建Linux-sdk 構建Android-7.1系統 構建Android-8.1系統

獲取源碼

類別 國內coding倉庫 國外github倉庫
u-boot https://dev.tencent.com/u/weidongshan/p/100ask_roc-rk3399-pc_uboot https://github.com/100askTeam/roc-rk3399-pc_uboot
linux kernel https://dev.tencent.com/u/weidongshan/p/100ask_roc-rk3399-pc_kernel https://github.com/100askTeam/roc-rk3399-pc_kernel
根文件系統 https://dev.tencent.com/u/weidongshan/p/100ask_roc-rk3399-pc_buildroot https://github.com/100askTeam/roc-rk3399-pc_buildroot

git郵箱帳號和用戶名配置

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

初次使用,需要配置用戶名和密碼才可以進行代碼同步,用戶名和密碼根據自己情況設定,也可以隨意設定

  • repo工具配置

考慮到代碼倉庫過多,特使用repo工具管理代碼

book@100ask:~$  git clone  https://git.dev.tencent.com/codebug8/repo.git
book@100ask:~$  mkdir -p 100ask_roc-rk3399-pc && cd 100ask_roc-rk3399-pc
book@100ask:~/100ask_roc-rk3399-pc $ ../repo/repo init -u https://dev.tencent.com/u/weidongshan/p/manifests/git -b linux-sdk -m rk3399/roc-rk3399-pc_linux_release.xml --no-repo-verify
book@100ask:~/100ask_roc-rk3399-pc $  ../repo/repo sync -j4

設置工具鏈

交叉編譯工具鏈主要是用於在ubuntu主機上編譯並聲稱可以在其它平台上運行的系統。設置交叉編譯工具主要是設置PATH, ARCH和CROSS_COMPILE三個環境變量,下面介紹具體設置方法。

  • 永久生效

如需永久修改,請修改用戶配置文件, Ubuntu系統下,修改如下:

vim ~/.bashrc

在行尾添加或修改:

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

設置完成後執行 source ~/.bashrc 才能使其生效

  • 臨時生效

執行完「export」命令後,該設置只對當前終端有效

book@100ask:~$ export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
book@100ask:~$ export ARCH=arm64
book@100ask:~$ export CROSS_COMPILE=aarch64-linux-gnu-
  • 手動指定

Make編譯時指定ARCH架構 CROSS_COMPILE交叉編譯工具鏈

book@100ask:~$ export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
book@100ask:~$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-  [命令]

編譯u-boot

  • 準備工作

安裝TFTP NFS服務請參考 Ubuntu環境配置,設置如下參數讓系統通過網絡掛載方式啟動,方便調試。
其中TFTP目錄假設為 /home/book/tftpboot NFS目錄假設為 /home/book/nfs_rootfs
注意:以下操作會破壞SD卡的數據,請先進行備份。

  • 編譯Roc-rk3399-pc開發板uboot命令
book@100ask:~$ cd ~/100ask_roc-rk3399-pc/uboot2019.01
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make distclean
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make 100ask_roc-rk3399-pc_defconfig
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh trust
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh uboot
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh loader
  • 單獨燒寫uboot

使用dd命令燒寫img鏡像文件到TF卡中。

book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$  sudo dd if=idbloader.img of=/dev/sdb seek=64
book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$  sudo dd if=uboot.img of=/dev/sdb seek=16384
book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$  sudo dd if=trust.img of=/dev/sdb seek=24576
  • nfs啟動系統

注意: serverip為你的ubuntu IP 地址 ipaddr 為你給開發板設置的IP位址,設置IP完成後可以通過 ping 命令來確認是否連通。 其中rootpath 指定的是ubuntu下解壓的Roc-rk3399-pc文件系統所在目錄。

=> setenv serverip 192.168.1.132
=> setenv ipaddr 192.168.1.112
=> tftpboot 0x01f00000 rk3399-roc-pc.dtb; tftpboot 0x02080000 Image; setenv bootargs root=/dev/nfs nfsroot=192.168.1.132:/home/book/rootfs,vers=3  rw ip=192.168.1.120; booti 0x02080000 - 0x01f00000

執行 run netboot 命令後,uboot會自動根據設置的參數,下載複製到 /home/book/tftpboot目錄下的設備樹文件和內核文件以及掛載nfs文件系統。

編譯linux kernel

  • 準備工作

安裝TFTP NFS服務請參考 Ubuntu環境配置,設置如下參數讓系統通過網絡掛載方式啟動,方便調試。
其中TFTP目錄假設為 /home/book/tftpboot NFS目錄假設為 /home/book/nfs_rootfs

  • 編譯roc-rk3399-pc開發板內核
book@100ask:~/100ask_roc-rk3399-pc$ cd linux-4.4
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make mrproper
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make 100ask_roc-rk3399-pc_defconfig
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make Image
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make dtbs
  • 編譯內核模塊
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules
  • 安裝內核模塊到nfs根文件系統
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ sudo make ARCH=arm64 INSTALL_MOD_PATH=/media/rootfs  modules_install
  • uboot通過tftp方式下載內核

將編譯成功的Image文件和設備樹rk3399-roc-pc.dtb文件,拷貝到ubuntu的/home/book/tftpboot 目錄下,
用以uboot通過tftp 方式進行下載並啟動系統。

編譯根文件系統

配置文件 含義
100ask_roc-rk3399-pc_defconfig 默認文件系統版本
book@100ask:~/100ask_roc-rk3399-pc$ cd buildroot2018.02
book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make clean
book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make 100ask_roc-rk3399-pc_defconfig
book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make menuconfig
book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make –jN		 /* N表示CPU的线程数,比如可以写4、8等以加快编译速度 */

編譯後生成文件介紹

 
buildroot2018.02	
	├── output
		├── images	
			├── idbloader.img				<--u-boot镜像
			├── nfs_rootfs					<--打包并压缩的根文件系统,适用于NFSROOT启动	
			   └── rootfs.tar.gz	
			├── rk3288-firefly.dtb  			<--设备树文件
			├── rootfs.ext2
			├── rootfs.ext4 -> rootfs.ext2		<--ext2格式根文件系统
			├── rootfs.tar					<--打包后的根文件系统
			├── sdcard.img					<--完整的SD卡系统镜像
			├── trust.img					<--u-boot镜像
			├── u-boot.bin
			├── u-boot-dtb.img
			├── uboot.img					<--u-boot镜像
			└── zImage					<--内核镜像

更新日誌

2019.8.1更新說明

  • 首次發布
2019.8.7更新說明
  • 首次發布

獲取幫助與建議

  • 如果您有技術問題或錯誤報告,請訪問bbs.100ask.org論壇查找搜索或發帖提問,相關工作人員看到後會及時回復您。
  • 對於網上購買客戶,如有問題請聯繫購買產品時的商家。
  • 如您發現Wiki網站有任何表達錯誤或者建議請發送郵件到 support@100ask.net ,我們會及時更改處理。


您未被允許發表評論。