Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Richard Erlacher
02/14/12 21:21
Read: 711 times
Denver, Co

#185969 - A couple of things ...
Responding to: Andy Neil's previous message
First of all, I believe you're probably right as to the ratio you suggest, with typical (poorly organized) code, regardless of whether it's in HLL or ASM.

Secondly, the ratio varies as the code size. If a guy is writing code that has to fit into 2kB, as in a "small" MCU, then he might be better off writing it in ASM because it's pretty easy to manage a file of about 10kB of text, which might assemble down to about 2 kB of binary. I've found that an object file of about 8kB generally springs from about 32 kB of assembly language. I don't know why a 'C' program that produces 8 kB of binary would be any less difficult to manage than 32 kB of ASM, since 'C' is so much denser than ASM.

Now, I was a HLL (mostly FORTRAN) programmer back in college and shortly thereafter, but, since the '70's, I've written mostly in ASM since then. I haven't found the ratios that have been bandied about here to be absolutes, though they certainly can occur. I don't find ASM as difficult to debug as HLL, and I don't find ASM as difficult to design as HLL. Once I get into the mode of thinking and writing in the instruction set and architecture of the MCU, it becomes quite clear how to do what needs to be done.

My own focus is generally on getting the job done at minimal cost, and not just to me but to those for whom I'm doing it. I don't want to force my clients to use a particular compiler, because, then, they have to buy it. Further, if they want to use a particular compiler, then I have to buy it. Up to now, not one of my clients has expressed a desire to use or to buy a compiler. They let me decide on what tools to use, and I provide them a copy of the "free" tools I use.

Now, while Erik and Andy have been using 805x HLL for a long time, at the start of which they probably knew the 805x quite thoroughly, they were quite qualified to choose their tools for that reason. I don't disagree that well-written HLL can make the maintenance of a sizeable body of code much easier to maintain. However, I have doubts as to whether extensive maintenance, beyond a few minor tweaks, is often necessary, as I've observed that products with long market life are scarce and over those few long market lives, the entire innards of the device are often completely changed, including the MCU and the associated peripherals. If the changes were just maintenance, then yes, HLL would have been convenient. However, the projects that I've most recently worked on, at least those that were 805x-based, were created in the early '80's, built on commercial 805x boards, and have been "upgraded" by dropping in a one-clocker on a daughterboard, with hardware to make it "play" with the old existing hardware. Those required relatively straightforward, though sometimes large, code mods, and HLL would not, IMHO, have helped me, or anyone else, a bit.

I'm of the opinion that a newbie who wants to start with a "small" MCU has a really hard row to hoe. It's easy taking a somewhat later generation, not necessarily "bleeding edge," MCU with a large on-chip code space, or even an older one with external code memory, and putzing around in ASM with the aid of a monitor in some sort of ROM, just to learn to use the core. When he's ready to do a serious piece of production work, he will then understand the basics, i.e. timers, counters, register set, flags, etc. not to mention the quirks and foibles of the instruction set. I don't maintain that ASM coupled with ULTRAMON51 is the only or even the best way to do production work, but it's a very straightforward way to develop hobby projects, and it doesn't cost a semester's tuition.

I doubt Andy or Erik would have easily succeeded plowing up new ground with HLL if they hadn't already possessed a firm knowledge of the 805x core.


List of 61 messages in thread
Which modern small 8051 should I use?      Scott Navarre      02/11/12 15:08      
   addition      Scott Navarre      02/11/12 16:02      
      contradicting yourself.      Erik Malund      02/11/12 16:45      
      Get on with SiLabs        Michael Karas      02/11/12 20:55      
         Thanks for all of your input!      Scott Navarre      02/12/12 17:24      
            power miser      Erik Malund      02/12/12 19:15      
               Re: Power Miser      Scott Navarre      02/16/12 02:48      
            Still Need the SiLabs Adapter      Michael Karas      02/12/12 19:15      
      Why?        Richard Erlacher      02/11/12 23:38      
   RE: 8-bit 8051      Andy Neil      02/12/12 02:01      
      SiLabs is sometimes a bit slow ...      Richard Erlacher      02/12/12 10:25      
         RE: "slow"?      Andy Neil      02/12/12 10:45      
            Well ... It might have been coincidental ...      Richard Erlacher      02/12/12 17:57      
   AT89S2051/4051 or ATLP2052/4052      Jan Waclawek      02/13/12 02:17      
      and lose all the goodies      Erik Malund      02/13/12 06:54      
         Onewire debug?      Per Westermark      02/13/12 07:22      
            tradeoffs      Jan Waclawek      02/13/12 07:43      
               Is a hobbyist not extremely likely to gain      Erik Malund      02/13/12 07:51      
                  JTAG      Per Westermark      02/13/12 08:04      
                     cost to debug      Andy Peters      02/13/12 09:44      
                        cost of AVR debugging "dongle"      Jan Waclawek      02/13/12 11:14      
                  You have to ask yourself ...      Richard Erlacher      02/13/12 08:07      
                     Beginners have even more reason for debug cells, i.e. ICE        Per Westermark      02/13/12 09:34      
                     WHAT, exactly, is a hobbyist likely to gain from built-in de      Andy Neil      02/13/12 10:48      
                        I still think it 6 one way and half-a-dozen the other      Richard Erlacher      02/13/12 21:37      
                           why go old fashioned      Erik Malund      02/14/12 07:29      
                              Where you sit determines what you see.      Richard Erlacher      02/14/12 08:00      
                     exactly this        Erik Malund      02/13/12 11:10      
                        Those are all things the monitor allows      Richard Erlacher      02/13/12 21:38      
                           please explain how the monitor allows ...      Erik Malund      02/14/12 07:37      
                              Monitors really not good choice for new designs/developers      Per Westermark      02/14/12 07:51      
                                 Describing Richards preferences      Erik Malund      02/14/12 08:16      
                              It doesn't help with 'C' code at all      Richard Erlacher      02/14/12 08:10      
                                 maybe not using that word      Erik Malund      02/14/12 08:19      
                     "Small" 8051      Scott Navarre      02/14/12 08:38      
                        RE: "Small" 8051      Andy Neil      02/14/12 09:15      
                        Productivity/quality really important for hobbyists too        Per Westermark      02/14/12 09:28      
                        the calculation      Erik Malund      02/14/12 09:39      
                           True cost comes in maintainance      Per Westermark      02/14/12 09:56      
                              I totally agree, however      Erik Malund      02/14/12 10:06      
                           Ratio?      Andy Neil      02/14/12 11:02      
                              all numbers are arbitrary      Erik Malund      02/14/12 11:26      
                                 but it's good to be ...      Andy Neil      02/14/12 12:43      
                                    Not needed      Per Westermark      02/14/12 13:29      
                              A couple of things ...      Richard Erlacher      02/14/12 21:21      
                                 RE: A couple of things ...      Andy Neil      02/15/12 00:52      
                                 neither does a SILabs toolstick      Erik Malund      02/15/12 09:34      
                                    Starting out, the old-reliable antiques are very easy      Richard Erlacher      02/15/12 21:46      
                                       Wrong conceptual level for majority of needs      Per Westermark      02/16/12 02:54      
                                       only somewhat true      Erik Malund      02/16/12 07:21      
                        First, Define Icc and Code Size Targets      Jim Granville      02/15/12 03:00      
                           It's more complicated than that      Andy Neil      02/15/12 04:55      
                           that is not enough      Erik Malund      02/15/12 09:42      
                              that is not enough      Jim Granville      02/15/12 13:30      
                                 which was what I posted      Erik Malund      02/15/12 13:49      
                                    ROFL      Jim Granville      02/15/12 14:52      
                                    Not a simple formula!      Andy Neil      02/15/12 16:03      
                  power      Jan Waclawek      02/13/12 08:12      
                     OCD != Emulation        Andy Neil      02/13/12 10:31      
               the particular hobbyist in question      Andy Neil      02/13/12 10:42      
                  It does allow him to maintain separation from the hardware      Richard Erlacher      02/13/12 21:41      

Back to Subject List