您的位置:首页 > 其它

projectne10向ZedBoard移植

2016-05-16 23:44 197 查看
目标:在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函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: