GPIO in OS 4.25 and 6.20: Big difference?!


I just received my modem 2 weeks ago so everything is quite new…Fastrack Supreme 10, OS 6.20, Firmware R73, WIP plugin 5.10.
I need to use IESM Board (with a Wireless Module on it ) developed from a company. The company has given me the code for testing,documentation and everything. I just need to “Re-build All (Target)” in Eclipse and download it to modem.

The problem is during compiling (“building”), i received 200++ errors, all coming from gpio.c. After looking at the ADL documentation i realized that the code uses the old ADL, possibly from OS 4.25 but my OS is 6.20. The ADL documentation seems different (at first glance at GPIO Section in both documentation). What should i do?

I’ve contacted the company and still waiting for answer. I’m afraid he’s outstation or something. I hope not.

Help me! :cry:


Yes, the GPIO interface changed significantly!

The timer handler definition also changed.

If you need to maintain support for both versions, I suggest that you isolate all GPIO-related stuff into 1 file (or group of files) and then have one version of that group for the “new” API, and another version for the “old” API - use conditional compilation and OAT_API_VERSION to distinguish them…


Thanks awneil (again :slight_smile: ) for the reply!

but what did u mean with “…have one version of that group for the “new” API…”?
If u mean write a new gpio-related files based on the new OS, i think that’s a big problem because that means i have to study the code,try to understand how it works and then write a new one based on the new OS. This is the company’s job (gosh i hope they’ll contact me already!!) not mine.

I assume both have very different structure, right? If wavecom just change the name of all the ADL function in the new one but the structure is the same for both old and new, then maybe i can do that (read the code,try to convert it based on new OS). If it’s totally different then i have a big problem ahead.



You obviously need to use a device and firmware that meets their requirements: if their software requires OS 4.25, then you need to ensure that your device has OS 4.25 - just as you need to ensure that any PC software you buy is compatible with the PC that you have!

You really need to sort this out with your suppliers - both the hardware supplier and the software supplier.

Porting GPIO operations from OS 4.25 to OS 6.20 is quite a significant job in itself, and could be even more so depending on the structure of the existing code…


Why don’t you downgrade OS version to 4.25?


He bought these units specifically for use with this software - so they should have the correct firmware in them.
If they don’t, they should be replaced.

IIRC, The downgrade here is non-trivial…

See: viewtopic.php?f=3&t=3662&p=14156#p14156


I don’t get it. He has code for version 4.2x and he has OS 6.xx on modem. What a big deal to downgrade OS in modem?


I think this downgrade can’t be done with just AT+WDWL - it needs DWLWin.

And that means that it needs a special cable or adaptor.

And it is not properly documented by Wavecom.

ie, not a job for a novice.

Therefore, I recommend that he just returns them and lets the supplier do it - rather than fiddle with them, not succeed, and then have to get the supplier to sort it out.


You’re right awneil. I received a reply today and they just said to use AT+WDWL command and download 3 files they sent to me in email. It didn’t worked. After digging around im Forum, i found out that once i have the new R7.x Firmware,the downgrade is not possible.

I replied to them showing the above issue that it’s not possible to simply downgrade using WDWL command in R7.x and I take your advice by suggesting to them to accept my modem and they perform the downgrade themselves (using DWLWin).

I hope they accept my suggestion and don’t ask me to do it by myself because i’m afraid I’ll make mistakes (because I do have the Software DWLWin in the CD sent to me)


Is there a porting guide somewhere? I couldn’t find it…


There was one, but it wasn’t very useful. :angry:


Thanks for the answer!

I don’t know yet if the program I am working on needs to support both APIs… But if it does, I’ll certainly do what I have already done once with making ADL backward compatible to Basic API :wink: I’ll write a wrapper to implement the old functions by using the new ones :laughing: