I agree with skos on the information provided. ADL library is more flexible in the sense that it allows you to give you callback functions which are called whenever any event occurs. In Open-AT Basic mode, all the events come in the wm_apmAppliParser () function. So, in this case, the modularity is less.
ADL mode provides you build large applications and moreover, the TCP/IP libraries which are shipped along with Open-AT are compatible only with ADL mode.
Of course, you have the disadvantage with ADL that your application size is a little larger but compared to the advantages that you get (like more modular application, more flexibility in choosing third party library), this trade off is insignificant.
Now, for your question that wm_osDebugTrace () is not provided in ADL library but is provided only in Basic library is that ADL library provides you a macro TRACE which works quite similar to wm_osDebugTrace (). I don’t know but internally it might call wm_osDebugTrace () function.
In case, you applicaiton is built using ADL mode, the rte_wmadl_303.b03.lib library is linked because this library has the definitions of all the functions that are used in ADL mode. Similarly rte_wmopenat_303.b03.lib is linked with an application created using basic mode because all the wm_xxxx() APIs are defined in this library.
However, you should note that some functions like (wm_strcpy, wm_strncmp() etc) work both with ADL and Basic mode.
I hope the above explanation answers some of the queries in your mind.
Open AT Fan.