Page 1 of 1

Is C51 V5.5 ok?

PostPosted: Wed Oct 16, 2002 9:06 am
by dr_when

I am evaluating the C51 ver of Salvo.

I'm still using Keil C51 Version 5.5 as we can't justify the >$1000 to get to ver.6.2.

Will Ver 5.5 work with Salvo. My first attempts give me the following

LINE: #pragma OT(8,

It appears to choke on the Salvo.h file.

Re: Is C51 V5.5 ok?

PostPosted: Wed Oct 16, 2002 9:53 am
by aek

I have no idea if it will work with pre-v6 C51, and we have no way of testing (we did the port around the time of v6).

But, it certainly might ... the particular problem you're having is that v6 has great optimization levels than v5. So, if you change that instance (it's in salvoincportkc51.h) to something that a v5 compiler will accept, then it probably will work. That pragma is in there because v6 has a level-9 optimization setting that screws things up -- anything below 9 seems to be OK.

So, as you encounter these errors, grep the Salvo files to find where they occur, and then change them to be back-compatible with v5. I think that particular #pramga is the only one in the code, so your job should be reasonably easy.

The question then is whether the libraries generated under v6 are compatible with v5 -- only you can tell me that by trying it.

Let me know if it works.


Re: Is C51 V5.5 ok?

PostPosted: Thu Oct 17, 2002 4:01 am
by dr_when

Thanks for the tip. I went into portkc51.c and changed the optimization Pragma to 6 and things compiled OK. Now linking and debugging...

I'll let you know how it goes.

Re: Is C51 V5.5 ok?

PostPosted: Thu Oct 17, 2002 5:10 am
by dr_when
Oh well,

This got too ugly too fast. Because I don't have the latest C51 version I can't use Salvos project files which means my linker can't find the libraries it needs. Putting in #define OSCOMPILER OSKEIL_C51 into salvocfg.h did nothing and actually I can't successfully compile main.c (tut1) because the compiler can't find Init() declaration.

For sure, I can't spend $1100 to upgrade C51 just to find out that Salvo won't work for me anyway.

This crap makes development tiresome... The tool makers like Keil want to nickel & dime you with upgrades that are hard to justify to the boss and if you don't you're screwed because third party vendors like Pumpkin only use the latest versions. So I have to try to justify spending thousands when I don't know if the solutions will even work.

Re: Is C51 V5.5 ok?

PostPosted: Thu Oct 17, 2002 5:44 am
by aek
Hold on ... Don't give up just yet.

It can't find Init() because the project files define SYSI and MAKE_WITH_FREE_LIB in the IDE.


1) Define those two symbols in the v5 IDE (I presume it's uVision).

2) Add the following paths to the include search path:

the project's current directory (e.g. salvo ut u1sysi)
salvo ut u1

3) You probably don't need to define OSCOMPILER or OSTARGET in salvocfg.h

4) The library you should use is salvolibsfc51sdab.lib. This library will work for all the tutorials (it's a bit large for the first two, but never mind that). 's' - small memory model, 'd' - objects in data space, 'a' - all functionality (except timeouts), 'b' - mainline event signaling only.

5) Also, I'm pretty sure there's a demo version of uVision + C51 v6. I've used it at ESC in a pinch ... You could install that somewhere and use it to view the project settings as a guide, then "transfer" them to v5.

We try to minimize the number of files in our example projects, etc. for maintenance purposes. To do so, our projects use defined symbols and multiple include path settings to set things up right and find the right files. That info is "stored" in project files, so without them it's admittedly a little hard. But what I've outlined above for you should work.

Good luck!

[This message has been edited by aek (edited October 17, 2002).]

Re: Is C51 V5.5 ok?

PostPosted: Thu Oct 17, 2002 7:16 am
by aek
One more thing ... you're trying to run Salvo uVision2 projects.

If you follow our App Note and do everything from scratch (i.e. your own main.c, your own salvocfg.h, your own v5.x project), then you should also be able to get things to work (assuming the libraries are compatible with C51 v5.x) ...


Re: Is C51 V5.5 ok?

PostPosted: Mon Oct 21, 2002 9:45 am
by aek

Well, we gave it our best shot ...

BTW, one advantage of Salvo Pro is that you get all the source code. Source-code builds are reasonably compiler-release-independent, so I wouldn't be surprised if you could use Salvo Pro for 8051 family successfully with Keil C51 v5.x.

In a case like that (user with a compiler version we've never seen) we can't really support run-time problems per se, but you'd still get support in whatever areas we could help you with ...



[This message has been edited by aek (edited October 21, 2002).]

Re: Is C51 V5.5 ok?

PostPosted: Mon Oct 21, 2002 11:59 am
by dr_when
Thanks for the effort AEK... I got close by following your suggestions but it looks like the libraries may not be compatible (and version 5.5 {Uvision 3.3) cannot handle long filenames). I had to rename the library to a name < 8 chars but still got link errors. I guess when I can upgrade Keil to ver 6.xx I can then re-examine Salvo (but both together will cost ~ 2K$).

Thanks again,

the doc

Re: Is C51 V5.5 ok?

PostPosted: Sun Oct 27, 2002 11:37 am
by aek
Just a short note -- Salvo v3.1.0 for 8051 will be generated with Keil C51 v7.x ...