A problem with wip_TCPClientCreate


#1

Hi!
I have some troubles with wip plugin. I need to add GPRS support to my embedded application. I added WIP Plugin Package at the project properties page and wrote some code to open GPRS bearer.
Everything was fine until I added a call to wip_TCPClientCreate. Open AT application fails to start when call to wip_TCPClientCreate is somewhere in the code. The function is only compiled and linked, not even called. Because it’s quite difficult to call it when my application doesn’t even start =(

AT+WOPEN=7 gives me error code #17, which means “bad priority value;
At least one task priority value is incorrect (not unique or too high value w.r.t.,the number
of tasks)”.
It’s very strange because there is only one entry in my task table.

// Application tasks declaration table
const adl_InitTasks_t adl_InitTasks [] =
{
        { entry_point,  32768, "main", 1 },
        { 0, 0, 0, 0 }
};

I don’t know if this can be a reason, but I couldn’t include wip.h file. It gave me compilation errors.

Description	Resource	Path	Location	Type
changes meaning of 'ascii' from 'typedef char ascii' (when compiling null)	firmware		line 106, external location: C:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.os.model.6.34.0.201007281407_6.34.0.201007281407\resources\ADL\basic\wm_types.h	C/C++ Problem
changes meaning of 's32' from 'typedef int32_t s32' (when compiling null)	firmware		line 43, external location: C:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.os.model.6.34.0.201007281407_6.34.0.201007281407\resources\ADL\basic\wm_types.h	C/C++ Problem
changes meaning of 'u32' from 'typedef uint32_t u32' (when compiling null)	firmware		line 42, external location: C:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.os.model.6.34.0.201007281407_6.34.0.201007281407\resources\ADL\basic\wm_types.h	C/C++ Problem
declaration of 'ascii* wip_fileInfo_t::wip_fileInfo_entry_t::ascii' (when compiling null)	firmware		line 77, external location: C:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.plugin.model.WIP.5.40.0.201007290812_5.40.0.201007290812\resources\WIP\itf\wip_file.h	C/C++ Problem
declaration of 's32 wip_fileInfo_t::wip_fileInfo_entry_t::s32' (when compiling null)	firmware		line 76, external location: C:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.plugin.model.WIP.5.40.0.201007290812_5.40.0.201007290812\resources\WIP\itf\wip_file.h	C/C++ Problem
declaration of 'u32 wip_fileInfo_t::wip_fileInfo_entry_t::u32' (when compiling null)	firmware		line 76, external location: C:\Program Files (x86)\Sierra Wireless\Embedded Software\com.wavecom.openat.ide.spm.lib.plugin.model.WIP.5.40.0.201007290812_5.40.0.201007290812\resources\WIP\itf\wip_file.h	C/C++ Problem

So I included only files that was really needed to compile source code.

#include "wip_net.h"
#include "wip_inet.h"
#include "wip_channel.h"
#include "wip_tcp.h"
#include "wip_bearer.h"

App code is written in C++. Please tell me why my application fails to start when there are calls to wip_TCPClientCreate. I really need some help. Thanks.


#2

https://forum.sierrawireless.com/t/build-errors-when-adding-wip-to-project/4806/4


#3

Thank’s awneil but I still get 17 error code even with wip_file.h fixed. What is wrong with the priority level? I can’t figure out what value should I put in the adl_InitTasks table =(


#4

OK, the problem is solved. Application fails to start only if built with ARM EABI GCC Toolchain. ARM ELF GCC works fine.


#5

What “error codes”, exactly, did you get?


#6

No, the problem is not fixed - you have just happened to avoid it (for now)…

This must mean:

  • There is still a “latent” bug in your code, waiting to bite you…
  • There is some problem in the SiWi suite related to ARM EABI GCC
  • Both of the above!

Addendum:

Just remembered that you’re using C++

You do need to remember that C++ is still a minority interest in Open-AT development - so it could be that SiWi have just not yet got around to (fully) supporting C++ for ARM EABI GCC…


#7

I suppose that sierra wireless just did not properly tested EABI for C++. Even sample applications fail to start to when rewritten in C++. I can not rewrite all my sources in C totally - there is way to much code. So I have to be satisfied with this “solution”, there is nothing else that I can do.

at+wopen=7
+WOPEN: 7,17