PlatformIO Community

Enabling uTensor libraries (not available via Library manager)


#1

Hi,

@maxgerhardt helped me resolve a similar issue in this thread. Also I noticed there was a similar issue link posted earlier and resolved similarly.

I tried the same technique for the uTensor libraries but it has not worked, what could I be doing wrong please? uTensor link

Image below shows where I copied the libraries into and the error I get on compilation.


#2

Two ways:

  • Resturcture the library so that uTensor has two folders: include/ (all .h/.hpp files) and src/ (all .cpp files)
  • add the appropiate include flags to the platformio.ini, e.g.
build_flags =
	-I lib/uTensor/core
	-I lib/uTensor/loaders
	-I lib/uTensor/ops
	-I lib/uTensor/util
        -I lib/

#3

Hi Max,

Thanks for jumping in again to help. I should have mentioned that I did try that structure /include and /src and moving the files but it gave the same error. Let me try the second method and report here.

Meanwhile I am trying this and will report on that too:

lib_extra_dirs = /Libraries/uTensor/uTensor


#4

Since the cpp files include the file as uTensor/core/tensor.hpp, i.e the full path starting from uTensor, actually the method build_flags = -I lib/ should work.


#5

Hi Max,

I think the build_flags = -I lib/ worked. The ‘headers not found’ type errors don’t show up. The image below shows the host of other errors that came up - but I think they are code issues of the original uTensor library?

Thanks for helping. Also if you think this is now a issue with the library is there something you can suggest please :sweat:


#6

Can you upload your current project so that I can take a look at it? (and execute the ‘Clean Project’ target so that you don’t upload the .pioenvs folder)


#7

Dear Max,

Sorry it took me some time to understand what you meant by “Clean Project”, .pioenvs folder etc. I couldn’t find where to run that command - so I’ve uploaded the project to a git repo but made sure .pioenvs was in the .gitignore file

I hope you are able to access the repo. here> git repo


#8

It was using the an old C++ language version for compiling which doesn’t have the features needed by uTensor. Finally it needs -D TARGET_MBED to prevent uTensor_util.cpp from trying to use filesystem function on a microcontroller with no filesystem (though you can add one using e.g. LittleFS). I can’t pull-request on your custom-domain github, so see my repository https://github.com/maxgerhardt/pio-utensor.

arm-none-eabi-objcopy -O binary .pioenvs\disco_l476vg\firmware.elf .pioenvs\disco_l476vg\firmware.bin
Memory Usage -> http://bit.ly/pio-memory-usage
DATA:    [=         ]  12.9% (used 16920 bytes from 131072 bytes)
PROGRAM: [===       ]  27.0% (used 282944 bytes from 1048576 bytes)
 [SUCCESS] Took 128.48 seconds 

#9

Dear Max

This solved it! Thank you so much.

Much to learn from you. I need to understand some of what you did – but I will save the questions for some other time.


Rajesh