K
krw
Guest
In article <hl5gq4pk37khsh8h6fmsf7n5l8tbopt5sb@4ax.com>,
jjlarkin@highNOTlandTHIStechnologyPART.com says...>
if it's changed the finger is easily pointed. This has nothing to
do with stacks.
operation.
<snip>
<snip>
our engineering drives. How it gets there is important, though.
more interested in structures than function, though.
service them doesn't make their methods useless.
ever growing quantity).
supported. Simple scopes should be *simple*. Where is my 465?
jjlarkin@highNOTlandTHIStechnologyPART.com says...>
Absolutely. Variables are only within scope of only one module soOn Fri, 27 Feb 2009 10:04:24 -0600, krw <krw@att.zzzzzzzzz> wrote:
In article <250gq4hrqa3jq57lfvj2o52v0cpcirripi@4ax.com>,
jjlarkin@highNOTlandTHIStechnologyPART.com says...
On Fri, 27 Feb 2009 07:32:36 -0600, krw <krw@att.zzzzzzzzz> wrote:
In article <plreq4ld0sglrav4qje96alvjiek2n8vh9@4ax.com>,
jjlarkin@highNOTlandTHIStechnologyPART.com says...
On Thu, 26 Feb 2009 22:30:46 -0600, krw <krw@att.bizzzzzzzzzzz> wrote:
On Thu, 26 Feb 2009 20:24:11 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:
On Thu, 26 Feb 2009 15:46:00 -0600, krw <krw@att.zzzzzzzzz> wrote:
In article <UTDpl.1892$tw4.1160@nwrddc01.gnilink.net>,
bogusabdsqy@verizon.net says...
Rich Grise wrote:
On Thu, 26 Feb 2009 06:33:21 +0000, James Arthur wrote:
...
.SBTTL IRQ6 SERVICE
; The HITLOCK mechanism enforces a minimum irq-to-irq delay so
^^^^^^^^^^
IRQ-to-IRQ. There is no "irq". ;-)
Cheers!
Rich
Translating the original I paused at that line and pondered
nearly a full second, flipping it back and forth. It could
go either way.
IRQ_EN, IRQ1, or IRQ_HANDLER would certainly get capitals,
being actual hardware or software elements.
I wouldn't. To aid readability they'd be IRQ_En, IRQ1,
IRQ_Handler, or even InterruptHandler on my schematics, VHDL, and
embedded code.
Sorry, they violate the 6-character symbol limit.
Six characters? Only crappy tools had such draconian restrictions
thirty years ago.
Do I have to give all the money back?
For your coding transgressions, YES! ;-)
I like...
Flat structures
Fine. ASCII, preferably.
Everything global
Ick! Too much chance for screw-up. A simplified OO approach is
far safer.
Safer? Once my stuff works, I can count on it not breaking. And I
haven't had a stack overflow in years.
if it's changed the finger is easily pointed. This has nothing to
do with stacks.
Not necessary, and leads to other problems (see: scope).Simple state machines; no RTOS tricks
Agreed. State machines are simple. A common structure helps even
more.
Static memory assignment
Explain?
Absolute assembly, ram variables all declared and nailed at assembly
time. Their memory address is right there in the listing.
I get into trouble with copy/paste more than any other single editSingle source file
Ick! Reuse is important to me. Once I have a module correct I can
concentrate on other things.
My editor has advanced "copy" and "paste" features. I reuse code all
the time.
operation.
<snip>
You're not archiving the tools with the project, as you indicated.Mimimal, archived tool set; in my case, Crimson Editor, C32
assembler,
and a few homebrew utilities.
This si fine for very simple tools. It gets much harder with FPGAs
and impossible with ASICs. The larger the project the harder this
is to do. How do you handle schematics (one reason I favor VHDL
over schematics, BTW)?
FPGA configs are generated on the side, by my FPGA guy, usually a
top-level schematic and VHDL boxes. The Xilinx project is released as
a separate part number+rev from the uP firmware. I wrote a little
linker-like command-line program that builds a runtime image
(rom/flash file) from the assembler's absolute S28 output and one or
more Xilinx .RBT files. One batch file, GO.BAT, reassembles the source
and builds the final image. Typically takes a second or so to run.
<snip>
Sure, that's obvious stuff. Manufacturing doesn't have access toPrograms managed and released just like any other engineering
document, by rev letter; firmware installed by manufacturing just like
hardware.
Not sure I follow exactly what you're saying here. In general,
manufacturing puts the boot loaders on the boards when they're
made. The functional code is flashed at final assembly (during
ICT, ideally).
Manufacturing does it all, from formally released files and
procedures. That may be an eprom or may be a flash procedure or may be
files installed on a drive. But it's never hacked or short-cut by
engineering, and the configuration of shipped products is absolutely
known. Bastard versions, like a wrong mix of code and FPGA configs,
don't happen.
our engineering drives. How it gets there is important, though.
No, the means matter too. I'll agree that most programmers areThe process is fast to develop, fast to execute (as in microseconds),
easy to do and maintain, and produces bug-free, profitable products.
What's wrong with that?
Nothing is wrong with the end. I don't agree with all of your
means to that end.
But the end is all that matters. Too many programmers, maybe most of
them, care about the means more than they care about the end. They
mainly want to play programming games.
more interested in structures than function, though.
Those (large) problems exist. Just because you don't choose toYour process certainly WOULD NOT work in a large
project. Though I've had my fill of large projects. As an
engineer, they suck.
Yup. Part of the scheme for delivering reliable code is to restrict
the problem set. We do hard-embedded instrumentation, VME modules,
small embedded boxes, waveform generator type stuff. My methods
wouldn't scale to word processors or web browsers.
service them doesn't make their methods useless.
Many OO methods still apply to small project (where "small" is anBut the OO methods
that make sense for them don't really make sense for a 6000 line
bare-metal ROM-based instrument controller program.
ever growing quantity).
Even our Tek scopes don't have enough buttons for the dodadsI got rid of my new Keithley DVMs, and wish I could return our new
Aeroflex spectrum anayzer, because they are both full of buggy,
nightmare code that the vendors are powerless to fix.
supported. Simple scopes should be *simple*. Where is my 465?