From: Ian Bell on
Jonathan Kirwan wrote:
>
> Compromises and tradeoffs are the rule in my life.

They are the rule of *any* engineers life. Anyone for whom this is not true
is not an engineer.

Ian
From: Yuriy K. on
Joerg wrote:

>> This is exactly what manager selecting CPU core is doing.
>
> The managers do not select the CPU core. A good manager educates the
> staff in business matters. For example, how to be or become a good cost
> thinker, what the importance of second-source is and so on. Then good
> engineers will arrive at the proper CPU selection all by themselves :-)

Good. Finally some reasonable description of managerial job.
But it has nothing to do with the managers looking for the engineers who
can specifically program x51 core.

>>>> BTW, how many managers were polled to get these results?
>>> No need to for me.
> Ahm, I am not alone with this opinion. Not by a long shot.

Agreed. There may be couple others, too...

>>> Our apps are a lot more demanding. Realtime stuff in assembler, other
>>> designs in C.
>>
>> Necessity to use assembler usually points to the inadequate processor
>> selection.
>
> For hardcore realtime apps the is no alternative to assembler yet.

What is *you* definition of "hardcore realtime"? I do *hard* realtime
all the time. No need for assembler at all. Just do some thinking
*before* the coding and choose proper processor for the job.

>> :) These people never heard word transistor either.
> My clients know them very well.

World is not limited to EE. :)

--
WBR, Yuriy.
"Resistance is futile"
From: Yuriy K. on
John F wrote:

>>>> Necessity to use assembler usually points to the inadequate
>>>> processor selection.
>>> You can't mean what you are saying here.
>> Yes, I can and I do. Assembler is needed in a very few, very special
>> cases.
>
> No. It enables you to do a lot of things on hardware you would have
> tossed and bought something three times more expensive.

Yes. For typical processor (excluding specialized processors DSP and
peripheral controllers like PIC) C is only 20-30% less effective than
assembler. Depend on task it may even generate smaller code.

>>> I even write ASM on high
>>> speed DSPs to get the best out of the material.
>> DSP is one of these special cases.
>
> But not the only one.

No. As usual there are very rare special cases when assembler is really
necessary. As long as they kept rare it is not a problem.

>> And even for DSP assembler should not take a big percentage of the
>> code.
>
> What do you mean? By LOC? By development time? By execution time?

By the source code size.

Best optimization is the algorithm optimization. Writing in assembler
fast interrupt or inner loop could be acceptable as a last resort.

>>> If you write an
>>> interrupt-routine in C it says that you don't care about timing at
>>> all. That's it.
>> I write all my interrupt routines in C. It means the proper
>> processor
>> selection and good task division between interrupt and
>
> And? :-)

And the rest of the software. Minimizing tasks you need to do in the
interrupt is very helpful.

> I have to disagree. Assembler is a very important instrument. If you
> aren't able to use it you shouldn't do embedded systems IMHO.

:) Unfortunately, I did quite a lot of x51 assembly programming. Just
did not know better at that time. Fortunately, these days were long ago.

>>> It shows your ignorance to hard realtime constraints.

Hard realtime constraints have nothing to do with programming language.
BTW it can be a hard 10 seconds response time. :-P

>>> Compiler- and optimisation-independent timing is _very_ important.
>> That's what timers, compare/capture units and other good hardware
>> stuff is used for.
>
> Not at all. You might still introduce nasty glitches in mixed
> signal-designs, phase noise in digital modulation systems if you don't
> equal out conditional branches...

You can screw up any design in a million different ways in any kind of
language. I could believe that you have specific constraints in the
particular design. I could not believe that using assembler is the only
solution or even the best solution.

--
WBR, Yuriy.
"Resistance is futile"
From: Dave on
On Thu, 07 Sep 2006 22:32:02 +0000, Joerg wrote:

>
> Yep. He who thinks assembler is all stone age has probably never
> programmed an engine control or something like that. There might only be
> milliseconds between loss of loop lock and a destructive detonation,
> pieces raining out of the sky and all that.

Interesting example. I started programming in 68K assembly language many
years ago and still use it. Over the last ten years, engine control
software I have written has been sold in probably 15-20 million cars. And
is still being sold. _Very_ little of the software is done in assembly.
Some of the initialization code needing access to processor registers
after power-up is in assembly. Also in assembly is "wrapper" code for one
or two ISRs and none of these dealt with any engine control functions.
The only significant use of assembly is in electronic throttle control
where dual software paths are used. One path is assembly so as to be able
to choose different registers and instructions from the higher-level
language code. The SW which deals with loss of lock from the engine
timing sensor is in the HLL, BTW. ;-)

A rough count of lines of code for a recent model year (V6 engine) is

Assembly 4288 2.97%
C 7411 5.13%
Modula-GM 132891 91.91%
---------------- -------
Total 144590

The C code is a recent addition and is used only for CAN communications.
Of the C compilers I have looked at for 68K use (Diab, Metrowerks), none
could generate 68K code to compete with the M-GM compiler.


~Dave~
From: Yuriy K. on
Joerg wrote:

>>>> Very good example. I vote for today's software over any 10-years old.
>>>> And definitely over any 25-years old software...
>>>
>>> Sometimes, older stuffs are better.
>>
>> For example?
>>
> OrCad SDT-III 3.22

Inferior to almost any current PCB design package. Very limited capability.

> Filter Design (Mildenberger, unfortunately not in English)

Not familiar with.

> MS-Works
> DOS-Word

Inferior to current MS office set. Or even to OpenOffice.

Bad examples.

--
WBR, Yuriy.
"Resistance is futile"
First  |  Prev  |  Next  |  Last
Pages: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Prev: Tiny Bootloader
Next: Link&Locate 86?