7 years, 8 months ago.

mDot LoRa Connect example not compiling

Using the online mBed Compiler with the Multitech mDot platform as the target I cannot get a simple LoRa Connect example to compile. I get these three errors without me changing a single line in the example:

1. Error: Undefined symbol rtos::Thread::Thread(void(*)(const void*), void*, osPriority, unsigned, unsigned char*) (referred from mDot.o).

2. Error: Undefined symbol NVIC_SetVector (referred from WakeUp_STM_RTC.o).

3. Error: Undefined symbol rtos::RtosTimer::RtosTimer(void(*)(const void*), os_timer_type, void*) (referred from Link.o).

I have been trying to roll back revisions of the "mbed-rtos" and "libmdot" libraries but that has not fixed the errors. It seems to me the examples should be rock solid and free of any compilation errors, but obviously they're not . Is anyone else seeing this problem?

Experiencing the same issues with the mDot_AT_Firmware program. Happens after updating the mbed-rtos and mbed libraries too.

posted by Joe Markel 29 Aug 2016

Did you click the 'Update libraries' checkbox when importing the project? Try it without doing that.

posted by Jan Jongboom 30 Aug 2016

As of today (2017-06-15) it worked after doing the following:

1. Import Dot_Examples project

2. Visit https://developer.mbed.org/teams/MultiTech/code/libmDot-mbed5/ and click Import button and as Target path specify the Dot_Examples project.

3. Fix FB_EU868 error by correcting the reference to FB_868.

The frustrating bit is that the correct library, libmDot-mbed5, does NOT appear in the list of libraries to import when you choose Import Library from the IDE. I searched with the terms 'libmdot', 'mbed5', etc. (It just occurred to me, maybe that's because the search is case sensitive.)

posted by Frank Rose 15 Jun 2017

2 Answers

7 years, 7 months ago.

I try to guess the possible cause, for future readers.

At the time the libmdot was compiled, the mbed environment was such that the methods/constructors listed above were not fully inlined.

However, in current mbed environment, the methods/constructors above are now fully inlined: the linking step with libmdot (binary) fails because their implementation is not to be found in any mbed object file.

I guess that the solution is either to recompile the libmdot library or tweak the mbed environment so that methods/constructors are implemented and retained in object files again.

Resham, could you share how you solved this problem?

Thanks!

Accepted Answer

Iani, when you import the program, do not tick the 'Update libraries' checkbox, that will leave you with some older dependencies, but it compiles and runs fine (not really a fix, but a workaround :-)).

posted by Jan Jongboom 15 Sep 2016

And make sure to use the library `libmDot-mbed5`

posted by Frank Rose 15 Jun 2017
7 years, 7 months ago.

Worked without updating libraries. Thanks.

Resham, could you share how you solved this problem? Thanks!

posted by Iani Cosimo 14 Sep 2016

Same for me.

Another trick is that in the US, with the Multitech gateway, you will need to set the sub-channel to 2:

static uint8_t config_frequency_sub_band = 2;

posted by Pete Hoffswell 14 Jan 2017

Hm, doesn't work for me though :( This is what I did: 1) New, New program, platform "MultiTech mDot", template "Example programs...", unticked "Update this program and libraries to the latest revision"

2) Import, Libraries, libmDot from Multi Tech

3) Compile

After I fixed compilation errors like "mDot::FB_EU868" -> "mDot::FB_868", I get the linking errors undefined errors.

So I guess something changed in the mean time :(

Anyone knows who to proceed?

posted by Mark Ruys 04 Feb 2017