throbber
(12) United States Patent
`Kirschner et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,629,317 B1
`Sep. 30, 2003
`
`USOO662.9317B1
`
`(54)
`
`(75)
`
`(73)
`(*)
`
`(21)
`(22)
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`METHOD FOR PROVIDING FOR
`PROGRAMMING FLASH MEMORY OFA
`MAILNG APPARATUS
`
`Inventors: Wesley A. Kirschner, Hamden, CT
`(US); Louis J. Loglisci, Stamford, CT
`(US); George T. Monroe, Seymour, CT
`(US); Richard A Rudolph, Newington,
`CT (US)
`Assignee: Pitney Bowes Inc., Stamford, CT (US)
`Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`Appl. No.: 09/364,081
`Filed:
`Jul. 30, 1999
`
`Int. Cl." ........................... G06F 9/445; G06F 9/44;
`G06F 12/00; G06F 17/00
`
`U.S. Cl. ....................... 717/175; 717/169; 711/103;
`705/500
`
`Field of Search ......................... 717/100, 168-178,
`717/129; 711/103, 173, 203; 710/10; 713/2;
`705/400-416, 500; 235/101
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,432,927 A * 7/1995 Grote et al. ................... 713/2
`5,621,738 A 4/1997 Caywood et al. .
`... 714/721
`5,652,886 A * 7/1997 Tulpule et al.................. 713/2
`5,682,497 A * 10/1997 Robinson .................... 711/103
`5,717.887. A
`2/1998 Leslie ........................ 717/173
`5,737.265 A
`4/1998 Atwood et al. ........ 365/185.03
`5,809,558 A * 9/1998 Matthews et al. .......... 711/173
`5,819,108 A * 10/1998 Hsu et al. ..................... 710/10
`5,943,692 A * 8/1999 Marberg et al. ..
`... 711/203
`6,134.628 A * 10/2000 Hamadani .....
`... 711/103
`6,219,828 B1
`4/2001 Lee ..................
`... 717/129
`6,272.586 B1 * 8/2001 Roohparvar et al.
`... 711/103
`6.279,153 B1 * 8/2001 Bi et al. ..................... 717/171.
`
`
`
`OTHER PUBLICATIONS
`Komoto-Grundmann, Designing with Flash Memory in
`Windows CE Applications, Jun. 1998, Intel Corporation,
`http://www.cet.com/archives/9806/9806desi.shtml.*
`* cited by examiner
`Primary Examiner Hoang-Vu. Antony Nguyen-Ba
`(74) Attorney, Agent, or Firm-Angelo N. Chaclas; Charles
`A. Malandra; George M. Macdonald
`(57)
`ABSTRACT
`A method providing for programming reprogramming at
`least Some Software into flash memory of a postage machine
`or other mailing apparatus. The method calls for providing
`the Software to be programmed into the flash memory in at
`least two builds, with one build providing kernel software
`that includes the functionality needed for programming/
`reprogramming (including functionality for linking to a
`personal computer by which the Software to be programmed
`may be provided), and the other build providing non-kernel
`Software, usually routines providing application-oriented
`functionality, and not essential to programming the flash
`memory. The first build, of the at least two builds, is written
`into sectors of the flash memory that are then locked. The
`System provides, in Some applications, for writing the non
`kernel Software using a paging algorithm that writes Several
`Sectors worth of non-kernel Software at a time. Once the
`programming of the kernel Software is completed, at least
`part of the flash memory, the part hosting the non-kernel
`Software, can be programmed or reprogrammed using the
`functionality provided by the kernel software. In some
`applications, three builds are provided, with a bare minimum
`of kernel Software, including only a Subset of flash program
`ming utilities and routines providing for a basic Serial I/O
`link for linking to a personal computer. In Such an
`application, all of the operating System Software, i.e. the
`Software providing for system-level functionality of the
`mailing machine, is provided as a Second, non-protected
`build, and a third build is provided including application
`Software.
`
`7 Claims, 8 Drawing Sheets
`
`Stat
`
`Create build of kernel software.
`
`Create at least one other build,
`with jump tables in each other
`build, as needed.
`
`92
`
`83
`
`Provide kerned software to sectors
`of flash memory,
`
`94's
`
`lock sectors in which kernel
`software resides.
`
`Provide flash memory with each
`other build, in turn.
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 1 of 8
`
`US 6,629,317 B1
`
`Flash memory
`Software to load
`
`
`
`13
`
`
`
`
`
`
`
`Microprocessor o
`
`Flash memory
`
`Mailing Apparatus
`
`Fig. 1A (Prior Art)
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`U.S. Patent
`
`Sep. 30, 2003
`Sep. 30, 2003
`
`Sheet 2 of 8
`Sheet 2 of 8
`
`US 6,629,317 B1
`US 6,629,317 B1
`
`
`
`Fig.1B
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 3 of 8
`
`US 6,629,317 B1
`
`, 24
`
`Power up routines
`
`Operating system routines
`
`25
`
`. 26
`
`Application Software
`
`
`
`
`
`27 N
`
`Unused Flash memory
`
`Fig. 2 (Prior Art)
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 4 of 8
`
`US 6,629,317 B1
`
`- 30
`
`
`
`Power up routines (Core power up
`routines, flash utilities, and
`Communication utilities)
`
`Complementary Software
`
`Unused Flash memory
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 5 of 8
`
`US 6,629,317 B1
`
`Protected routine for reloading complementary software.
`Protected routine that provides for modem communication So
`as to make possible receiving Complementary Software by
`modem.
`Protected routine that accepts complementary Software in
`compressed format.
`Protected routine that writes into the non-protected sectors
`Selected Software in Compressed format, and that
`decompresses the software into RAM at run-time.
`Protected routine that accumulates in RAM several Sectors
`worth of software for loading, and then load the sectors as a
`block Or batch.
`Protected routine for Writing new signatures periodically during
`a reprogramming.
`
`
`
`
`
`Protected routine that provides for reprogramming apart of the
`Complementary Software.
`
`Jump addresses into (protected) kernel software.
`
`Protected bootup routine that looks for a signature written into the flash
`memory when it was last programmed, instead of performing a checksum.
`
`
`
`Checksum on complementary software.
`
`40
`
`41
`
`42
`
`43
`
`45
`
`46
`
`47
`
`48
`
`49
`
`Fig. 4
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 6 of 8
`
`US 6,629,317 B1
`
`
`
`Core power up routines
`
`Flash utility routines
`
`Communication routines (for
`interface with a PC)
`
`Compression routines
`
`Debugger routines
`
`Operating System
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 7 of 8
`
`US 6,629,317 B1
`
`- 70
`
`
`
`Core power up routines
`
`Subset of Flash utility routines
`(erase flash, program flash)
`
`71
`
`Basic serial I/O (for primitive
`interface with a PC)
`
`Other Flash utility routines
`
`Other communication routines (for
`interface with a PC)
`
`72
`
`Debugger routines
`
`Operating System
`
`Application software
`
`
`
`73
`
`
`
`
`
`
`
`
`
`74
`
`75
`
`76
`
`77
`78
`
`79
`
`81
`
`
`
`82
`
`
`
`
`
`Fig. 6
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`U.S. Patent
`
`Sep. 30, 2003
`
`Sheet 8 of 8
`
`US 6,629,317 B1
`
`Create build of kernel Software.
`
`Create at least One other build,
`with jump tables in each other
`build, as needed.
`
`91
`
`92
`
`93
`
`94
`
`Provide kernel Software to Sectors
`of flash memory.
`
`Lock Sectors in which kernel
`Software resides.
`
`
`
`Provide flash memory with each
`other build, in turn.
`
`Fig. 7
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`US 6,629,317 B1
`
`1
`METHOD FOR PROVIDING FOR
`PROGRAMMING FLASH MEMORY OFA
`MAILINGAPPARATUS
`
`2
`All of the software must be written (programmed) into the
`flash memory for the mailing apparatus to work correctly. If
`a power failure interrupts the programming of the flash
`memory, the flash memory must be erased, and the pro
`gramming of the flash memory must be started again from
`the beginning. When flash memory is being reprogrammed
`(either at a user's facility or at a manufacturing site), if
`power fails during the reprogramming, the mailing appara
`tus is completely inoperative, since it has no ROM for
`holding even boot-up routines. AS indicated above, flash
`memory write cycles are often long, and reprogrammed
`from the beginning causes delays which are often costly.
`Therefore, there is a need for a way to program flash
`memory of a mailing apparatus So as to avoid the long delayS
`caused by a power failure during programming, and the
`Subsequent restarting of the programming process.
`SUMMARY OF THE INVENTION
`The present invention seeks to provide a System of
`programming the flash memory of a mailing apparatus So
`that in case of a power failure during Some of its
`programming, or in case of a need to reprogram at least Some
`parts of the flash memory, only part of the programming
`must be performed. It does this by providing a method of
`programming flash memory of a mailing apparatus in more
`than one build, with one build containing only a fraction of
`the Software needed to impart to the mailing apparatus its
`full functionality, but all of the Software needed to link to a
`PC and to reprogram at least Some Sectors of the flash
`memory (i.e. erase and write Sectors of flash memory). After
`Writing this So-called kernel Software into Sectors of flash
`memory, the Sectors are locked, i.e. are prevented by Soft
`ware from being erased and rewritten. The other builds are
`written to Sectors that are not necessarily locked. The
`invention includes embodiments differing chiefly in what
`Software is included in the kernel Software.
`Accordingly, the present invention provides a method of
`programming a mailing apparatus, the mailing apparatus
`comprising a microprocessor and a flash memory, the pro
`gramming amounting to writing, to Sectors of the flash
`memory, Software needed for operation of the mailing
`apparatus, the method comprising the Steps of providing, as
`one build, kernel Software, including routines for program
`ming the flash memory, creating in particular Sectors of flash
`an image of the one build, and then locking the Sectors, and
`providing, as at least one other, Separate build, all other
`Software, and creating an image in flash of each other build.
`In Some applications of the present invention, the kernel
`Software comprises: power-up routines automatically loaded
`by the microprocessor at power on, these for initializing the
`microprocessor, for initializing communications between
`the microprocessor and a programming computer, for
`enabling the microprocessor to read and write to the flash
`memory; and for loading operating System Software; the
`operating System Software itself, comprising routines for
`providing System-oriented functionality of the mailing
`apparatus, and kernel application Software, comprising rou
`tines for providing application-oriented functionality,
`including enabling the microprocessor to be used by a
`programming computer to reprogram the non-kernel Soft
`WC.
`
`65
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`Various features and advantages of the invention will
`become apparent upon consideration of the Subsequent
`detailed description presented in connection with accompa
`nying drawings, in which:
`
`15
`
`TECHNICAL FIELD
`The present invention pertains to the field of postage
`meters and other mailing equipment. More particularly, the
`present invention pertains to programming flash memory
`used in mailing equipment.
`DESCRIPTION OF RELATED ART
`Referring to FIG. 1A, a mailing apparatus 13, Such as a
`postage meter 17 shown in FIG. 1B, often includes a
`microprocessor 14 having no read only memory (ROM), but
`having random access memory (RAM) 16 for holding
`program instructions to be executed by the microprocessor
`14. Consequently, Software, i.e. program instructions and
`data, can be Stored in So-called flash memory 15, a type of
`non-volatile memory. The flash memory software to load 10
`is often provided by a flash memory programmer 12 through
`a personal computer (PC) 11 linked to the microprocessor 14
`of the mailing apparatus 13. The microprocessor 14 has a
`universal asynchronous receiver/transmitter (UART) (not
`shown), which routes the software 10 from the PC 11 to the
`flash memory device 15.
`The flash memory software to load 10 is first loaded at the
`time the mailing apparatus is manufactured, and from time
`to time, it is desirable to change the program instructions and
`data in the flash memory, for example to incorporate revi
`Sions to the program instructions or to change the data used
`in operating the mailing equipment. The act of writing
`Software to a flash memory is called “programming the
`flash memory. A flash memory is a device providing erasable
`programmable read only memory containing many Sectors,
`each Sector containing a number of bytes, where each Sector
`is separately erasable. In addition, a flash memory device is
`often byte programmable. Often also, flash memory is block
`erasable/writable, blocks being groups of bytes. Usually, a
`flash memory device is divided into a plurality of Volumes,
`which are the unit-erasable quantity of memory on a given
`piece of hardware. A volume may be a Single Sector or
`multiple Sectors of a storage space representing the capacity
`of the memory. Prior to writing to, or programming, a
`location within the memory device, the volume within
`which the location is found must be erased and then the
`whole Volume is rewritten to include the programmed loca
`tion. Thus, programming of a single location requires an
`erase cycle of the Volume within which the Single location
`is located, and a write time to rewrite the erased Volume.
`Typical erase cycles do not take long (approximately one
`Second), but it is possible for a typical write cycle (time to
`program all of flash memory of a typical mailing apparatus
`using flash memory) to require up to 15 minutes.
`According to the prior art, the Software for a mailing
`apparatus is loaded into the flash memory as a Single build,
`i.e. Software including routines that call each other to
`provide the functionality of the mailing apparatus. The
`routines are able to call each other, according to Standard
`programming practice, using function calls that are com
`60
`piled and made operative by linking the routines together.
`Referring to FIG. 2 and again to FIG. 1A, a single build as
`provided by the prior art is arranged in the flash memory 15
`of a mailing apparatus 13, and includes power up routines
`24, operating System routines 25, application Software 26.
`Some of the flash memory is shown as unused flash memory
`27.
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`3
`FIG. 1A is a block diagram showing programming of flash
`memory of a mailing apparatus built according to the prior
`art and according to the present invention;
`FIG. 1B is a simplified perspective view of a mailing
`apparatus illustrating one kind of mailing apparatus in which
`it is possible to incorporate the present invention;
`FIG. 2 is a diagram illustrating the arrangement in a linear
`array of flash memory of the various kinds of software
`written into the flash memory during programming, accord
`ing to the prior art;
`FIG. 3 is an illustration of the arrangement in a linear
`array of flash memory of the software written into the flash
`memory of a mailing apparatus, according to the present
`invention;
`FIG. 4 is a component diagram showing Software routines
`(utility procedures) as components of a Software build
`programmed into the flash memory of a mailing apparatus,
`according to the present invention;
`FIG. 5 is an illustration of one arrangement in flash
`memory of Specific Software provided by the present inven
`tion;
`FIG. 6 is an illustration of the preferred arrangement in
`flash memory of Specific Software provided by the present
`invention; and
`FIG. 7 is a flow chart showing the method of the present
`invention.
`BEST MODE FOR CARRYING OUT THE
`INVENTION
`Referring again to FIG. 1B, a mailing apparatuS 17 in
`which the present invention can be incorporated includes a
`printer module (not shown), a conveyor apparatus (not
`shown), a micro control System (not shown), other modules
`not shown for the Sake of clarity, and user interface equip
`ment 18 including a set of function keys 20, a numeric
`keypad 21, a set of (non-function-type) keys 22, and a
`display 19, which can be a cathode ray tube (CRT), light
`emitting diode (LED), LCD or other kind of display. The
`(non-function-type) keys allow a user to indicate commands
`that are not directly related to processing a mail piece, Such
`as: enter, clear, download postage, generate report, and
`account Setup. In contrast, the function keys are concerned
`with actions needed to process a mailpiece, Such as: Start,
`Stop, print tape, reset batch counter, weigh mode on/off,
`Sealer/moistener mode on/off.
`Referring now to FIG. 3, according to the present inven
`tion in one embodiment, the Software for a postage meter 17
`(FIG. 1B) or a mailing apparatus 13 generally (FIG. 1A) is
`written into flash memory 30 as two separate software builds
`31,32: a first build 31 written into sectors of flash memory
`that are afterward locked, and So protected; and a Second
`build 32 written into sectors of flash memory that remain
`non-locked, and So are unprotected.
`As shown further, what is written to the locked sectors
`includes what is called here kemel Software, i.e. Software
`upon which essential hardware and other Software depend.
`Thus, the kernel Software typically includes: power-up rou
`tines 33, which are automatically loaded into the micropro
`ceSSor at power-up, and which load the operating Systems
`routines, and which include utilities for communicating with
`a PC and which enable the microprocessor to find software
`in the flash memory; operating System routines 34, which
`provide System-level functionality; and Selected application
`Software, called, here kernel application Software 35. AS
`indicated above, any reference to Software is a reference to
`program instructions and data.
`
`5
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,629,317 B1
`
`4
`The kernel application software (build) 31 includes all
`functionality needed for accepting Software to be loaded into
`flash memory from a PC, and the functionality needed to
`write the software into the flash memory. Besides commu
`nications functions (in the power up routines 33) and flash
`memory operating routines (in the operating System routines
`34), the kernel application Software may contain other
`functionality.
`Still referring to FIG.3, the second build 32, written to the
`non-locked Sectors, is here called complementary Software
`36, and is usually Software providing application-oriented
`functionality of the mailing equipment not provided by the
`kernel Software. Such Software may also included Some
`complementary operating System routines. The complemen
`tary Software is usually much larger in size than all of the
`protected Software, i.e., all of the power-up routines in
`combination with the operating System routines and further
`in combination with the kernel application Software.
`The total Software that would be written to the flash
`memory according to the prior art is exceeded in Size by the
`Software written to the flash memory according to the
`present invention. This is because according to the present
`invention routines are provided to the flash memory, in the
`protected Sectors, that specifically enable programming of
`flash memory and also provide other functions and features
`not found in the Software written in a flash memory of a
`mailing apparatus according to the prior art.
`Referring now to FIG. 4, a method, according to the
`present invention, for programming the flash memory of a
`mailing apparatus includes, in general, providing various
`routines and jump tables. First, in the preferred embodiment,
`as already discussed, the method includes providing a pro
`tected routine 40 for reloading complementary Software,
`Such as would be required in case of a power failure in the
`midst of programming complementary Software into the
`flash memory (after the kernel software is loaded). The
`routine 40 for reloading complementary software therefore
`includes, as already discussed, enabling the microprocessor
`14 of the mailing apparatus 13 to communicate with the PC
`11, and enabling the microprocessor to access the flash
`memory 15 (see FIG. 1A).
`In addition, in Some applications, the method includes
`providing various other routines 41-46 associated with
`reprogramming flash memory, and also includes other rou
`tines 47-49 of more general use. The other routines 41-46
`asSociated with reprogramming flash memory include: a
`protected routine 41 that provides for modem communica
`tion So that the flash memory can be reprogrammed
`remotely; a protected routine 42 that accepts from a PC in
`compressed format the complementary Software that is to be
`written to the flash memory (which is of particular advan
`tage when Some or all of the complementary Software will
`be written to the flash memory in compressed format); a
`protected routine 43 that writes into the non-protected
`Sectors of the flash memory Selected Software in compressed
`format, compressing the Software if it is not already
`compressed, and decompressing at run-time the Software
`into the RAM of the microprocessor; a protected routine that
`accumulates in the RAM of the microprocessor Several
`Sectors worth of complementary Software, which it then
`writes as a block, or in batch mode, to the flash memory (this
`paging of memory imageS Saving time because of Savings in
`the overhead required for each new access of the flash
`memory); a protected routine 45 for periodically signing
`(usually in a non-protected Sector) the flash memory during
`a programming of the flash memory So as to indicate the last
`Successfully completed Stage of a programming (thereby
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`S
`enabling referring to the Signature to determine where to
`restart programming in case of an interruption by a power
`failure, instead of having to always Start from the
`beginning); and a protected routine 46 that provides for
`reprogramming/revising a part of the complementary
`Software, and, in the course of this revising, finds where in
`the non-locked Sectors to write the revision (preferably on
`top of what is being revised, but if the revision is larger than
`what it is replacing, the routine will use a previously unused
`area of the flash memory).
`The routines 47-49 of more general use include a table of
`jump addresses 47 for directing the microprocessor 14 (FIG.
`1A) to call protected kernel Software. In the prior art, when
`all of the routines for the mailing apparatus are written to its
`flash memory in one build, one of the routines can call a
`function provided by another according to Standard pro
`gramming practice, because the routines are linked in the
`process of creating the build. In the present invention,
`however, a routine of the complementary Software is not
`able to call a routine written into the protected Sectors of the
`flash memory according to Standard programming practice.
`The jump addresses of the present invention, by which a
`routine in the complementary Software can “call” a function
`provided by a protected routine (by directing that the
`instruction pointer of the microprocessor jump to the address
`in the protected Sector where the routine begins), make the
`Services of a protected Sector routine available to the
`complementary Software. Thus, with jump tables, there is no
`loSS in functionality that results from partitioning into two
`builds in its flash memory Software, including power-up
`routines, for operating a mailing apparatus. Jump tables are
`provided as part of each non-kernel build, as needed. In case
`of more than two builds, jump tables can be provided by
`which software in any of the non-kernel builds can invoke
`the Services of any other build, but usually, and in the
`preferred embodiment described below, in which the kernel
`is a bare minimum, the non-kernel builds would not invoke
`the kernel.
`In addition, because of having used, in Some applications,
`a Series of Signatures to Signal having Successfully loaded
`Successive increments of a build, the method of the present
`invention includes providing a routine 48 that, at power-up,
`instead of performing a checksum on the flash memory,
`inspects the last Signature written to determine if it is the
`Signature signaling the Successful loading of the last incre
`ment. Avoiding a checksum in this way Saves time at
`power-up, with only a Small risk that the content of a flash
`memory is not correct because of having been altered by e.g.
`a cosmic ray or other disturbance.
`From time to time, however, the flash memory should be
`inspected for an unplanned change of content, and the
`method of the present invention also includes, in Some
`applications, providing a routine 49 that performs a check
`Sum at Scheduled intervals, or as directed by a user. Although
`the periodic Signing of the flash memory does Signal whether
`or not all of the increments of a build have been written into
`the flash memory of a mailing apparatus, only a checksum
`calculation can verify the integrity of the programming.
`Thus, performing a checkSum calculation is advisable at
`least once after writing a complementary build to the flash
`memory.
`Referring now to FIG. 5, in one particular embodiment,
`the method of the present invention includes providing, to a
`flash memory 50, only two builds 51, 52, in which the first,
`kernel software build 51 includes: core power up routines
`53, flash utility routines 54, communication routines 55 for
`interfacing with a PC, compression routines 56, as discussed
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,629,317 B1
`
`6
`above, but usually only for accepting, in compressed format,
`Software to be written to flash memory and decompressing
`the Software; debugger routines 57 for tracing errors, and
`operating System routines 58; but no application Software.
`The second build 52, which is not protected, i.e. is not
`programmed in Sectors that were Subsequently locked, is
`application software 59. FIG. 5 shows that after the pro
`gramming of the flash memory 50 with the two builds 51,
`52, there can be some unused flash memory 60.
`Referring now to FIG. 6, in what is considered the
`preferred embodiment, the method of the present invention
`includes providing, to a flash memory 70, three different
`builds 71, 72,73, in which the first, kernel software build 71
`includes only: core power up routines 74; a Subset 75 of all
`of the available flash utility routines; and basic serial I/O
`routines 76, providing the bare minimum needed for the PC
`11 to feed software to the microprocessor 14 of the mailing
`apparatus 13, as shown in FIG. 1A. The time to program/
`write this kernel (to Sectors that are Subsequently locked) is
`Significantly less (on the order of minutes) than the time to
`write the kernel indicated in FIG. 5.
`In this embodiment, two other builds 72,73 are provided,
`with neither locked, because only part of the rest of the
`Software is particularly likely to be programmed/
`reprogrammed, i.e. the application Software 82 of the third
`build 73. In this preferred embodiment, the second build 72
`includes the Software carved out from the kernel 51 provided
`by the embodiment producing the arrangement shown in
`FIG. 5, and therefore includes: other flash utility routines 77;
`other communication routines 78, beyond that providing for
`bare serial I/O communication with a PC; and compression
`routines 79, debugger routineS 80, and operating System
`routines 81, all in content as in the embodiment correspond
`ing to FIG. 5 (but not locked).
`With this arrangement, the Software that cannot be repro
`grammed (the kernel Software 71 in locked sectors) is kept
`to a bare minimum. All of the other Software can be
`reprogrammed, but what would most likely be
`reprogrammed, the application Software 82 is kept alone in
`a third build 73. Jump tables (not shown) are provided as
`necessary for routines in one build to invoke routines (or
`particular functions of routines) in another, but usually jump
`table need only be provided to allow the application soft
`ware 82 to invoke the services of routines in the second build
`72.
`Referring now to FIG. 7, the method of the present
`invention is indicated generally as involving, after first
`having determined how to partition into Separate builds all
`of the Software for the mailing apparatus: a first step 91 of
`creating, as one build, the kernel Software; a next Step 92 of
`creating each other build, in turn, along with jump tables in
`each build, as needed, allowing the routines in the build to
`invoke the services of routines in other builds; a next step 93
`of providing kernel Software to Sectors of flash memory; a
`next step 94 of locking the sectors in which the kernel sector
`resides; and a last step 95 of providing the flash memory
`with each other build, in turn.
`In the method of the present invention, the Steps involving
`programming the flash of a mailing apparatus, Steps which
`are described as “providing Software to Sectors of flash, are
`to be understood as encompassing any action by which an
`image of Software (including data) is created in flash. In
`other words, the present invention is not limited to program
`ming flash using a PC 11 connected to a microprocessor 14
`of a mailing apparatus 13, as shown in FIG. 1A, but includes
`any action resulting in the creation of an image of Software
`
`Petitioner Intel Corp., Ex. 1026
`IPR2023-00783
`
`

`

`7
`in flash. The method of the present invention is not directed
`to how to write software to flash; it is directed only to the
`arrangement of what is written to flash.
`It is to be understood that the above described arrange
`ments are only illustrative of the application of the principals
`of the present invention. Numerous modifications and alter
`native arrangements may be devised by those skilled in the
`art without departing from the Spirit and Scope and the
`present invention, and the appended claims are intended to
`cover Such modifications and arrangements.
`What is claimed is:
`1. A method of programming a mailing apparatus, the
`mailing apparatus including a microprocessor and a flash
`memory, the flash memory having a plurality of Sectors, the
`programming performed by writing Software to Sectors of
`the flash memory, the method comprising the Steps of:
`providing, as one build, kernel Software, including rou
`tines for programming the flash memory;
`creating in particular Sectors of flash an image of the one
`build, and then locking the Sectors, and
`providing, as at least one other, Separate build, all other
`Software, and creating an image in flash of each other
`build.
`2. The method of claim 1, wherein the kernel Software
`comprises:
`power up routines, for hardwired loading by the micro
`processor at power on, for initializing the
`microprocessor, for initializing communications
`between the microprocessor and a programming
`computer, for enabling the microprocessor to read and
`write to the flash memory, and for loading operating
`System Software;
`Said operating System Software, comprising routines for
`providing System-oriented functionality of the mailing
`apparatus, and
`kernel application Software, comprising routines for pro
`Viding application-oriented functionality, including
`enabling the microprocessor to be used by a program
`ming computer to reprogram the other, non-kemel
`Software.
`3. The method of claim 2, wherein the kernel Software
`further comprises:
`a routine that provides for modem communication So as to
`make possible receiving non-kemel Software by
`modem,
`a routine that accepts non-kemel Software in compressed
`format,
`
`15
`
`25
`
`35
`
`40
`
`45
`
`US 6,629,317 B1
`
`8
`a routine that accumulates in the microprocessor RAM
`Several Sectors worth of Software for loading, and then
`loads the Sectors as a block or batch;
`a routine for writing new signatures periodically during
`programming, and
`a routine for programming a part of the non-kemel
`Software.
`4. The method of claim 3, wherein the kernel Software
`further comprises:
`a boot-up routine that looks for a signature written into the
`flash memory when it was last programmed, instead of
`performing a checkSum; and
`a routine that performs a checksum.
`5. The method of claim 4, wherein the kernel Software
`further comprises a routine tha

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket