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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/07/04 20:46
Read: times


 
Msg Score: +2
 +2 Informative
#82721 - "driver".
Responding to: ???'s previous message
I don't know if I missed something but it seems my yesterday's post got lost somehow, let me just repeat then...

This case got famous and details visible because recently Lexmark sued a 3rd party ink cartridge manufacturer for alleged copyright violation as they copied the copyrighted code. The case went like this:
Lexmark manufactures printers and different kinds of ink cartridges. Their modern printers contain a feature to correctly measure amount of ink in types of cartridges not yet designed at the time when the printer is manufactured, using the cartridge movement motor torque, without limiting properties like weight or shape of the cartridges. The problem is that with shape, weight and some other properties of the cartridge, the formula of calculating the level of ink changes, and it can't be programmed into the printer for cartridges that don't exist yet. Lexmark solved it by putting a small piece of program (about 30 bytes) into the cartridge, so the printer downloads it from the cartridge after the specific cartridge is installed, runs it and uses it to calculate the amount of ink, basing on the torque. This way you could say the cartridge practically contains a driver for the printer. (and allegedly the piece of code in one of the models of cartridges was unlawfully copied.)

This is one of many scenarios where small parts of code could be dynamically loaded and run on an embedded application.

Of course you could say these could be written in non-relocable way, located at a single, designated place in memory.
Now imagine, you upgrade the firmware, new version overruns the designated memory location. Either you go through hell with compiler and linker to keep your code from entering "forbidden areas" or suddenly your old "modules" become useless, or... you write them in relocable way in the first place, so the firmware can download it into arbitrary memory location anyway.

List of 22 messages in thread
TopicAuthorDate
sjmp vs ajmp            01/01/70 00:00      
   as you said            01/01/70 00:00      
   Different jmps            01/01/70 00:00      
      re:AJMP, SJMP            01/01/70 00:00      
         AJMP is 2 bytes LJMP is 3            01/01/70 00:00      
            LJMP was not the question            01/01/70 00:00      
               AJMP vs SJMP            01/01/70 00:00      
   Relocable.            01/01/70 00:00      
      relocatable            01/01/70 00:00      
         Re:Relocatable            01/01/70 00:00      
            relocatable - not in a 51            01/01/70 00:00      
               Relocatable Code is Valid            01/01/70 00:00      
                  Not JMPs, relocatable            01/01/70 00:00      
                     I can anticipate all kinds of situations            01/01/70 00:00      
                     If I can devise concepts others will too            01/01/70 00:00      
                        "driver".            01/01/70 00:00      
                           Re: driver            01/01/70 00:00      
                              maybe... maybe not.            01/01/70 00:00      
      16M derivatives...            01/01/70 00:00      
         SJMP is 2 bytes            01/01/70 00:00      
            Maybe he means additional bytes            01/01/70 00:00      
               yes.            01/01/70 00:00      

Back to Subject List