??? 08/06/09 18:51 Read: times |
#168228 - Do you really want to hide from reality? Responding to: ???'s previous message |
Per Westermark said: I believe you see a boogieman behind every bush. You must be in league with the software vendors.
A full version that is time-limited would be enough for many companies to create their production code on.
They write all code before getting the evaluation version. Then spend 30 days testing and debugging. I think it's much, Much, MUCH worse for a software vendor to publish a work product that is not in every testable way absolutely perfect, even if they fix it later, than for a couple of dozen thieves to steal their product in the way you describe every day. Next thing - it isn't so easy to count time, unless you have a real hw lock, or the software is constantly in contact with a server on the network. You need something that the end user can't manipulate. The guy who wrote "Pretty Good Solitaire" seems to have figured it out just fine. Others have too. That's a really fine set of solitaire games that has brought amusement to lots of folks, yet doesn't cost much. I'm not a game player, but my mother was. She liked the thing. Anyway - most 8051 have very simple timing, so switching between a large or small table doesn't really matter. That is completely different from programming on PC-class hardware, where you need to think about alignment, cache line sizes for several levels of caches, cost of pipeline stalls etc. Just what has PC programming to do with the subject at hand? MCU programmers should know, understand, and be able to simulate precisely the behaviors of the MCU they're using. If their compiler doesn't do that to the nearest clock cycle, it's rubbish! I really can't see why you can't test exact timing with 4kB code size. And if you are so skilled as you say you are with assembler - just read the assembler instructions generated by the compiler and determine the code quality. Don't see problems all the time. See possibilities. Problem is: You are scared that a serious evaluation of the Keil C compiler will show it to be way better than you want it to be. First of all, writing a dispatch loop in ASM produces a VERY short (fewer than a dozen bytes) bit of very fast code, and I don't know from day to day what a compiler will do with it. A multilevel dispatch loop uses multiple tables, one for each level. If you have up to 16 input bytes, then it will need at least 16 tables, possibly many more, depending on how many branches in the dispatch decision tree, but generally speaking they're all pretty much the same length in time. If each of those is 256 bytes long, i.e. has 128 jump addresses, that's quite a bit of code space. With a teensy processor core like 805x, where you have a small stack, you don't want to chew up stack space with calls. Moreover, you don't want to chew up the time, either. Now, is there a KEIL version with 4kB of code support that runs on non-SiLabs MCU's? Is there a simulator from KEIL that produces precise and correct oscillator cycle counts when external memory accesses available on, say, the DS89C4x0's are involved, with external memory cycle counts variable due to software? As you can see ... they really only support the "classic" model timing. Do you still use that? It's no different with other compiler vendors. That makes the simulator essentially useless. Actually, you can't TEST anything in a simulator. All you can do is count cycles and hope the hardware resolves the signal propagation. You can't really TEST anything in a debugger, either, since the debugger doesn't run at the oscillator rate, as it has to stop for you to trace, modify, or whatever. ASM allows you to specify precisely what will happen. If you can write the program in ASM, you can understand what's going on because there's no compiler to shelter you from your own ingorance, which is what many people want, and there's no compiler to hide what's going on, either. Once you've written it in ASM, you already know where the problems are likely to occur, and can focus on those interactions that may prove troublesome. In HLL, you won't even see them. Sometimes, I guess, that's a good thing. It prevents you from knowing how nearly you've failed. RE |