This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM Compute Library in Xilinx SDK for bare metal execution?

Hi all, 

I'm trying to add the ARM compute library on Xiling SDK to run a CNN on the Cortex A-9. I'm having a hard time trying to integrate it. To begin with, i downloaded the ComputeLibrary master folder at https://github.com/ARM-software/ComputeLibrary. Afterwards i have read the documentation at the "bare metal" paragraph. There is a link to download linaro, which i downloaded. I made a new c++ project on SDK and i choosed the linaro toolchain that i downloaded. Then i added the library in the folder services_sw but when i try compiling it, it gives several errors. 

Can you help me please?

  • Hi,

    Are you able to share with us the errors you receive please ? If I can't help then someone else might be able to.

    Regards

    Stuart

  • I think i'm doing it completely wrong. I have no idea what i am supposed to do.

  • Now i'm trying a different approach, without using Xilinx SDK and following the official documentation. Scons 2.3 or above is required to build the library. This is what i get on the terminal:

    C:\ComputeLibrary-master>scons Werror=1 -j8 debug=0 neon=1 opencl=0 os=bare_metal arch=armv7a build=cross_compile cppthreads=0 openmp=0 standalone=1
    scons: Reading SConscript files ...
    IndexError: list index out of range:
    File "C:\ComputeLibrary-master\SConstruct", line 69:
    SConsignFile('build/%s/.scons' % build_path)
    File "C:\Python\Python37\scons\SCons\Script\SConscript.py", line 665:
    env = self.factory()
    File "C:\Python\Python37\scons\SCons\Script\SConscript.py", line 645:
    default_env = SCons.Defaults.DefaultEnvironment()
    File "C:\Python\Python37\scons\SCons\Defaults.py", line 88:
    _default_env = SCons.Environment.Environment(*args, **kw)
    File "C:\Python\Python37\scons\SCons\Environment.py", line 982:
    apply_tools(self, tools, toolpath)
    File "C:\Python\Python37\scons\SCons\Environment.py", line 107:
    env.Tool(tool)
    File "C:\Python\Python37\scons\SCons\Environment.py", line 1789:
    tool(self)
    File "C:\Python\Python37\scons\SCons\Tool\__init__.py", line 296:
    self.generate(env, *args, **kw)
    File "C:\Python\Python37\scons\SCons\Tool\default.py", line 40:
    for t in SCons.Tool.tool_list(env['PLATFORM'], env):
    File "C:\Python\Python37\scons\SCons\Tool\__init__.py", line 1266:
    c_compiler = FindTool(c_compilers, env) or c_compilers[0]
    File "C:\Python\Python37\scons\SCons\Tool\__init__.py", line 1169:
    if t.exists(env):
    File "C:\Python\Python37\scons\SCons\Tool\msvc.py", line 292:
    return msvc_exists(env)
    File "C:\Python\Python37\scons\SCons\Tool\MSCommon\vc.py", line 759:
    vcs = cached_get_installed_vcs(env)
    File "C:\Python\Python37\scons\SCons\Tool\MSCommon\vc.py", line 524:
    ret = get_installed_vcs(env)
    File "C:\Python\Python37\scons\SCons\Tool\MSCommon\vc.py", line 535:
    VC_DIR = find_vc_pdir(ver)
    File "C:\Python\Python37\scons\SCons\Tool\MSCommon\vc.py", line 344:
    comps = find_vc_pdir_vswhere(msvc_version)
    File "C:\Python\Python37\scons\SCons\Tool\MSCommon\vc.py", line 306:
    vc_pdir = os.path.join(vsdir[0], 'VC')

  • Hi,

    I have an example of building the Arm Compute Library for bare metal. It's for Cortex-R52 instead of Cortex-A9 but should be similar. 

    The setup is for building on Linux but maybe you can translate the commands to Windows or use VirtualBox or Docker Desktop.

    https://github.com/ARM-software/Tool-Solutions/tree/master/ml-tool-examples/bare-metal 

    There is a top-level build_armcl_bm.sh to make sure the appropriate tools are setup.

    Then there is a build.sh in the Cortex-R52 example area to build the library and a small bare metal example for Cortex-R52. 

    Thanks,

    Jason

  • Thank you very much!! 

    At the moment i put aside the bare metal execution and i'm trying to build on Linux. I built the library and i made my own example. At this point i use the command: 

    arm-linux-gnueabihf-g++ examples/myexample.cpp utils/Utils.cpp -I. -Iinclude -std=c++11 -mfpu=neon -L. -larm_compute -larm_compute_core -o myexample

    but i've been getting errors. 

    Then i tried to compile one of the examples in the example directory by giving the command:

    arm-linux-gnueabihf-g++ examples/neon_convolution.cpp utils/Utils.cpp -I. -Iinclude -std=c++11 -mfpu=neon -L. -larm_compute -larm_compute_core -o neon_convolution

    This is what i get:

    I'm not sure what's missing.

  • Nevermind!! I figured it out 

  • what did u do? i am getting the same error?