RK3399的環境搭建

2021-10-03 12:58:06 字數 1633 閱讀 7577

之前的工作內容大多為除錯各部分的硬體和系統的bug,真正編寫**的機會很少,或者說根本沒有。

首先,要達到乙個基本的目的,在ubuntu18.04的pc機上,編寫出的程式可以在板子上跑的通。

很簡單,只要安裝交叉編譯工具鏈即可。

sudo apt-get install gcc-5-aarch64-linux-gnu

這樣使用aarch64-linux-gnu-gcc hello.c,命令編譯得到的a.out即可在開發板上執行。

2.由於交叉編譯,若一直使用filezilla來進行檔案傳輸,有些多次一舉,因此計畫採用掛載pc機共享目錄的方式進行

首先得在宿主機上安裝nfs伺服器,並設定共享目錄(以ubuntu 12.04為例):

1_1、sudo apt-get install nfs-kernel-server nfs-common   #安裝nfs伺服器#

1_2、sudo vim /etc/exports   #開啟exports,更改配置檔案#

1_3、在最後加入/home/steve/share *(rw,sync,no_root_squash)   #設定共享目錄#

1_4、sudo /etc/init.d/nfs-kernel-server restart   #重啟nfs伺服器#

做完這四步,基本就完成了宿主機上nfs伺服器的配置,你要是不放心的話,也可以在本地掛載,做個測試:

1_5、sudo mount -t nfs -o nolock 192.168.0.***:/home/steve/share /mnt          

# 其中,棕色為伺服器ip位址,紅色為共享的目錄, 藍色為本地的掛載目錄 #

開發板也需要安裝nfs服務:

sudo apt-get install nfs-common 

至此,開發板已經可以訪問pc機的目錄了。

3、最根本的目的是,在pc機上編譯驅動,可以直接在開發板上執行,而不必編譯整個核心。

由於rk3399的核心編譯時,使用的是乙個rockchip提供的sdk,經過測試,如果將其中的kernel單獨拷貝出來,那麼首先核心編譯就不通過,所以後續的交叉編譯就無法執行,因此,直接將makefile中的核心路徑,指定為sdk中的核心路徑,編譯模組成功,insmod成功,可以在/proc/devices路徑下看到自己註冊的字元裝置。

makefile採用了韋東山的檔案:

kern_dir = /home/cwp/work/rockchip/linux/kernel

all:

make -c $(kern_dir) m=`pwd` modules 

clean:

make -c $(kern_dir) m=`pwd` modules clean

rm -rf modules.order

obj-m    += first_drv.o

補充:結果編譯出的ko模組時x86-64架構的,很明顯,需要修改核心中的架構和編譯器配置,發現如下兩行並做出修改:

#arch           ?= $(subarch)

#cross_compile  ?= $(config_cross_compile:"%"=%)

arch            ?= arm64

cross_compile   ?= aarch64-linux-gnu-

RK3399晶元規格書,RK3399參考設計方案

rk3399晶元規格書,rk3399參考設計方案 較新的rk3368雖然專門針對電視盒子做了優化,但是其硬體效能相比上一代的rk3288還要孱弱,老當益壯的rk3288退休不得,與rk3368勉力維持著瑞芯微2015年的江山。進入2016年,瑞芯微rockchip再次調轉槍頭,緊跟行業趨勢,順勢而為...

RK3399 產品選擇

rk3399 是一款的arm64處理器,其內部整合gpu,對多 人臉識別等,支援都非常不錯。在國內,選擇以rk3399為核心,開發產品的知名公司,有很多。就我個人而言,主要使用過兩家公司的開發板。1 firefly rk3399 開發板 2 nanopc t4開發板 兩家公司可能側重點不同,產品特性...

rk3399自用說明記錄

目前試過無法開機的 打包解包相關命令 rk3399原廠系統root,目前理解就是以下解鎖指令可以真正解鎖system分割槽 嘗試修改init.rc和init.c使用android關機到kernel層 小白使用寶典,大神僅供參考。本記錄只講在windows下的操作。本片講述android系統的少些嘗試...