u-blox / ubxlib

Portable C libraries which provide APIs to build applications with u-blox products and services. Delivered as add-on to existing microcontroller and RTOS SDKs.
Apache License 2.0
303 stars 92 forks source link

undefined reference to `k_thread_system_pool_assign' #174

Closed mabroens closed 8 months ago

mabroens commented 10 months ago

Hi when building zephyr 3.4.0

I end up with: [build] C:/zephyr/repo/ubxlib/port/platform/zephyr/src/u_port.c:201: undefined reference to `k_thread_system_pool_assign'

does any one have any suggestions on how to solve this?

RobMeades commented 10 months ago

It looks like, somehow, your build is not picking up the ubxlib default configuration from port/platform/zephyr/default.conf; it is in that file that CONFIG_HEAP_MEM_POOL_SIZE is defined, which is how Zephyr brings in k_thread_system_pool_assign().

That default.conf should be brought in when you include ubxlib as a Zephyr module because the ubxlib.cmake file in the ubxlib Zephyr module directory pulls it in.

mabroens commented 10 months ago

Hi Rob, is theer someway that i can have the ubxlib locally in my oot project folder? i guess that makes configuration much easier and i prefer to have everything checked in in one local project folder/repo rather than doing an update or not having the proper verion over multiple machines.

RobMeades commented 10 months ago

I'm not really sure: Zephyr is not something I build with myself I'm afraid.

All that should matter, from the point of view of ubxlib, is that you pull the ubxlib CMake file zephyr/ubxlib.cmake into your application's CMakeLists.txt.

Provided you do that it shouldn't matter where the ubxlib directory is.

RobMeades commented 10 months ago

So, for instance, if you bring ubxlib in as a sub-module of your project and then do the referring to the zephyr/ubxlib.cmake from your CMakeLists.txt file into there, that should be fine.

mabroens commented 10 months ago

Hi Rob, okay that sound possible indeed. let me first try to get it operational out of the box and then relocate it.

thanks

RobMeades commented 9 months ago

Did you resolve your issue?

mabroens commented 8 months ago

Hi Rob,

so sorry for the delay and thanks for the remainder. i tested it today and yes after adding follwoing to my proj.conf i am now able to compile and start testing ubxlib.

CONFIG_HEAP_MEM_POOL_SIZE=4096
CONFIG_MINIMAL_LIBC_MALLOC=n

I am now as we type trying to implement the msg_main.c https://github.com/u-blox/ubxlib/blob/master/example/gnss/msg_main.c where at the moment i get an error on: if (uGnssMsgSend(devHandle, pBuffer, length) == length) but i'm now debugging that.

Thanks so much for the pointer

Br Martijn

RobMeades commented 8 months ago

Good stuff, glad to hear things are moving in a forwardly-kinda direction. Please close this issue when you think appropriate; feeling free to raise more as you go of course.