歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

projectne10向ZedBoard移植

目標:在ZedBoard的Linux上可以運行NE10的庫
日期:2016/5/16
主機OS:Win7sp1-64bit
虛擬機OS:Ubuntu14.04.4-amd64
參考:$NE10PATH/doc/BuildingNe10.txt(我們這種應用屬於CROSS-COMPILING)
$NE10PATH/GNUlinux_config.cmake

一、下載projectne10源代碼

官網:http://projectne10.github.io/Ne10/
下載zip壓縮包,並解壓給虛擬機共享文件夾

二、編譯projectne10庫

首先確保Vivado2015.4已成功安裝
1. 將共享文件夾的ne10源代碼目錄拷貝到~/下,並更名NE10
2. 在NE10/下創建config.cmake,並包含以下內容
set(GNULINUX_PLATFORM ON)
set(NE10_LINUX_TARGET_ARCH "armv7")

set( CMAKE_C_COMPILER arm-xilinx-linux-gnueabi-gcc )  
set( CMAKE_CXX_COMPILER arm-xilinx-linux-gnueabi-g++ ) 
set( CMAKE_ASM_COMPILER arm-xilinx-linux-gnueabi-as ) 
 
find_program(CMAKE_AR NAMES "arm-xilinx-linux-gnueabi-ar")  
mark_as_advanced(CMAKE_AR)   
find_program(CMAKE_RANLIB NAMES "arm-xilinx-linux-gnueabi-ranlib")
mark_as_advanced(CMAKE_RANLIB)
3. 執行編譯
$mkdir build & cd build
$cmake -DCMAKE_TOOLCHAIN_FILE=../config.cmake ..
$make
4. 我們可以得到./modules/libNE10.a(庫文件)、./samples/NE10_test_static(測試程序)、./test/N個測試文件
/* TODO: 這裡我還沒有上Zed測試,等之後有時間再說 */

三、關於projectne10庫

1. 首先能確定的是,ne10庫想移植到standalone較困難,比如說modules/NE10_init.c文件為各模塊初始化文件,裡面涉及到了
infofile = fopen ("/proc/cpuinfo", "r");
也就是說需要至少linux系統的支持
2. 所有modules下的函數實現,.asm的實現基本沒有任何用處,可以看看諸如NE10_init_math.c文件中各函數指針初始化過程,即可了解其實_asm的實現根本沒有調用到
3. 一些文檔中表示,模塊函數可以間接調用,也可以直接調用,間接調用使用的是函數指針,比如
ne10_vdiv_vec2f,會根據系統帶不帶neon模塊來決定是使用ne10_vdiv_vec2f_c還是ne10_vdiv_vec2f_neon函數
而直接調用則可直接指定ne10_vdiv_vec2f_neon函數
Copyright © Linux教程網 All Rights Reserved