Today I created 6 new projects to run under uVision 3. Every time I had to:
============================================================ Gary Lynch | To send mail, change no$pam in lynchg@no$pam.com | my domain name to stacoenergy
Actually, for C51 projects, the XTAL value is in the .opt file. :-( Yeah. But the default value for that is taken from the device database. Which in turn is not completely out of bounds for editing itself. C'mon guys, show a bit of creativity! ;-) And BTW: I'm reasonably sure you can configure defaults for books and some other things in ...\keil\tools.ini without too much risk of breakage.
it seems that Keil address the IDE to the lowest common denominator. you can not replace the editor with a real editor. you can not create multiple variants of same code (e.g. for various types of the attached display) in one run. you can not do "dynamic replacemet" I got that far, had I gone on I would have found, I'm sure you can not you can not But if, like a good little programmer, you sit in your little corner and behave "normally" it seems OK Thank heaven for the .bat Erik
"you can not create multiple variants of same code (e.g. for various types of the attached display) in one run." True - a "Build All Targets" button would be useful. "you can not do 'dynamic replacemet'" What do you mean by that?
"I'm reasonably sure you can configure defaults for books and some other things in ...\keil\tools.ini without too much risk of breakage." The default set of books is defined in TOOLS.INI. The file extension stuff is in the .opt file alone.
"you can not do 'dynamic replacemet'" What do you mean by that? My "variants" use ~20 common files and ~3 files are "picked" e.g. for variant 3 copy ralph.cvar3 ralph.c Erik
True - a "Build All Targets" button would be useful. not really I have ~7 products each with 1-23 "targets". Were I to build the product with one "target" I would not want to spend the time to build the one with 23 "targets" at that time. I have sent Keil an example of what I am doing and - with no grudge, it is rather "advanced" - I do not see it becoming possible in the IDE. I am happy with my .bat procedure refined over 5 years. My acceptance of the fact that an IDE will not be able to do this in my lifetime, has stopped me arguing the shortcomings for any other purpose than getting other users with "advanced" needs, in this case Gary, to realize that you can do it beautifully in a .bat file and if you try to get such a setup wrestled into the IDE you will lose. You get (maybe with a new release) one step ahead, just to run into the next block. Erik
Those with complex project structures that want a more powerful build environment might be interested in Jam. http://www.perforce.com/jam/jam.html It's free. It's sort of like a smarter and more powerful make facility.
"Those with complex project structures that want a more powerful build environment might be interested in Jam." Looks interesting! Are you recommending this from experience, or is it just something you've seen?
C'mon guys, show a bit of creativity! ;-) Actually I'd rather put my creativity in producing some nice code instead of messing around with the tools.
"Actually I'd rather put my creativity in producing some nice code instead of messing around with the tools." Absolutely! Tools are supposed to help - not get in the way!
Erik, we're all wlel aware that you're pretty much dead-set against the IDE, so it's probably pointless to tell you this, but FWIW: My "variants" use ~20 common files and ~3 files are "picked" e.g. for variant 3 copy ralph.cvar3 ralph.c Yes, you can do this kind of "dynamic" build with uVision. You don't even have to copy files. Instead you select which files form a target on a per-group or per-file basis. I.e. you would have the union of all files of all variants of the project listed in the project sources, and each target gets to choose which files it wants to use, and which not.
Erik, we're all wlel aware that you're pretty much dead-set against the IDE, so it's probably pointless to tell you this Were I to only work with one variant of one program, I would be in the IDE except for the editor and ICE issues below. I would love to use an IDE, However, for me as things are it is mandatory for me that 1) It allows any editor to be integrated 2) it allows integration of your favourite ICE. 3) It allows "scripts" to do "abnormal" things 4) It is easier to do the above than in a .bat file 5) It allows build x, build group y, build all 6) it allows an organized directory structrue for those of us that maintain and enhance several variant of several products. 7) THE BIGGIE: it allow all the above without EVER requiring a change to be made in more than one place. please do not waste your time telling me that one of the above is possible, if not all, forget it I achieve all the above with my setup and why should I give that up just to "get in the fold". Also, as I said: You get (maybe with a new release) one step ahead, just to run into the next block. Yes, you can do this kind of "dynamic" build with uVision. You don't even have to copy files. Instead you select which files form a target and have 27 targets for the variants of one product? no, thank you (see 7) above) the real issue is that in "my world" I need, in order to keep my snity to have to specify a) what is so for all I do b) what is so for a group of what I do c) what is so for a subgroup of what I do d) what is so for a a thing I do I absolytotally abhore anything that in any way require that you have to do something in 2 or more places, I have seen more problems from "you just do that in all 27 target specifications" than anything else. Erik In case someone want an example: I yesterday added a version (#28) for another sign and, to achieve that, I added a few things in the common files. While debugging the new variant, I build that variant only, but every 10th build or so I built all to see if the added code had advers affects for some other variant. (my typical problem is DATA overrun when variables are not #if'ed out properly). When that was done, I had to do some work on the unit driving the above to implement the ability to drive a new capability that sign has.
I've used Jam before in a much larger environment. It takes a little bit more startup effort than make, unless you're content with the "Jamrules" out of the box. The hardest thing to get used to is the quirk of their parser than means the terminating semicolons must be separated with a space, e.g.: Target1: Depend1 Depend2 ; // ok Target2: Depend1 Depend2; // bugged This makes sense only if you're a Jam developer working on the parser and you understand that these lines are really function calls with unusual syntax and that a semicolon is a perfectly legitimate third parameter. The rest of us just get used to it. On really big projects, you tend to have each file as well as the semicolon on a separate line anyway, so you can easily add and delete from the list without worrying about which file happens to be the last one, or the list in some variable. On the bright side, Jam is much more powerful than make, extensible and customizable, smarter about dependencies, and much much better at handling projects that live in nested directory structures. I haven't yet used it with my 8051 projects and the Keil tools. That set of projects is just barely teetering within the limits of what uVision can handle.
Erik, we're all wlel aware that you're pretty much dead-set against the IDE, so it's probably pointless to tell you this Hans-Bernhard, I will gladly send you one of my .bat files and if you can make the IDE do as I do in these files, I will print this entire thread on paper and eat it. Erik