天睿視迅hi3559ac v100開發(fā)環(huán)境用戶指南_第1頁
天睿視迅hi3559ac v100開發(fā)環(huán)境用戶指南_第2頁
天睿視迅hi3559ac v100開發(fā)環(huán)境用戶指南_第3頁
天睿視迅hi3559ac v100開發(fā)環(huán)境用戶指南_第4頁
天睿視迅hi3559ac v100開發(fā)環(huán)境用戶指南_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Hi3559A/CV100開發(fā)環(huán)境用戶指南Hi3559A/CV100開發(fā)環(huán)境用戶指南文檔版本00B05發(fā)布日期2018-05-15所有?形式 2017-2018。保留一切權(quán)利。市海思半導(dǎo)體,任何和個(gè)人不得擅自摘抄、本文檔內(nèi)容的部分或全部,并不得以任何商標(biāo)、、海思和其他海思商標(biāo)均為市海思半導(dǎo)體的商標(biāo)。本文檔提及的其他所有商標(biāo)或商標(biāo),由各自的所有人擁有。注意您的、服務(wù)或特性等應(yīng)受海思公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn)品、服務(wù)或特性可能不在您的 或使用范圍之內(nèi)。除非合同另有約定,海思公司對本文檔內(nèi)容不做任何明示或默示的或保證。由于版本升級或其他原因,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),本文檔中的所有陳述、信息和建議不構(gòu)成任何明示或暗示的擔(dān)保。市海思半導(dǎo)體市龍崗區(qū)坂田地址:基地電氣生產(chǎn)中心http:/:客戶服務(wù):客戶服務(wù)傳真:客戶服務(wù)郵箱:sup所有?形式 2017-2018。保留一切權(quán)利。市海思半導(dǎo)體,任何和個(gè)人不得擅自摘抄、本文檔內(nèi)容的部分或全部,并不得以任何商標(biāo)、、海思和其他海思商標(biāo)均為市海思半導(dǎo)體的商標(biāo)。本文檔提及的其他所有商標(biāo)或商標(biāo),由各自的所有人擁有。注意您的、服務(wù)或特性等應(yīng)受海思公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn)品、服務(wù)或特性可能不在您的 或使用范圍之內(nèi)。除非合同另有約定,海思公司對本文檔內(nèi)容不做任何明示或默示的或保證。由于版本升級或其他原因,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),本文檔中的所有陳述、信息和建議不構(gòu)成任何明示或暗示的擔(dān)保。市海思半導(dǎo)體市龍崗區(qū)坂田地址:基地電氣生產(chǎn)中心http:/:客戶服務(wù):客戶服務(wù)傳真:客戶服務(wù)郵箱:supHi3559A/CV100開發(fā)環(huán)境用戶指南前 言前言概述Linux和LiteOS開發(fā)環(huán)境。Linux開發(fā)環(huán)境的搭建、U-boot、Linux內(nèi)核、根文件系統(tǒng)以及內(nèi)核和根文件系統(tǒng)的燒寫,以及創(chuàng)建網(wǎng)絡(luò)開發(fā)環(huán)境和如何啟動(dòng)Linux開發(fā)應(yīng)用程序。LiteOS配置以及編譯。Linux和LiteOS開發(fā)環(huán)境指導(dǎo)。Hi3559AV100內(nèi)容一致。版本與本文檔相對應(yīng)的版本如下。讀者對象本文檔(本指南)主要適用于以下工程師:技術(shù)支持工程師軟件開發(fā)工程師Hi3559A/CV100開發(fā)環(huán)境用戶指南前 言前言概述Linux和LiteOS開發(fā)環(huán)境。Linux開發(fā)環(huán)境的搭建、U-boot、Linux內(nèi)核、根文件系統(tǒng)以及內(nèi)核和根文件系統(tǒng)的燒寫,以及創(chuàng)建網(wǎng)絡(luò)開發(fā)環(huán)境和如何啟動(dòng)Linux開發(fā)應(yīng)用程序。LiteOS配置以及編譯。Linux和LiteOS開發(fā)環(huán)境指導(dǎo)。Hi3559AV100內(nèi)容一致。版本與本文檔相對應(yīng)的版本如下。讀者對象本文檔(本指南)主要適用于以下工程師:技術(shù)支持工程師軟件開發(fā)工程師修訂修訂 累積了每次文檔更新的說明。最新版本的文檔包含以前所有文檔版本的更新內(nèi)容。信息i所有?市海思半導(dǎo)體名稱版本Hi3559AV100Hi3559CV100Hi3559A/CV100開發(fā)環(huán)境用戶指南前言信息ii所有?市海思半導(dǎo)體修訂日期版本修訂說明2018-05-1500B055次臨時(shí)版本發(fā)布.6小節(jié)涉及修改2018-02-1000B044Hi3559A/CV100開發(fā)環(huán)境用戶指南前言信息ii所有?市海思半導(dǎo)體修訂日期版本修訂說明2018-05-1500B055次臨時(shí)版本發(fā)布.6小節(jié)涉及修改2018-02-1000B044次臨時(shí)版本發(fā)布8.5小節(jié)涉及修改9.19-12018-01-2300B033次臨時(shí)版本發(fā)布。1.3.2、3.3、4.3.5、8.4和10.1小節(jié)涉及修改8.3、8.58.6小節(jié)2018-01-1000B022次臨時(shí)版本發(fā)布。全文均涉及修改,10章2017-11-1500B011次臨時(shí)版本發(fā)布。Hi3559A/CV100開發(fā)環(huán)境用戶指南目 錄目錄前 言 i1開發(fā)環(huán)境 11.1開發(fā)環(huán)境 11.2Hi3559AV100開發(fā)環(huán)境 1搭建開發(fā)環(huán)境 3安裝Linux服務(wù)器Hi3559A/CV100開發(fā)環(huán)境用戶指南目 錄目錄前 言 i1開發(fā)環(huán)境 11.1開發(fā)環(huán)境 11.2Hi3559AV100開發(fā)環(huán)境 1搭建開發(fā)環(huán)境 3安裝Linux服務(wù)器 3安裝交叉編譯工具 3安裝Hi3559AV100SDK 3U-boot 5Linux內(nèi)核 6內(nèi)核源代碼 6配置內(nèi)核 6編譯內(nèi)核并生成ATF+kernel鏡像 74根文件系統(tǒng) 8根文件系統(tǒng)簡介 8利用busybox制作根文件系統(tǒng) 9獲取busybox源代碼 9配置busybox 94.2.3編譯和安usybox 104.2.4制作根文件系統(tǒng) 10文件系統(tǒng)簡介 11cramfs 11jffs2 12yaffs2 13initrd 13squashfs 144.3.6ext4 154.35多核加載啟動(dòng) 16LiteOS 186信息iii所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南目 錄6.16.2LiteOS配置 18LiteOS編譯 18應(yīng)用程序開發(fā)簡介 19編寫代碼 19Hi3559A/CV100開發(fā)環(huán)境用戶指南目 錄6.16.2LiteOS配置 18LiteOS編譯 18應(yīng)用程序開發(fā)簡介 19編寫代碼 19運(yùn)行應(yīng)用程序 19IPCM模塊 20IPCM簡介 20IPCM源代碼 20節(jié)點(diǎn)分配 21IPCM使用說明 21virt-tty虛擬串口終端 23Sharefs功能 249Hi3559AV100內(nèi)存分配 269.1內(nèi)存分配說明 26中斷分配 28中斷配置與分配 28A縮略語 33信息iv所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南插圖目錄插圖目錄1-1開發(fā)圖例 1圖1-2Hi3559AV100開發(fā)環(huán)境 2圖4-1根文件系統(tǒng)頂層目錄結(jié)構(gòu)圖 8Hi3559A/CV100開發(fā)環(huán)境用戶指南插圖目錄插圖目錄1-1開發(fā)圖例 1圖1-2Hi3559AV100開發(fā)環(huán)境 2圖4-1根文件系統(tǒng)頂層目錄結(jié)構(gòu)圖 8圖5-1系統(tǒng)啟動(dòng)流程 17圖8-1Hi3559AV100virt-tty拓?fù)?249-1內(nèi)存分配配置 26信息v所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南表格目錄表格目錄表1-1Hi3559AV100開發(fā)環(huán)境的各部分軟件描述 24-1系統(tǒng)中可忽略的目錄說明 9表4-2JFFS2參數(shù)表Hi3559A/CV100開發(fā)環(huán)境用戶指南表格目錄表格目錄表1-1Hi3559AV100開發(fā)環(huán)境的各部分軟件描述 24-1系統(tǒng)中可忽略的目錄說明 9表4-2JFFS2參數(shù)表 13表8-1IPCM節(jié)點(diǎn)分配 21表10-1中斷分配表 28信息vi所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境1開發(fā)環(huán)境開發(fā)環(huán)境1.1由于單板的有限,不能在單板上運(yùn)行開發(fā)和調(diào)試工具,通常需要交叉編譯調(diào)試的方式進(jìn)行開發(fā)和調(diào)試,即“宿主機(jī)+目標(biāo)機(jī)(評估板機(jī)一般采用串口連接,也可同時(shí)通過網(wǎng)口或者JTAG連接,如圖1-1所示。宿主機(jī)和目標(biāo)機(jī)的處理器一般不相同。宿主機(jī)需要建立適合于目標(biāo)機(jī)的交叉編譯環(huán)境。程序在宿主機(jī)上經(jīng)過“編譯-連接-”得到可執(zhí)行文件。通過一定的方法將可執(zhí)行文件燒寫到目標(biāo)機(jī)中,然后在目標(biāo)機(jī)上運(yùn)行。目標(biāo)機(jī)上的Bootloader啟動(dòng)后,目標(biāo)機(jī)中的操作信息通過串口或者網(wǎng)口輸出到宿主機(jī)上顯示。在宿主機(jī)上的控制臺中輸入命令,可以控制目標(biāo)機(jī)。圖1-1宿主機(jī)目標(biāo)機(jī)JTAGRS232Ethernet1.2Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境1開發(fā)環(huán)境開發(fā)環(huán)境1.1由于單板的有限,不能在單板上運(yùn)行開發(fā)和調(diào)試工具,通常需要交叉編譯調(diào)試的方式進(jìn)行開發(fā)和調(diào)試,即“宿主機(jī)+目標(biāo)機(jī)(評估板機(jī)一般采用串口連接,也可同時(shí)通過網(wǎng)口或者JTAG連接,如圖1-1所示。宿主機(jī)和目標(biāo)機(jī)的處理器一般不相同。宿主機(jī)需要建立適合于目標(biāo)機(jī)的交叉編譯環(huán)境。程序在宿主機(jī)上經(jīng)過“編譯-連接-”得到可執(zhí)行文件。通過一定的方法將可執(zhí)行文件燒寫到目標(biāo)機(jī)中,然后在目標(biāo)機(jī)上運(yùn)行。目標(biāo)機(jī)上的Bootloader啟動(dòng)后,目標(biāo)機(jī)中的操作信息通過串口或者網(wǎng)口輸出到宿主機(jī)上顯示。在宿主機(jī)上的控制臺中輸入命令,可以控制目標(biāo)機(jī)。圖1-1宿主機(jī)目標(biāo)機(jī)JTAGRS232Ethernet1.2Hi3559AV100開發(fā)環(huán)境Hi3559AV100開發(fā)環(huán)境通常包括Linux服務(wù)器、Windows工作臺和59B(目標(biāo)板圖1-2所示。信息1所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境Linux服務(wù)器EthernetWindows工作臺目標(biāo)板RS232 JTAGLinux服務(wù)器上建立交叉編譯環(huán)境,Windows工作臺通過串口和網(wǎng)口與Windows工作臺中進(jìn)行程序開發(fā)或者登Linux服務(wù)器進(jìn)行程序開發(fā)。各部分具體軟件介紹如1-1所示。開發(fā)環(huán)境中使用了Windows工作臺,實(shí)際上很多工作也可以在Linux服務(wù)器上完成,如使用代替超級終端等,用戶可自行選擇。表1-1Hi3559AV100開發(fā)環(huán)境的各部分軟件描述信息2所有Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境Linux服務(wù)器EthernetWindows工作臺目標(biāo)板RS232 JTAGLinux服務(wù)器上建立交叉編譯環(huán)境,Windows工作臺通過串口和網(wǎng)口與Windows工作臺中進(jìn)行程序開發(fā)或者登Linux服務(wù)器進(jìn)行程序開發(fā)。各部分具體軟件介紹如1-1所示。開發(fā)環(huán)境中使用了Windows工作臺,實(shí)際上很多工作也可以在Linux服務(wù)器上完成,如使用代替超級終端等,用戶可自行選擇。表1-1Hi3559AV100開發(fā)環(huán)境的各部分軟件描述信息2所有?市海思半導(dǎo)體軟件描述Windows工作臺操作系統(tǒng)WindowsXP/Windows7/Windows10。應(yīng)用軟件putty、超級終端、tftp服務(wù)器、DS-5等軟件。Linux服務(wù)器操作系統(tǒng)Ubuntu、Redhat、Debian等。2.6.18及以上版本。安裝時(shí)建議選擇完全安裝。應(yīng)用軟件NFS、telnetd、samba、vim、arm交叉編譯環(huán)境(Gcc4.9)等。其他應(yīng)用軟件根據(jù)具體開發(fā)需要而定,通常系統(tǒng)都已默認(rèn)安裝,只要適當(dāng)配置即可。Hi3559AV100引導(dǎo)程序U-boot。操作系統(tǒng)HisiliconLinux、 LiteOS。Linux內(nèi)核基于Linux標(biāo)準(zhǔn)內(nèi)核4.9.y版本移植開發(fā),根文件系統(tǒng)基于busybox1.26.2版本制作而成。應(yīng)用軟件telnetd、gdbserverLinux常用命令。程序開發(fā)庫glibc-2.24版本。Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境搭建開發(fā)環(huán)境Linux服務(wù)器Linux版,便于尋找各類技術(shù)。例如:RedHat較新的Hat3.4.4-2。RedHat較老的RedHatFedoraCoreRedhatEnterpriseLinux、RedRedHat9.0等。推薦使用較新版本,以方便獲取各類Ubuntu10。Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境搭建開發(fā)環(huán)境Linux服務(wù)器Linux版,便于尋找各類技術(shù)。例如:RedHat較新的Hat3.4.4-2。RedHat較老的RedHatFedoraCoreRedhatEnterpriseLinux、RedRedHat9.0等。推薦使用較新版本,以方便獲取各類Ubuntu10。FedoraCore系列、SUCE10、Debian的各類新,各類軟件包Debian的好處是各類安裝包都可以隨時(shí)也很豐富。更1.3.2安裝交叉編譯工具使用從網(wǎng)絡(luò)等得到的交叉編譯工具可能存在與使用的內(nèi)核并不配套,造成開發(fā)過程中出現(xiàn)一些不可預(yù)料的問題。aarch64-himix100-linux、gcc-arm-none-eabi-4_9-2015q3。aarch64-himix100-linux64bitglibc的工具鏈,gcc-arm-none-eabi-4_9-2015q3為LiteOSM7工具鏈。安裝步驟如下(aarch64-himix100-linux舉例):1.解壓工具鏈。執(zhí)行如下命令進(jìn)行解壓:tar-xvf aarch64-himix100-linux.tgz2.安裝工具鏈。sudoaarch64-himix100-linux.install即可完成此工具鏈的安裝。其它工具鏈安裝方法與上述描述類似。結(jié)束1.3.3Hi3559AV100SDK請參考《Hi3559AV100SDK安裝及升級使用說明》信息3所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境Hi3559A/CV100開發(fā)環(huán)境用戶指南1開發(fā)環(huán)境、內(nèi)核和文件系統(tǒng),只支持64位操作系統(tǒng)。信息4所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南2U-boot2U-boot關(guān)于U-boot的介紹與使用請參見《Hi3559A/CHi3559A/CV100開發(fā)環(huán)境用戶指南2U-boot2U-boot關(guān)于U-boot的介紹與使用請參見《Hi3559A/CV100U-boot移植應(yīng)用信息5所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南3Linux內(nèi)核3Linux內(nèi)核3.1內(nèi)核源代碼成功安裝Hi3559AV100SDK后,內(nèi)核源代碼已存放于SDK目錄下的osdrv/目錄中,用戶可直接進(jìn)入目錄進(jìn)行相關(guān)操作。3.2配置內(nèi)核核和Hi3559A/CV100開發(fā)環(huán)境用戶指南3Linux內(nèi)核3Linux內(nèi)核3.1內(nèi)核源代碼成功安裝Hi3559AV100SDK后,內(nèi)核源代碼已存放于SDK目錄下的osdrv/目錄中,用戶可直接進(jìn)入目錄進(jìn)行相關(guān)操作。3.2配置內(nèi)核核和Hi3559AV100平臺沒有足夠了解, 修改默認(rèn)配置。但可增加需要的模塊。配置內(nèi)核的操作步驟如下:1.手動(dòng)拷貝.config文件:cparch/arm64/configs/hi3559av100_arm64__defconfig.config(注:當(dāng)啟動(dòng)介質(zhì)是eMMC、UFS、SPI-NorFlash或SPI-NANDFlash時(shí),使用hi3559av100_arm64_big_little_defconfig;當(dāng)啟動(dòng)介質(zhì)是NANDFlash時(shí),使用hi3559av100_arm64_big_little_nand_defconfig)2.用戶通過“makemakeARCH=arm64PILE=aarch64-himix100-linux-config3.4.選擇需要的模塊。選擇完畢后,保存并。結(jié)束信息6所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南3Linux內(nèi)核make后添加兩個(gè)參數(shù):ARCH=arm64PILE=aarch64-himix100-linux-,其中PILE表示工具鏈。3.3ATF+kernel鏡像1.配置保存后,可直接輸入makeARCH=arm64PILE=aarch64-himix100-linux-uImage-j20命令編譯內(nèi)Hi3559A/CV100開發(fā)環(huán)境用戶指南3Linux內(nèi)核make后添加兩個(gè)參數(shù):ARCH=arm64PILE=aarch64-himix100-linux-,其中PILE表示工具鏈。3.3ATF+kernel鏡像1.配置保存后,可直接輸入makeARCH=arm64PILE=aarch64-himix100-linux-uImage-j20命令編譯內(nèi)核生成鏡像uImage,此時(shí)需要等待幾分鐘。如果編譯過程中出現(xiàn)錯(cuò)誤,按順序執(zhí)行以下命令:PILE=aarch64-himix100-linux-cleanPILE=aarch64-himix100-linux-configPILE=aarch64-himix100-linux-uImage2.進(jìn)入osdrv/opensource/arm-trusted-firmware/arm-trusted-firmware目錄,執(zhí)行mk.shcd../../arm-trusted-firmware/arm-trusted-firmware./mk.shlinuxmk.shlinux目錄。在osdrv/opensource/arm-trusted-firmware/arm-trusted-firmware/build/hi3559av100/debug目錄下,生成的fip.bin文件就是ATF+kernel的鏡像uImage。結(jié)束信息7所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)4根文件系統(tǒng)4.1根文件系統(tǒng)簡介/Linux內(nèi)核之后,有的系統(tǒng)命令、系統(tǒng)配置以及其他文件系統(tǒng)的掛載點(diǎn)都位于這個(gè)根文件系統(tǒng)中。Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)4根文件系統(tǒng)4.1根文件系統(tǒng)簡介/Linux內(nèi)核之后,有的系統(tǒng)命令、系統(tǒng)配置以及其他文件系統(tǒng)的掛載點(diǎn)都位于這個(gè)根文件系統(tǒng)中。根文件系統(tǒng)通常存放于內(nèi)存和Flash中,或是基于網(wǎng)絡(luò)的文件系統(tǒng)。根文件系統(tǒng)中存放了4-1列出了根文件系統(tǒng)的頂層目錄。根目錄基本命令的可執(zhí)行文件設(shè)備文件用戶目錄基本庫,例如C庫和內(nèi)核模塊臨時(shí)文件系統(tǒng)的掛載點(diǎn)添加的軟件包內(nèi)核以及進(jìn)程信息的虛擬文件系統(tǒng)root用戶目錄共享文件目錄臨時(shí)文件該目錄的二級目錄包含許多對用戶很有用的應(yīng)用程序和文檔存放系統(tǒng)日志或一些服務(wù)程序的臨時(shí)文件信息8所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)Linux系統(tǒng)的根文件系統(tǒng)中會(huì)包括根文件系統(tǒng)頂層目錄結(jié)構(gòu)圖中所有的目錄,不過在系統(tǒng)中,需要精簡根文件系統(tǒng)。部分可以被忽略的目錄如表4-1所示。表4-1注:空目錄并增大文件系統(tǒng)的體積,如果沒有特殊原因,建議保留這些目錄。4.2busybox制作根文件系統(tǒng)利用busybox制作根文件系統(tǒng)需要先獲取busybox源代碼,然后配置、編譯和安裝4.2.1busybox源代碼成功安裝SDK后,Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)Linux系統(tǒng)的根文件系統(tǒng)中會(huì)包括根文件系統(tǒng)頂層目錄結(jié)構(gòu)圖中所有的目錄,不過在系統(tǒng)中,需要精簡根文件系統(tǒng)。部分可以被忽略的目錄如表4-1所示。表4-1注:空目錄并增大文件系統(tǒng)的體積,如果沒有特殊原因,建議保留這些目錄。4.2busybox制作根文件系統(tǒng)利用busybox制作根文件系統(tǒng)需要先獲取busybox源代碼,然后配置、編譯和安裝4.2.1busybox源代碼成功安裝SDK后,busybox完整源代碼就存放在osdrv/目錄中。要獲取busybox源代碼也可以從。4.2.2busybox進(jìn)入busybox所在目錄,進(jìn)行配置操作需要輸入如下命令:cposdrv/busybox/busybox-1.26.2/config_aarch64_v610_osdrv/busybox/busybox-1.26.2/.config//指定配置文件_softfp_neon其中,config__softfp_neon代表兩種情況:config_aarch64_v610_a53_softfp_neon對應(yīng)64bit操作系統(tǒng)單核工具鏈aarch64-himix100-linuxconfig_aarch64_v610_a73_a53_softfp_neon對應(yīng)64bit操作系統(tǒng)多核工具鏈aarch64-himix100-linuxmakeconfigbusybox的配置界面和內(nèi)核配置相似,其功能選項(xiàng)容易理解,可以根據(jù)自己的需求選擇配置。在BusyboxSettings>BuildOptions中注意下面一個(gè)選項(xiàng):[*]BuildwithLargeFileSupport(foraccessingfiles>2GB)(aarch64-himix100-linux-)CrossCompilerprefix()Pathtosysroot信息9所有?市海思半導(dǎo)體目錄名稱描述/home、/mnt、/opt和/root所有適合提供給多用戶擴(kuò)展的目錄,都可以被忽略。/var和/tmp/var是存放系統(tǒng)日志或一些服務(wù)程序的臨時(shí)文件。/tmp是存放用戶的一些臨時(shí)文件,可以被忽略。/boot/boot目錄一般用于存放內(nèi)核映像,PC機(jī)啟動(dòng)時(shí)一般會(huì)從該位置加載內(nèi)核,但在 系統(tǒng)中,為了節(jié)省空間,內(nèi)核映像存在于Flash或網(wǎng)絡(luò)服務(wù)器中,而不是在根文件系統(tǒng)中。因此也可以忽略這個(gè)目錄。Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)(-mcpu=cortex-a53-mfloat-abi=softfp-mfpu=neon-vfpv4)AdditionalCFLAGS()AdditionalLDFLAGS()AdditionalLDLIBS其中:第一個(gè)選項(xiàng)是用于選擇SDK推薦的交叉編譯器,配置好后保存并busybox各選項(xiàng)含義請參考busybox配置幫助。。欲了解4.2.3編譯和安編譯和安usyboxusybox的具體操作如下:makemakeinstall編譯并安裝成功后,在busybox目錄下的_installHi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)(-mcpu=cortex-a53-mfloat-abi=softfp-mfpu=neon-vfpv4)AdditionalCFLAGS()AdditionalLDFLAGS()AdditionalLDLIBS其中:第一個(gè)選項(xiàng)是用于選擇SDK推薦的交叉編譯器,配置好后保存并busybox各選項(xiàng)含義請參考busybox配置幫助。。欲了解4.2.3編譯和安編譯和安usyboxusybox的具體操作如下:makemakeinstall編譯并安裝成功后,在busybox目錄下的_install目錄下生成以下目錄及文件:drwxrwxr-x24096Feb1311:41binlrwxrwxrwx111Feb1311:41linuxrc->bin/busyboxdrwxrwxr-x24096Feb1311:41sbindrwxrwxr-x44096Feb1311:41usr表示組。其中表示用戶;4.2.4制作根文件系統(tǒng)成功安裝SDK后,在osdrv/pub/目錄中存放已制作好的根文件系統(tǒng)。用戶需要可在busybox的基礎(chǔ)上制作根文件系統(tǒng)。制作根文件系統(tǒng)的具體操作步驟如下:1.mkdirrootboxcdrootboxcp–Rtos/usybx-1262_nts*.mkdiretcdevlibtmpvarmnthomeproc2.配置etc、lib、dev目錄的必需文件。etc目錄可參考系統(tǒng)/etc下的文件。其中最主要的文件包括inittab、fstab、init.d/rcS文件等,這些文件最好從busybox的examples目錄下拷貝過來,根據(jù)需要自行修改。dev目錄下的設(shè)備文件,可以直接從系統(tǒng)中拷貝過來或者使用mknod命令生成需cp–Rfile。件。結(jié)束信息10所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)完成以上兩個(gè)步驟,一個(gè)完整的根文件系統(tǒng)就生成了。SDK軟件包中已經(jīng)包括配置好的完整的根文件系統(tǒng),如果無特別需求,可直接使用。要添加自己開發(fā)的應(yīng)用程序,只需將應(yīng)用程序和相應(yīng)的庫文件拷貝到根文件系統(tǒng)的對應(yīng)目錄即可。為了便于調(diào)試,默認(rèn)發(fā)布的版本中沒有設(shè)置root;為了保證系統(tǒng)安全,請客戶在中自行設(shè)置root。4.3文件系統(tǒng)簡介系統(tǒng)中常用文件系統(tǒng)包括有cramfs、jffs2、NFS、initrd、yaffs2、ext4以及squashfs、ubifs。它們的特點(diǎn)如下:cramfs和jffs2具有好的空間特性,很適合應(yīng)用。cramfssquashfsSPINorFLASH支持這兩種文件系統(tǒng)。squashfs壓縮率最高。jffs2Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)完成以上兩個(gè)步驟,一個(gè)完整的根文件系統(tǒng)就生成了。SDK軟件包中已經(jīng)包括配置好的完整的根文件系統(tǒng),如果無特別需求,可直接使用。要添加自己開發(fā)的應(yīng)用程序,只需將應(yīng)用程序和相應(yīng)的庫文件拷貝到根文件系統(tǒng)的對應(yīng)目錄即可。為了便于調(diào)試,默認(rèn)發(fā)布的版本中沒有設(shè)置root;為了保證系統(tǒng)安全,請客戶在中自行設(shè)置root。4.3文件系統(tǒng)簡介系統(tǒng)中常用文件系統(tǒng)包括有cramfs、jffs2、NFS、initrd、yaffs2、ext4以及squashfs、ubifs。它們的特點(diǎn)如下:cramfs和jffs2具有好的空間特性,很適合應(yīng)用。cramfssquashfsSPINorFLASH支持這兩種文件系統(tǒng)。squashfs壓縮率最高。jffs2為可讀寫文件系統(tǒng)。NFS文件系統(tǒng)適用于開發(fā)初期的調(diào)試階段。yaffs2NANDFlash。initrd采用cramfs文件系統(tǒng),為只讀。ext4文件系統(tǒng)用于eMMC卡和UFS。4.3.1cramfsLinux2.4之后的版本所設(shè)計(jì)的一種新型文件系統(tǒng),使用簡單,加載容易,速度快。cramfs的優(yōu)缺點(diǎn)如下:優(yōu)點(diǎn)將文件數(shù)據(jù)以壓縮形式缺點(diǎn),在需要運(yùn)行時(shí)進(jìn)行解壓縮,能節(jié)省Flash空間。由于它的文件是壓縮的格式,所以文件系統(tǒng)不能直接在Flash上運(yùn)行。同時(shí),文件系統(tǒng)運(yùn)行時(shí)需要解壓數(shù)據(jù)并拷貝至內(nèi)存中,在一定程度上降低外cramfs文件系統(tǒng)是只讀的。效率。另如果想要在單板運(yùn)行的Linux中提供cramfs的能力,必須要在編譯內(nèi)核時(shí)把cramfs的選項(xiàng)加入。在makecnfgFilesysteMiscnousfilesystemCmpressedROMfilesystemsuport(cramfs)(OBSOLETE)(SDK里面提供的內(nèi)核默認(rèn)已經(jīng)選擇了該文件系統(tǒng)的支持。信息所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)mkfs.cramfs是用來制作cramfs文件系統(tǒng)映象的工具。通過這個(gè)工具處理已經(jīng)制作好的cramfs文件系統(tǒng)的映象(ISO文件映像。具體操作如下所示:mkfs.cramfs./rootbox./cramfs-root.img其中,rootbox是之前已經(jīng)制作好的根文件系統(tǒng),cramfs-root.img是生成的cramfs文件系統(tǒng)映像文件。4.3.2jffs2Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)mkfs.cramfs是用來制作cramfs文件系統(tǒng)映象的工具。通過這個(gè)工具處理已經(jīng)制作好的cramfs文件系統(tǒng)的映象(ISO文件映像。具體操作如下所示:mkfs.cramfs./rootbox./cramfs-root.img其中,rootbox是之前已經(jīng)制作好的根文件系統(tǒng),cramfs-root.img是生成的cramfs文件系統(tǒng)映像文件。4.3.2jffs2設(shè)備的原始閃存 際文件系統(tǒng)。jffs2文件系統(tǒng)是日志結(jié)構(gòu)化的可讀寫的文件系統(tǒng)。jffs2的優(yōu)缺點(diǎn)如下:優(yōu)點(diǎn)使用了壓縮的文件格式。最重要的特性是可讀寫操作。缺點(diǎn)jffs2jffs2jffs2文件系統(tǒng)分區(qū)增大jffs2Flash空間的浪費(fèi)。這主要是由于日志文件的過度開銷和用于回收系統(tǒng)的無用單元,浪費(fèi)的空間大小大致是若干個(gè)數(shù)據(jù)段。jffs2的另一缺點(diǎn)是當(dāng)文件系統(tǒng)已滿或接近滿時(shí),jffs2運(yùn)行速度會(huì)迅速降低。這是因?yàn)槭占膯栴}。jffs2文件系統(tǒng)時(shí)的步驟如下:.掃描整個(gè),對日志節(jié)點(diǎn)進(jìn)行校驗(yàn),并且將日志節(jié)點(diǎn)全部裝入內(nèi)存緩存。對所有日志節(jié)點(diǎn)進(jìn)行整理,抽取有效的節(jié)點(diǎn)并整理出文件目錄信息。找出文件系統(tǒng)中無效節(jié)點(diǎn)并且將它們刪除。最后整理內(nèi)存中的信息,將加載到緩存中的無效節(jié)點(diǎn)結(jié)束。由此可以看出雖然這樣能有效地提高系統(tǒng)的可靠性,但是在一定程度上降低了系統(tǒng)的速度。尤其對于較大的閃存,加載過程會(huì)更慢。jffs2jffs2的選項(xiàng)加入(我們發(fā)布的內(nèi)核默認(rèn)已經(jīng)加入了支持。在makecnfgFilesyste“MiceeusfilesystemsJounagFashFileSystemv2(JFFS2)support”選項(xiàng)(SDK里面提供的內(nèi)核默認(rèn)已經(jīng)選擇了該文件系統(tǒng)的支持。jffs2的制作方法為:mkfs.jffs2–d./rootbox-l–e0x20000-ojffs2-root.img工具可以從互聯(lián)網(wǎng)中SDK包中找到。rootbox為之前已經(jīng)制作好的根文件系統(tǒng)。參數(shù)說明如表4-2所示。信息12所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)4.3.3yaffs2yaffs2NANDFlash設(shè)計(jì)的文件系統(tǒng)。它是日志結(jié)構(gòu)的文件系統(tǒng),提供了損耗平衡和掉電保護(hù),可以有效地避免意外掉電對文件系統(tǒng)一致性和完整性的影響。yaffs2的優(yōu)缺點(diǎn)如下:優(yōu)點(diǎn)–專門針對NANDFlash,軟件結(jié)構(gòu)得到優(yōu)化,速度快。–使用硬件的sparearea區(qū)域動(dòng)比較快。文件組織信息,啟動(dòng)時(shí)只需掃描組織信息,啟–采用多策略的目的。Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)4.3.3yaffs2yaffs2NANDFlash設(shè)計(jì)的文件系統(tǒng)。它是日志結(jié)構(gòu)的文件系統(tǒng),提供了損耗平衡和掉電保護(hù),可以有效地避免意外掉電對文件系統(tǒng)一致性和完整性的影響。yaffs2的優(yōu)缺點(diǎn)如下:優(yōu)點(diǎn)–專門針對NANDFlash,軟件結(jié)構(gòu)得到優(yōu)化,速度快。–使用硬件的sparearea區(qū)域動(dòng)比較快。文件組織信息,啟動(dòng)時(shí)只需掃描組織信息,啟–采用多策略的目的。缺點(diǎn)回收算法,能夠提高回收的效率和公平性,達(dá)到損耗平衡沒有采用壓縮的文件格式。當(dāng)包含的內(nèi)容相同時(shí),yaffs2jffs2鏡像文件大。yaffs2SDKyaffs2Makefile中加入yaffs2文件系統(tǒng)模塊。yaffs2鏡像文件的制作和cramfs相同,即通過工具制作,只需簡單的幾個(gè)參數(shù),具體如下:mkyaffs2image./rootboxyaffs2-root.img[pagesize][ecctype]其中,rootbox是之前已經(jīng)制作好的根文件系統(tǒng),yaffs2-root.img是生成的yaffs2文件NANDFlash器件的頁大小,ecctype是單板上焊接NANDFlash器件的ecc類型。4.3.4initrdinitrd相當(dāng)于介質(zhì),它支持的文件系統(tǒng)格式有ext2、cramfs等,因此內(nèi)核除了支持initrd之外,還要支持cramfs文件系統(tǒng)。內(nèi)核需要做如下配置,initrd才可以正常工作:進(jìn)入“eckdeRAMbokeeupor信息13所有?市海思半導(dǎo)體參數(shù)說明d指定根文件系統(tǒng)llittle-endian小端模式eFlash的塊大小o輸出映像文件Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)進(jìn)入“alspInitalRAMfilesstemandRAM(initramfs/inird)Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)進(jìn)入“alspInitalRAMfilesstemandRAM(initramfs/inird)supor進(jìn)入“FilesysteMiscnousfmedROMfesstemsuportcra)(S)SDK中默認(rèn)選中以上兩項(xiàng)。的步驟如下:1.cramfs鏡像文件,具體制作方法請參見“4.3.1cramfs”。2.1initrd文件,制作命令為“mkimage-Aarm64-Tramdisk-Cnone-a0-e0-ncramfs-initrd-d/cramfs-imagecramfs-initrd”。結(jié)束4.3.5squashfssquashfsLinux內(nèi)核使用的壓縮只讀文件系統(tǒng),壓縮率高。squashfs具有如下特點(diǎn):節(jié)點(diǎn)(inode)和目錄(directories)都被壓縮保存了全部的32位UID/GIDS和文件的創(chuàng)建時(shí)間4G文件系統(tǒng)檢測并刪除重復(fù)文件squashfs文件系統(tǒng)步驟:1.squashfslinux-4.9.y目錄下,執(zhí)行以下命令:cparch/arm64/configs/hi3559av100_arm64_big_little_defconfig.configmakeARCH=arm64PILE=aarch64-himix100-linux-config(保存即可)makeARCH=arm64PILE=aarch64-himix100-linux-uImagecd../../arm-trusted-firmware/arm-trusted-firmware./mk.sh2.squashfsSDK/package/osdrv/tools/pc_tools目錄下的mksquashfssquashfs文件系統(tǒng)工具。使用方法如下:./mksquashfsrootfs./rootfs.squashfs.img-b64K–compxz其中,rootfs是之前已經(jīng)制作好的根文件系統(tǒng),rootfs.squashfs.imgsquashfs文件系統(tǒng)映像文件。-b64Ksquashfs64K(spiflash塊大小。-compxz。請根據(jù)實(shí)際情況修改參數(shù)。結(jié)束信息14所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)4.3.6ext4ext3的的改進(jìn)是更次的,是文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)方面的優(yōu)化。1.ext4的內(nèi)核鏡像。目錄下,執(zhí)行以下命令:cparch/arm64/configs/hi3559av100_arm64__defconfig.configHi3559A/CV100開發(fā)環(huán)境用戶指南4根文件系統(tǒng)4.3.6ext4ext3的的改進(jìn)是更次的,是文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)方面的優(yōu)化。1.ext4的內(nèi)核鏡像。目錄下,執(zhí)行以下命令:cparch/arm64/configs/hi3559av100_arm64__defconfig.config(注:使用hi3559av100_arm64_big_little_defconfig或hi3559av100_arm64_big_little_nand_defconfig)config(保存makeARCH=arm64PILE=aarch64-himix100-linux-即可)makeARCH=arm64PILE=aarch64-himix100-linux-uImagecd../../arm-trusted-firmware/arm-trusted-firmware./mk.sh2.制作ext4文件系統(tǒng)鏡像。在發(fā)布包osdrv/tools/pc_tools目錄下的make_ext4fs為制作ext4文件系統(tǒng)工具。使用方法如下:./make_ext4fs–l96M–srootfs.ext4.imgrootfsubootext496MB,-sgzip壓縮,rootfs.ext4.img是生成的Ext4文件系統(tǒng)映像文件,rootfs是之前已經(jīng)制作好的根文件系統(tǒng)。請根據(jù)實(shí)際情況修改參數(shù)。結(jié)束信息15所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南5多核加載啟動(dòng) 5多核加載啟動(dòng)系統(tǒng)啟動(dòng)步驟如下:1.2.系統(tǒng)上電時(shí),A53MP首先啟動(dòng),運(yùn)行uboot。uboot使用命令“config_m7”配置M7,再將M7Hi3559A/CV100開發(fā)環(huán)境用戶指南5多核加載啟動(dòng) 5多核加載啟動(dòng)系統(tǒng)啟動(dòng)步驟如下:1.2.系統(tǒng)上電時(shí),A53MP首先啟動(dòng),運(yùn)行uboot。uboot使用命令“config_m7”配置M7,再將M7鏡像寫入0x19000000地址中,使用命令“go_m7”加載M7鏡像,并撤銷復(fù)位M7,運(yùn)行省略)。LiteOS系統(tǒng)(不啟動(dòng)M7時(shí)可3.uboot使用命令“go_a53up0時(shí)可省略)?!眴?dòng)A53UPLiteOS(不啟動(dòng)A53UP4.5.A53MP+A73MPlinuxbig-littleDSPDSP。uboot使用命令“bootm0像,運(yùn)行此內(nèi)核。A53MP+A73MPlinuxbig-little內(nèi)核鏡系統(tǒng)啟動(dòng)流程如圖5-1。信息16所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南5多核加載啟動(dòng)系統(tǒng)上電ubootLiteOS加載相關(guān)M7A53MP+A73MPA53UPDSP結(jié)束信息17所有?市海思半導(dǎo)體加載DSP服務(wù)服務(wù)LiteOS加載相關(guān)模塊與服務(wù)Big-littleKernelLiteOS加載DSP鏡像EntryEntryEntryEntryHi3559A/CV100開發(fā)環(huán)境用戶指南5多核加載啟動(dòng)系統(tǒng)上電ubootLiteOS加載相關(guān)M7A53MP+A73MPA53UPDSP結(jié)束信息17所有?市海思半導(dǎo)體加載DSP服務(wù)服務(wù)LiteOS加載相關(guān)模塊與服務(wù)Big-littleKernelLiteOS加載DSP鏡像EntryEntryEntryEntryHi3559A/CV100開發(fā)環(huán)境用戶指南6LiteOS6LiteOS6.1LiteOS配置LiteOS的開發(fā),編譯工作首要任務(wù)是安裝編譯工具鏈。具體安裝方法可以參考1.3.2安裝交叉編譯工具。1.切換目錄至LiteOS目錄下:cdplatform/liteos_a53/liteos或cdplatform/liteos_m7/liteosHi3559A/CV100開發(fā)環(huán)境用戶指南6LiteOS6LiteOS6.1LiteOS配置LiteOS的開發(fā),編譯工作首要任務(wù)是安裝編譯工具鏈。具體安裝方法可以參考1.3.2安裝交叉編譯工具。1.切換目錄至LiteOS目錄下:cdplatform/liteos_a53/liteos或cdplatform/liteos_m7/liteos2.執(zhí)行makeconfig配置完成后,保存并 。結(jié)束LiteOS編譯配置保存后,可直接輸入“makeOS庫文件。6.2信息18所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南7應(yīng)用程序開發(fā)簡介 7應(yīng)用程序開發(fā)簡介7.1編寫代碼用戶可根據(jù)個(gè)人習(xí)慣選擇代碼編寫工具。通常在Windows環(huán)境下使用SourceInsight,LinuxHi3559A/CV100開發(fā)環(huán)境用戶指南7應(yīng)用程序開發(fā)簡介 7應(yīng)用程序開發(fā)簡介7.1編寫代碼用戶可根據(jù)個(gè)人習(xí)慣選擇代碼編寫工具。通常在Windows環(huán)境下使用SourceInsight,LinuxVim+ctags+cscope,功能也相當(dāng)強(qiáng)大。7.2運(yùn)行應(yīng)用程序要運(yùn)行編譯好的應(yīng)用程序,首先需要將其添加到目標(biāo)機(jī)中,必須完成以下工作:將應(yīng)用程序和需要的庫文件(如果有)等添加到目標(biāo)機(jī)的根文件系統(tǒng)相應(yīng)的目錄中。通常將應(yīng)用程序放到/bin目錄里,庫文件放到/lib目錄里,配置文件則放到/etc目錄里。制作包含新應(yīng)用程序的根文件系統(tǒng)。如果執(zhí)行應(yīng)用程序,需要讀寫文件系統(tǒng)操作。請選擇yaffs2、jffs2文件系統(tǒng)。如果需要制作cramfs、yaffs2或jffs2文件系統(tǒng),制作相應(yīng)的文件系統(tǒng)(請參見“4.3文件系統(tǒng)簡介Flash指Linux后便可運(yùn)行新的應(yīng)用程序。置,并設(shè)置相應(yīng)的啟動(dòng)參數(shù)。同如果新添加的應(yīng)用程序需要系統(tǒng)啟動(dòng)后自動(dòng)運(yùn)行,請編輯/etc/init.d/rcS文件,添加需要啟動(dòng)的應(yīng)用程序路徑。信息19所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊8IPCM模塊8.1IPCM簡介IPCM是Inter-ProcessorCommunicationModule(多核通信模塊)的簡稱。用于實(shí)現(xiàn)A53MP+A73MP、A53UP、DSP、Cortex-M7等相互之間的通信。8.2IPCM源代碼IPCM源碼路徑位于發(fā)布包目錄下相關(guān)操作。ponents/ipcm/,用戶可直接進(jìn)入目錄進(jìn)行以下為IPCM源代碼頂層目錄結(jié)構(gòu):Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊8IPCM模塊8.1IPCM簡介IPCM是Inter-ProcessorCommunicationModule(多核通信模塊)的簡稱。用于實(shí)現(xiàn)A53MP+A73MP、A53UP、DSP、Cortex-M7等相互之間的通信。8.2IPCM源代碼IPCM源碼路徑位于發(fā)布包目錄下相關(guān)操作。ponents/ipcm/,用戶可直接進(jìn)入目錄進(jìn)行以下為IPCM源代碼頂層目錄結(jié)構(gòu):├──arch│ └──hi3559av100│└──configs├──classcdev│├──│├──net│├──sharefs│└──virt-tty├──include├──message├──sysdeps│├──bare│├──│└──liteos信息20所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊└──test└──.txt└──readme_en.txtMakefile└──└──do_make_module└──makeprepare.sh對各個(gè)目錄或文件的解釋如下:arch平臺相關(guān)classpcm使用功能組件的封裝,包括:cdv字符設(shè)備sharef(共享文件系統(tǒng),vi(虛擬串口終端)include頭文件message通信消息層代碼sysdeps系統(tǒng)依賴相關(guān),包括:linux,test測試用例及samplereadmeHi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊└──test└──.txt└──readme_en.txtMakefile└──└──do_make_module└──makeprepare.sh對各個(gè)目錄或文件的解釋如下:arch平臺相關(guān)classpcm使用功能組件的封裝,包括:cdv字符設(shè)備sharef(共享文件系統(tǒng),vi(虛擬串口終端)include頭文件message通信消息層代碼sysdeps系統(tǒng)依賴相關(guān),包括:linux,test測試用例及samplereadme使用說明LiteOS,bare(非操作系統(tǒng))8.3節(jié)點(diǎn)分配IPCM為每一個(gè)需要通信的核分配一個(gè)節(jié)點(diǎn),并為之編號,用于建立連接時(shí)指定息對端。8-1Hi3559AV100的默認(rèn)分配方式。消8.4IPCM使用說明在IPCM頂層目錄執(zhí)行:信息21所有?市海思半導(dǎo)體節(jié)點(diǎn)號核OS0A53MP+A73MPLinux(big-little)1A53UPLiteOS2DSP0LiteOS3DSP1LiteOS4DSP2LiteOS5DSP3LiteOS6M7LiteOSHi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊makePLATFORM=hi3559av100CFG=hi3559av100__yyyyyy_config其中:hi3559av100_面。archhi3559av100/configs編譯完成后,在out/node目錄下生成目標(biāo)文件。Linux使用ko文件,使用庫文件。LiteOSIPCM的配置說明,設(shè)備節(jié)點(diǎn)操作請查看ipcm頂層目錄Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊makePLATFORM=hi3559av100CFG=hi3559av100__yyyyyy_config其中:hi3559av100_面。archhi3559av100/configs編譯完成后,在out/node目錄下生成目標(biāo)文件。Linux使用ko文件,使用庫文件。LiteOSIPCM的配置說明,設(shè)備節(jié)點(diǎn)操作請查看ipcm頂層目錄readme.txt說明。IPCM的編譯需要依賴OSDRV編譯完成。OSDRV編譯完成后,在IPCM目錄,編譯示例如下:對于A53MP+A73MP,執(zhí)行:makePLATFORM=hi3559av100CFG=hi3559av100_mp_linux_big-little_configall(Linux+或LiteOS方案)makePLATFORM=hi3559av100CFG=hi3559av100_mp_linux_multi-core_configallLinux在out/node_0目錄下生成node_0├──├──├──├──├──└──hi_ipcm.kohi_virt-tty.kolibsharefs.alibsharefs.sosharefsvirt-tty對于A53UP,執(zhí)行:makePLATFORM=hi3559av100CFG=hi3559av100_a53_liteos_configall在out/node_1目錄下生成:node_1├──├──└──libipcm.alibsharefs.alibvirt-tty.a對于DSP,執(zhí)行:makePLATFORM=hi3559av100CFG=hi3559av100_dspX_liteos_configall(dspX_dsp0、dsp1、dsp2、dsp3)在其對應(yīng)的out目錄下生成:node_X├──libipcm.a└──libvirt-tty.a對于Cortex-M7,執(zhí)行:makePLATFORM=hi3559av100CFG=hi3559av100_m7_liteos_configall信息22所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊在out/node_6目錄下生成:node_6├──libipcm.a└──libvirt-tty.a8.5virt-tty虛擬串口終端Hi3559AV100部署了多個(gè)操作系統(tǒng),開發(fā)者需要對每個(gè)系統(tǒng)調(diào)試并查看打印信息。為每個(gè)系統(tǒng)配置一個(gè)硬件串口,會(huì)增加硬件單板布線及成本。為此,提供一套虛擬終端virt-ttyVirt-tty作為IPCM提供的一套組件之一,代碼目錄位于:ponents/ipcm/class/virt-tty。配置好virt-tty后,在編譯IPCM時(shí),會(huì)同時(shí)編譯出virt-tty的目標(biāo)文件。Virt-tty采用IPCM的5號端口。virt-ttyHi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊在out/node_6目錄下生成:node_6├──libipcm.a└──libvirt-tty.a8.5virt-tty虛擬串口終端Hi3559AV100部署了多個(gè)操作系統(tǒng),開發(fā)者需要對每個(gè)系統(tǒng)調(diào)試并查看打印信息。為每個(gè)系統(tǒng)配置一個(gè)硬件串口,會(huì)增加硬件單板布線及成本。為此,提供一套虛擬終端virt-ttyVirt-tty作為IPCM提供的一套組件之一,代碼目錄位于:ponents/ipcm/class/virt-tty。配置好virt-tty后,在編譯IPCM時(shí),會(huì)同時(shí)編譯出virt-tty的目標(biāo)文件。Virt-tty采用IPCM的5號端口。virt-tty采用Server/Client模型,Server端接收Client 的消息并通過一定的方式拋給用戶。同時(shí),Server端接收用戶輸入令、數(shù)據(jù)等再給Client。一個(gè)Server,并分配一個(gè)硬件調(diào)試串口,多個(gè)Client,不需要調(diào)試串口。整個(gè)硬件解決方案只需要一個(gè)調(diào)試串口。Virt-tty在Hi3559AV100的典型使用場景為:A53MP+A73MP作為Server,A53UP、Cortex-M7、DSP等作為Client。其拓?fù)淙鐖D8-1。操作步驟如下:1.A53UP、Cortex-M7初始化:LiteOSlibipcm.a,libvirt-tty.a庫。并在app_init中執(zhí)行_ipcm_vdd_init();virt_tty_dev_init();.5“多核加載啟動(dòng)”啟動(dòng)多系統(tǒng)。A53MP+A73MP加載hi_ipcm.ko,hi_virt-tty.ko。virt-tty為其應(yīng)用程序。A53MP+A73MP配置好網(wǎng)絡(luò)連接到PC,并啟用telnetd服務(wù)。在PC終端工具上新建telnet連接到A53MP+A73MP。在telnet窗口里執(zhí)行:virt-ttya53A53UP的調(diào)試控制臺。virt-ttydspX(X0、1、2、3)dspX的調(diào)試控制臺。virt-ttym7Cortex-M7的調(diào)試控制臺。信息23所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊TelnetA53UPTelnetM7TelnetDSPCOM1A53MP+A73MPPC網(wǎng)線RS232EthIPCMIPHi3559AV100Board由于LiteOSshellvirt-tty作為shell輸入。OSDRVvirt-tty,如果需要切換到物理串口(A53UP默認(rèn)為SOC的uart1,M7SensorHub的uart0),按以下操作:A53UP,打開:platform/bsp/board/hi3559av100/cortex-a53_aarch64/include/hisoc/uart.hM7,打開:platform/bsp/board/hi3559av100/cortex-m7/include/hisoc/uart.h注釋掉以下代碼:undefTTY_DEVICEdefineTTY_DEVICEendif執(zhí)行:makeclean;Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊TelnetA53UPTelnetM7TelnetDSPCOM1A53MP+A73MPPC網(wǎng)線RS232EthIPCMIPHi3559AV100Board由于LiteOSshellvirt-tty作為shell輸入。OSDRVvirt-tty,如果需要切換到物理串口(A53UP默認(rèn)為SOC的uart1,M7SensorHub的uart0),按以下操作:A53UP,打開:platform/bsp/board/hi3559av100/cortex-a53_aarch64/include/hisoc/uart.hM7,打開:platform/bsp/board/hi3559av100/cortex-m7/include/hisoc/uart.h注釋掉以下代碼:undefTTY_DEVICEdefineTTY_DEVICEendif執(zhí)行:makeclean;make重新編譯。"/dev/virt-tty"8.6Sharefs功能A53UPLiteOSA53MP+A73MPLinux上目錄。其源碼目錄位于:ponents/ipcm/class/sharefs。Sharefs采用IPCM6號端口。Sharefs采用Server/Client模型。Server提供被Client發(fā)出的文件命令并執(zhí)行,然后返回結(jié)果給Client。在Client端,通過一些基本的文件或目錄 操作(opn/rd/writos、cdtServer端對應(yīng)的目錄。信息24所有?市海思半導(dǎo)體M7DSPCM IPCMA53UP3MPHi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊指定作為Sharefs的 目錄同也可以作為U盤、SD卡、NFS等的掛載點(diǎn)。這樣,Client可等同地U盤、SD卡、NFS等介質(zhì)。操作示例步驟如下:1.A53UPLiteOSlibipcm.a,libsharefs.a庫。并在app_init中執(zhí)行初始化:Hi3559A/CV100開發(fā)環(huán)境用戶指南8IPCM模塊指定作為Sharefs的 目錄同也可以作為U盤、SD卡、NFS等的掛載點(diǎn)。這樣,Client可等同地U盤、SD卡、NFS等介質(zhì)。操作示例步驟如下:1.A53UPLiteOSlibipcm.a,libsharefs.a庫。并在app_init中執(zhí)行初始化:_ipcm_vdd_init();其入?yún)ⅰ?sharefs”即是Client端指定要Server端對應(yīng)的目錄,由用戶自定義。2.A53MP+A73MPhi_ipcm.ko,并執(zhí)行:sharefs&,作為程序。也可在用戶的程序中l(wèi)ibsharefs.a、libsharefs.so庫,并在應(yīng)用中執(zhí)行:sharefs_server_init()。3.在A53UPLiteOS可。執(zhí)行:或目錄(sharefs_client_init的入?yún)ⅲ┰赟erver端必須存在,并且能被Server端應(yīng)用sharefsClient會(huì)失敗。結(jié)束信息25所有?市海思半導(dǎo)體Hi3559A/CV100開發(fā)環(huán)境用戶指南內(nèi)存分配 9Hi3559AV100內(nèi)存分配9.1內(nèi)存分配說明Hi3559AV100DDR0x40000000起始。Hi3559AV100DDR主要?jiǎng)澐譃槿缦聨讉€(gè)部分:(A53MP+A73MP、A53UP、Cortex-M7、DSP之間)DSP0/1/2/3LiteOSHi3559A/CV100開發(fā)環(huán)境用戶指南內(nèi)存分配 9Hi3559AV100內(nèi)存分配9.1內(nèi)存分配說明Hi3559AV100DDR0x40000000起始。Hi3559AV100DDR主要?jiǎng)澐譃槿缦聨讉€(gè)部分:(A53MP+A73MP、A53UP、Cortex-M7、DSP之間)DSP0/1/2/3LiteOS系統(tǒng)內(nèi)存A53MP+A73MPLinux系統(tǒng)內(nèi)存A53UPLiteOS系統(tǒng)內(nèi)存A53MP+A73MPMMZ區(qū)域A53UPMMZ區(qū)域。9-1是開發(fā)包給出的默認(rèn)參考配置。0x440000000x700000000x90000000信息26所有?市海思半導(dǎo)體IPCM(2M)DSP0/1/2/3(62M)A53UP192MA53MP+A73MPLinux(512M)A53MP+A73MPLinuxMMZA53UPMMZ(1G+)Hi3559A/CV100開發(fā)環(huán)境用戶指南內(nèi)存分配0x440000000x640000000x84000000DSP1GDSP片內(nèi)RAM的物理地址在(0~1GB)范圍Hi3559A/CV100開發(fā)環(huán)境用戶指南內(nèi)存分配0x440000000x640000000x84000000DSP1GDSP片內(nèi)RAM的物理地址在(0~1GB)范圍DSPLiteOS1GB空間??梢栽趏sdrv/osdrv_mem_cfg.sh文件中配置內(nèi)存分配,然后編譯整個(gè)osdrv。信息27所有?市海思半導(dǎo)體DSP0/1/2/3(64M)A53MP+A73MPLinuxA53MP+A73MP(512M)Hi3559A/CV100開發(fā)環(huán)境用戶指南A縮略語10中斷分配10.1中斷配置與分配中斷在系統(tǒng)里默認(rèn)配置如表10-1。A53MP+A73MPA53MP+A73MP。在多系統(tǒng)運(yùn)行環(huán)境中(A53MP+A73MPLinux系統(tǒng),A53UP單核運(yùn)行LiteOS表10-1列出中斷分配。分配給53MP+A73MP的中斷,默認(rèn)綁定A53MP-0。A53UP核上分配中斷,配置文件為:。用戶可更改irq_mapA53MP0、A53MP1、A73MP0、A73MP1A53UP。配置完成后,執(zhí)行:makecleanmake重新編譯。表10-1中斷分配表信息28所有?市海思半導(dǎo)體中斷號中斷源CPU中斷號中斷源CPU0~31CPU內(nèi)部中斷-145CPU_EXT_TIMER0A53MP+A73MP32Timer0/Timer1Hi3559A/CV100開發(fā)環(huán)境用戶指南A縮略語10中斷分配10.1中斷配置與分配中斷在系統(tǒng)里默認(rèn)配置如表10-1。A53MP+A73MPA53MP+A73MP。在多系統(tǒng)運(yùn)行環(huán)境中(A53MP+A73MPLinux系統(tǒng),A53UP單核運(yùn)行LiteOS表10-1列出中斷分配。分配給53MP+A73MP的中斷,默認(rèn)綁定A53MP-0。A53UP核上分配中斷,配置文件為:。用戶可更改irq_mapA53MP0、A53MP1、A73MP0、A73MP1A53UP。配置完成后,執(zhí)行:makecleanmake重新編譯。表10-1中斷分配表信息28所有?市海思半導(dǎo)體中斷號中斷源CPU中斷號中斷源CPU0~31CPU內(nèi)部中斷-145CPU_EXT_TIMER0A53MP+A73MP32Timer0/Timer1A53MP+A73MP146CPU_EXT_TIMER1A53MP+A73MP33Timer2/Timer3A53MP+A73MP147CPU_EXT_TIMER2A53MP+A73MP34Timer4/Timer5A53MP+A73MP148CPU_EXT_TIMER3A53MP+A73MP35Timer6/Timer7A53UP149A53MP_PMU0A53MP+A73MP36Timer8/Timer9A53UP150A53MP_PMU1A53MP+A73MP37Timer10/Timer11A53UP151A53MP_CTIIRQ0A53MP+A73MP38Uart0A53MP+A73MP152A53MP_CTIIRQ1A53MP+A73MP39Uart1A53UP153MRX0A53MP+A73MP40Uart2A53MP+A73MP154MRX1A53MP+A73MP41Uart3A53MP+A73MP155MTX0A53MP+A73MP42Uart4A53MP+A73MP156MTX1A53MP+A73MPHi3559A/CV100開發(fā)環(huán)境用戶指南A縮略語信息29所有?市海思半導(dǎo)體中斷號中斷源CPU中斷號中斷源CPU43RTCA53MP+A73MP157MIRQ0A53MP+A73MP44I2C0A53UP158MIRQ1A53MP+A73MP45I2C1A53UP159A73MP_PMU0A53MP+A73MP46I2C2A53UP160A73MP_PMU1A53MP+A73MP47I2C3A53UP161A73MP_CTIIRQ0A53MP+A73MP48I2C4A53UP162A73MP_CTIIRQ1A53MP+A73MP49I2C5A53UP163MRX0A53MP+A73MP50I2C6A53UP164MRX1A53MP+A73MP51I2C7A53UP165MTX0A53MP+A73MP52I2C8A53MP+A73MP166MTX1A53MP+A73MP53I2C9A53MP+A73MP167MIRQ0A53MP+A73MP54I2C10A53MP+A73MP168MIRQ1A53MP+A73MP55I2C11A53UP169A53UP_PMUA53UP56IRA53MP+A73MP170A53UP_CTIIRQ0A53UP57FMCA53MP+A73MP171MRX0A53UP58eMMCA53MP+A73MP172MTX0A53UP59VDMAA53UP173MIRQA53UP60保留-174PCIE_PM_INTA53MP+A73MP61保留-175PCIE_INTAA53MP+A73MP62SPACCA53MP+A73MP176PCIE_INTBA53MP+A73MP63SSP0A53UP177PCIE_INTCA53MP+A73MP64SSP1A53UP178PCIE_INTDA53MP+A73MP65SSP2A53UP179PCIE_EDMA_INTA53MP+A73MP66SSP3A53UP180PCIE_MSI_INTA53MP+A73MP67SSP4A53UP181PCIE_LINK_DOWN_INTA53MP+A73MP68GMAC0A53MP+A73MP182PCIE_CFG_LINK_AUTO_BW_INTA53MP+A73MP69GMAC1A53UP183PCIE_CFG_BW_MGT_INTA53MP+A73MP70SOFTWAREA53MP+A73MP184AVS_INT0A53UPHi3559A/CV100開發(fā)環(huán)境用戶指南A縮略語信息29所有?市海思半導(dǎo)體中斷號中斷源CPU中斷號中斷源CPU43RTCA53MP+A73MP157MIRQ0A53MP+A73MP44I2C0A53UP158MIRQ1A53MP+A73MP45I2C1A53UP159A73MP_PMU0A53MP+A73MP46I2C2A53UP160A73MP_PMU1A53MP+A73MP47I2C3A53UP161A73MP_CTIIRQ0A53MP+A73MP48I2C4A53UP162A73MP_CTIIRQ1A53MP+A73MP49I2C5A53UP163MRX0A53MP+A73MP50I2C6A53UP164MRX1A53MP+A73MP51I2C7A53UP165MTX0A53MP+A73MP52I2C8A53MP+A73MP166MTX1A53MP+A73MP53I2C9A53MP+A73MP167MIRQ0A53MP+A73MP54I2C10A53MP+A73MP168MIRQ1A53MP+A73MP55I2C11A53UP169A53UP_PMUA53UP56IRA53MP+A73MP170A53UP_CTIIRQ0A53UP57FMCA53MP+A73MP171MRX0A53UP58eMMCA53MP+A73MP172MTX0A53UP59VDMAA53UP173MIRQA53UP60保留-174PCIE_PM_INTA53MP+A73MP61保留-175PCIE_INTAA53MP+A73MP62SPACCA53MP+A73MP176PCIE_INTBA53MP+A73MP63SSP0A53UP177PCIE_INTCA53MP+A73MP64SSP1A53UP178PCIE_INTDA53MP+A73MP65SSP2A53UP179PCIE_EDMA_INTA53MP+A73MP66SSP3A53UP180PCIE_MSI_INTA53MP+A73MP67SSP4A53UP181PCIE_LINK_DOWN_INTA53MP+A73MP68GMAC0A53MP+A73MP182PCIE_CFG_LINK_AUTO_BW_INTA53MP+A73MP69GMAC1A53UP183PCIE_CFG_BW_MGT_INTA53MP+A73MP70SOFTWAREA53MP+A73MP184AVS_INT0A53UP71VEDU0A53UP185AVS_INT1A53UPHi3559A/CV100開發(fā)環(huán)境用戶指南A縮略語信息30所有?市海思半導(dǎo)體中斷號中斷源CPU中斷號中斷源CPU72VEDU1A53UP186AVS_INT2A53UP73VEDU2A53UP187AVS_INT3A53UP74保留-188AVS_INT4A53UP75VGS0A53UP189AVS_INT5A53UP76VGS1A53UP190AVS_INT6A53UP77VPSS0A53UP191AVS_INT7A53UP78VPSS1A53UP192GPIO0A53MP+A73MP79GDC0A53UP193GPIO1A53MP+A73MP80GDC1A53UP194GPIO2A53MP+A73MP81JPGEA53UP195GPIO3A53MP+A73MP82保留-196GPIO4A53MP+A73MP83GMEA53UP197GPIO5A53MP+A73MP84JPGDA53UP198GPIO6A53MP+A73MP85TDEA53MP+A73MP199GPIO7A53MP+A73MP86GZIPA53MP+A73MP200GPIO8A53MP+A73MP87PGDA53MP+A73MP201GPIO9A53MP+A73MP88IVEA53MP+A73MP202GPIO10A53MP+A73MP89保留-203GPIO11A53MP+A73MP90NNIE0A53MP+A73MP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論