1. 程式人生 > >Hi3519-pinctrl驅動開發①開發環境搭建

Hi3519-pinctrl驅動開發①開發環境搭建

Hi3519執行的系統基於Linux 3.18.y核心,訪問 www.kernel.org 下載Linux 3.18.20核心原始碼linux-3.2.20.tar.bz2,在虛擬機器裡面解壓原始碼。編譯核心使用網上的交叉編譯器可能與使用的核心不配套,造成開發過程中出現一些不可預料的問題,因此海思提供了兩款編譯工具鏈 arm-hisiv500-linux 和 arm-hisiv600-linux,其中 arm-hisiv500-linux 為基於 uclibc 的工具鏈,arm-hisiv600-linux 為基於 glibc 的工具鏈。我使用的是arm-hisiv600-linux工具鏈,解壓arm-hisiv600-linux.tar.gz,可以不用安裝,防止與其他版本的交叉編譯器衝突,使用的時候指定編譯器的全路徑就行了。

下面就進行核心配置,需要拷貝配置檔案到核心原始碼根目錄:

cp arch/arm/configs/hi3519v101_big_little_nand_defconfig  .config

這個配置檔案是海思提供的,下面就進行menuconfig配置核心:

make ARCH=arm CROSS_COMPILE=/home/tq/arm-hisiv600-linux/bin/arm-hisiv600-linux-gnueabi- menuconfig

選擇需要的模組後儲存退出。下面就能進行核心編譯了:

make ARCH=arm CROSS_COMPILE=/home/tq/arm-hisiv600-linux/bin/arm-hisiv600-linux-gnueabi- uImage

編譯完成之後就得到了壓縮核心映象檔案uImage。

到這裡基本的驅動開發環境完成了,搭建過程比較簡單,下面就要為pinctrl開發做準備,先要使能核心的pinctrl驅動。開啟核心原始碼下driver/pinctrl/Kconfig檔案,檔案中沒有Hi3519的pinctrl驅動配置選項,自行新增:

config PINCTRL_HI3519
bool "HI3519 pin controller driver"
depends on ARCH_HI3519V101
help
  By tangquan

儲存之後進行menuconfig發現在Device Drivers選單中沒有Pin controllers選項,原因在Kconfig檔案的前幾行中:

config PINCTRL
bool

if PINCTRL

menu "Pin controllers"
depends on PINCTRL

......

很清楚說明了如果PINCTRL沒有定義的話則pinctrl則沒有使能,所以就需要定義PINCTRL,開啟arch/arm/mach-hisi/Kconfig檔案,找到ARCH_HI3519V101選項,新增select選項:

config ARCH_HI3519V101
bool "Hisilicon Hi3519V101 Cortex-a7.Cortex-a17 family" if ARCH_MULTI_V7
select HAVE_ARM_ARCH_TIMER
select ARM_CCI
select ARCH_HAS_RESET_CONTROLLER
select RESET_CONTROLLER
select PM_OPP
select PMC if SMP
select PINCTRL

help
 Support for Hisilicon Hi3519V101 Soc family

添加了之後就相當於定義了CONFIG_PINCTRL=y,CONFIG_PINCTRL就算是PINCTRL的全稱,這時候進行menuconfig時就會有Pin controllers選項,選擇HI3519 pin controller driver,這樣就定義了CONFIG_PINCTRL_HI3519=y。

配置選項做好之後在pinctrl資料夾中新增兩個檔案:pinctrl-hi3519.c、pinctrl-hi3519.h作為驅動原始檔和標頭檔案。然後在Makefile中新增編譯項:

obj-$(CONFIG_PINCTRL_HI3519) += pinctrl-hi3519.o

由於CONFIG_PINCTRL_HI3519已經定義了且為y,那麼這句話解析過來就是:

obj-y+= pinctrl-hi3519.o

obj-y表示的是編譯到核心,obj-m是編譯成模組,那麼這句話表示將pinctrl-hi3519.o編譯進核心。現在重新進行核心編譯之後就會發現pinctrl資料夾中多了一個pinctrl-hi3519.o檔案,這就表示pinctrl-hi3519.c被編譯了,接下來就能正式進行驅動的編寫了。

相關推薦

Hi3519-pinctrl驅動開發開發環境搭建

Hi3519執行的系統基於Linux 3.18.y核心,訪問 www.kernel.org 下載Linux 3.18.20核心原始碼linux-3.2.20.tar.bz2,在虛擬機器裡面解壓原始碼。編譯核心使用網上的交叉編譯器可能與使用的核心不配套,造成開發過程中出現一些

使用cordova+Ionic+AngularJs進行Hybird App開發環境搭建手冊

font eqv hsi all bvs dfs epp pda yml 一。所需工具 1,JDK:生成 2。安卓SDK開發環境 3,NodeJs:主要使用的還是npm 4,Python開發環境 5。VS 2012(2008,2015也

Android開發基本環境搭建

image studio 基本 配置環境 http 學習 配置 ide 進步 安卓開發學習筆記,共同學習,共同進步。 Android軟件開發首先要安裝JDK,本文以windows10 64操作系統為例演示安裝步驟。 1.下載JDK    2.安裝    3.配置環境變量  

Cocos2d-x Lua遊戲開發Mac環境搭建以及一點點感悟

感覺 慢慢 怎樣 tid lease 人生 第三方 什麽 增強 接觸Cocos2d-x 最近由於公司項目的需要,自己開始接觸Cocos,開始做一些簡單的輕量級的遊戲,以前沒有接觸過這一塊的東西,也是借助這個機會學習一下遊戲的開發,由於以前自己

Centos7下Java開發基本環境搭建

lena vbs amr vcd oracle官網 maven下載 安裝和配置 important tex 一、Centos7安裝JDK 首先查看自己的機器上是否已經自帶openjdk,命令如下: rpm -qa | grep jdk 如果存在,則按照如下命令

Skyline開發1-環境搭建

一個 地形 查看 ole line 基本 開發 三維 下載安裝 三維一直很火熱,它比二維的明顯優勢是立體效果,更接近真實的物理世界;凡是與三統有關的就叫XX模型,其實就是一種數據罷了;簡單的瀏覽、展示 操作就看起來很炫,尤其是對外行的人來說。無論如何,領導、用戶喜歡決定了一

Android APP和 Weex混合開發環境搭建到APP工程執行

一、簡言 目前Android可行的混合程式設計方案有Weex和ReactNative兩種方案,兩者基本類同,只是使用框架技術有點不一樣。從網上的資料可以查知到Weex相比ReactNative更容易上手,另外ReactNative在處理IOS端的長列表時容易出現記憶體洩漏。關於Weex和

django 1.開發介面環境搭建

首先需要的環境: pycharm Python 3.6.0 django 2.1.3        安裝命令: pip3 install django   檢視版本號和安裝的路徑: pip show django  

H5開發Android環境搭建

首先說一下需要的幾樣東西: JDK Java環境,可能不需要,但是本人是Java開發,而且此專案後端為Java的SSM框架,所以這裡安裝JDK 到官網下載jdk,建議8以後的版本吧,點選下載,雙擊下載下來的exe檔案執行,之後一路點選,注意調整一下安裝目錄:儘

微信小程式開發——1.環境搭建

一:安裝java環境 1、將下載好的jdk包通過ssh上傳到centos作業系統  2、進行解壓 tar -vxzf jdk-8u45-linux-x64.tar.g 3、編輯系統環境變數 vim /etc/profile 如果沒有許可權寫入: linux操作提示:“Ca

SDL農場遊戲開發 1.環境搭建

由於我個人受到傳統農場類遊戲的薰陶,因此萌生出了開發一個類似於QQ農場的遊戲。 本次遊戲打著SDL的幌子(這麼說自己真的好麼),其實使用的是SDL_Engine,它是我閒暇時模仿cocos2dx而寫的一個遊戲框架。個人認為了解下SDL_Engine框架是有點用的(去掉了cocos2dx中精華的部

ubuntu-16.04 下Openwrt開發編譯環境搭建

Linux 開發編譯環境搭建 1.操作步驟 安裝linux系統。 安裝ssh 安裝samba 安裝編譯相關的工具鏈,驗證編譯操作 3.安裝ssh 3.1 安裝命令為: sudo apt-get update sudo apt-get ins

Linux平臺swift語言開發學習環境搭建

摘要  介紹在Ubuntu平臺搭建Swift開發環境; 介紹Swift指令碼解析器swift的使用; 介紹Swift編譯器swiftc的使用; 1.序言 這兩天一直忙,沒來得及記錄東西,週三12月4日凌晨1點多看到蘋果正式開源了Swift,國外各大媒體資訊動作超級快

Linux伺服器開發/測試環境搭建流程

1、MariaDB yum 安裝/初始化/授遠端許可權 yum安裝 進入目錄/etc/yum.repos.d/,建立MariaDB.repo,將以上內容Copy進去 執行以下命令 sudo yum install MariaDB-server MariaDB-clie

Kettle 外掛開發除錯環境搭建(上)

1. 下載原始碼  https://github.com/pentaho/pentaho-kettle/2. 下載kettle發行版本 http://community.pentaho.com/projects/data-integration/   (主要是為了獲取依賴的

區塊鏈開發環境搭建

區塊鏈開發(一)搭建基於以太坊的私有鏈環境     通過本文所述方法和專案中的指令碼,我們可以快速的搭建好自己的私有鏈進行區塊鏈開發測試,本文基於以太坊技術進行搭建,分兩個部分,一個是Ubunt

Metabase二次開發編譯環境搭建(之三---編譯原始碼)

       本文講解的是使用自己搭建的編譯環境編譯從官網上下載的Metabase原始碼。一、將下載的原始碼上傳到linux系統的opt目錄下,進入opt目錄,進行解壓。cd /opt unzip metabase-mester.zip二、編譯程式碼        1、編譯前

移動開發cordova環境搭建

Cordova環境搭建 java jdk和android sdk的安裝是必不可少的,並且最好保證電腦上只有一個jdk版本,至少在搭建完cordova之前要只有一個jdk版本,並且配置jdk的環境變數。 1.  安裝node.js 下載安裝node.js,https:/

windows下的基於Eclipse的STM32開發除錯環境搭建

這段時間在玩STM32,但官方庫的程式碼也確實是有點多,記憶力有點不太好了。突然就想起了以前用Eclipse的那個程式碼提示功能,谷歌了一段時間, (一)安裝編譯環境 1.下載和安裝JAVA虛擬機器 因為Eclipse是基於Java的,所以Linux下也可

java開發各種環境搭建及外掛安裝

一:首先檢查JDK安裝(eclipse整合maven) 在安裝Maven之前,首先要確認你已經正確安裝了JDK(因為它是基於JDKd的)。Maven可以執行在JDK 1.4及以上的版本上執行如下的命令來檢查你的Java安裝: C:\Users\Juven Xu>ech