Code (Salvo) compiles fine under Cx51, but results in a WARNING L25: DATA TYPES DIFFERENT message when compiled under C-ARM. This only affects pointers (they're all pointers to structs), where they're declared in one module (mem.c) and accessed in another (init.c) via extern declarations. Compile options on both files are the same, no other issues. I've seen (and resolved) this sort of problem before in Cx51 when there was a mismatch between a source file and a library I had generated. In this case, there's just two source files involved, so I'm a bit stumped. Can anyone help? Thanks,
Note that the CARM Library is translated with 'char' configured as 'unsigned char'. Maybe this is the reason for the type mismatches.
Thanks for the replies -- all Salvo types are explicit, so I don't think that's a problem. But I readily admit that I don't fully understand / appreciate how the CARM's library settings will affect Salvo. I've sent a set of example projects (Cx51+uVision2, DK-ARM+uVision3) to RK on Germany ... they illustrate how, when using the same code, the warnings only occur in DK-ARM, and only with pointers to structs. We'll see what comes back ... BTW, the LA crash was apparently due to additional leftover project files in the same directory. Once I deleted them, it stopped crashing.
Update -- these problems are fixed in CARM v1.4. Now I'm facing a DATA TYPES DIFFERENT between an assembly module (Thumb mode) and mem.obj -- but that's probably easy to fix. Thanks to all!
Update -- this DATA TYPES DIFFERENT problem persists with some combinations of assembly and source code -- I'm working with Keil to resolve them.
Update: This has now been fixed by Keil ... I suspect it will be included in the next CARM release ...