throbber
as) United States
`a2) Patent Application Publication co) Pub. No.: US 2006/0288019 A1
`
` Baueret al. (43) Pub. Date: Dec. 21, 2006
`
`
`US 20060288019A1
`
`(54) FLEXIBLE DATA FILE FORMAT
`
`Publication Classification
`
`(76)
`
`Inventors: Niclas Baner, Malmo (SE); Peter
`Aulin, Malmo (SE); Michael
`Rosenberg, Sodra Sandby (SE); Mats
`Svensson, Lund (SE)
`Correspondence Address:
`POTOMAC PATENT GROUP, PLLC
`P. O. BOX 270
`,
`FREDERICKSBURG VA 22404 (US)
`,
`(21) Appl. No.:
`11/250.652
`,
`Oct. 14, 2005
`
`(22)
`
`Filed:
`
`Related U.S. Application Data
`
`(60) Provisional application No. 60/685,581, filed on May
`27, 2005.
`
`(51)
`
`Int. Cl.
`(2006.01)
`7/00
`GO6F
`(2) US. Oly seiscsscesovsenccnnnnnnanecracnns 707/100
`
`ABSTRACT
`(oi)
`A data format includes a header, section information, and
`one or more sections. Each section includes binary data that
`is encoded independently of other sections, and the header
`and section information contains information about
`the
`sizes, load addresses, and encoding,e.g., encryption and/or
`compression, of the sections. The header and section infor-
`mation are arranged in an image having this format such that
`they are readable before the sections are processed. For
`example, the sections can be located in sequence after the
`header and the section information, in an order determined
`by their load addresses.
`
`Header
`
`Section
`Information
`
`104
`
`100
`
`Section Data a 102
`
`106
`
`INTEL 1009
`
`INTEL 1009
`
`

`

`Patent Application Publication Dec. 21,2006 Sheet 1 of 2
`
`US 2006/0288019 Al
`
`
`
`FIG. 1A _ 102
`
`Header
`
`100
`
`| Information
`
`Section
`
`104
`
`Section Data
`
`106
`
`
`
`FIG. 1B a
`102
`
`Size [32 bits]
`102-1
`
`Numberof sections
`[16 bits]
`102-2
`
`Section 1 Length|Extra 1[16 bits]|Section 2Length|Extra 2 [16 bits]
`[16 bits] 112-2 108-1 112-1 [16 bits] 108-2
`
`
`
`
`
`
`110-2
`
`Load Address 1 [32 bits]
`110-1
`
`Load Address 2 [32 bits]
`
`FIG. 1C
`
`104-1
`
`104-2
`
`202
`
`l
`
`
`Non-Volatile
`Memory
`
`|
`206
`
`|Lt
`
`ARM
`
`DSP
`
`
`
`
`
`
`|
`Store;
`SARAM
`
`
`Int.
`
`DSP
`
`Area '& DARAM
`
`208
`
`ea
`
`FIG. 2
`
`200
`4
`
`DSP
`
`ab
`
`

`

`Patent Application Publication Dec. 21,2006 Sheet 2 of 2
`
`US 2006/0288019 Al
`
`
`
`Identify
`
`sections
`302
`
`
`
`
`Encode
`
`each
`section
`304
`
`
`
`
`
`
`
`Form
`section
`info
`308
`
`
`
`
`
`Order header,
`
`section
`information, and
`sections
`
`
`
`FIG. 3
`
`310
`
`

`

`US 2006/0288019 Al
`
`Dec. 21, 2006
`
`FLEXIBLE DATA FILE FORMAT
`
`[0001] This application claimsthe benefit ofthe filing date
`of U.S. Provisional Patent Application No. 60/685,581,
`which wasfiled on May 27, 2005, and whichis incorporated
`here by reference.
`
`BACKGROUND
`
`program codefor reading it. The container format uses XML
`as notation. The formatis hierarchical, supporting blocks in
`blocks, etc.
`
`[0009] ULS. Pat. No. 5,548,759 to Lipe describes combin-
`ing multiple files into a single file having an executable
`format to operate a hardware or software device. A header
`includes a resources table that
`identifies the location of
`non-executable files and executable files in a resources
`
`[0002] This application relates to digital data files and
`more particularly to formats of such data files.
`
`section. The format is simply a container format for orga-
`nizing files, and one that does not support coding offiles.
`
`[0003] Various formats for object code and executable
`files for digital computers are currently available. The most
`widespread formats are the Common Object File Format
`(COFF) and the Executable and Linking Format (ELF).
`Both of these formats have been used for many years and in
`different variations in the WINDOWS and UNIX/Linux
`
`environments. For instance, Microsoft Corp. uses a variation
`of COFF called “PE COFF”(Portable Executable COFF) in
`its operating systems.
`
`[0004] Both the COFFandthe ELFare based onsections,
`which is to say that a COFF or ELFfile is structured as a
`header, section information, and data organized in sections
`that specify different types of information. A “text” section,
`for instance, contains program code.
`
`[0005] U.S. Patent Application Publication No. US 2005/
`0114391 by Corcoran et al. discloses a self-descriptive
`binary data structure called a microcode reconstruct and
`boot (MRB) image. The location of an individual data set
`may be identified by a data structure descriptor, which may
`be an advantage over ELF and COFF and other formats
`configured to include only a single executable. The format
`supports having multiple “modules” in a file, where a
`module is an executable piece of software or hardware
`modeled with a hardware description language. The format
`does not have sections that can contain any type ofdata,e.g.,
`executable, binary, textual, etc., and coding sections is not
`described.
`
`[0006] U.S. Pat. No. 6,694,393 to Sutter, Jr., describes a
`program file or other type of information file for use in an
`embedded processor system that is partially compressed in
`a host device and transferred to a non-volatile memory of the
`embedded system. A non-compressed header is used with
`memory sections that are compressed, although individual-
`ized compression of the sections is not described.
`
`It will be understood that an embedded system is
`[0007]
`hardware and software that form a component of a larger
`system and that are expected to function substantially with-
`out humanintervention. An example of an embedded system
`is a microcomputer and software stored in a read-only
`memory (ROM)that starts running the stored program when
`it is turned on and does not stop until it is turned off.
`
`International Publication No. WO 2004/029837 by
`[0008]
`Holthe describes encapsulating multimedia content data,
`multimedia content description data, and program instruc-
`tion code into an aggregated data representation comprising
`a hierarchical logical structure. Information about the mul-
`timedia content and description data and program instruction
`code is stored in a main header in the logical structure.
`Compression of content is supported in the sense that the
`format can contain, for example, a PNG-format picture and
`
`[0010] Software development methods are known for
`linking object code into executable programs, compiling
`object modules for storage in object module format for
`linking or combining with other object modules stored in
`library files to create executable programs.
`[0011] Also knownare program downloading methodsfor
`use in data processing systems,
`integrating non-program
`information and program information into an executable file
`that is used by a host processor to download the program to
`a selected co-processor.
`[0012] Also known are methods for compressing and
`recovering binary execution files; image loading program
`storage media for loaders of operating systems, which load
`and map executable images into memory based on file
`formats of images; and executable file protection and execu-
`tion methods involving incorporating protection descriptors
`into protected executable files and providing to interpreters
`for unprotecting and executing protectedfiles.
`[0013] The current de facto standards for object code and
`executable files have emerged from and matured on oper-
`ating systems for server and desktop computers. Being de
`facto standards,
`the formats have found their way into
`embedded systemsas well, but these formats have properties
`that make them inefficient in embedded environments. For
`example,
`the sections are not ordered by their memory
`location, which may lead to inefficient loading of code and
`data in some environments. In addition, object code often
`contains repetitive data, which results in redundancy and
`inefficient use of storage space.
`[0014] Aspects of the use of object file formats in embed-
`ded processor systems,
`including versions of COFF, are
`described in Minda Zhang,“Analysis of Object File Formats
`For Embedded Systems”, June 1995, published at http://
`www.intel.com/design/intarch/papers/esc_file.pdf.
`[0015] An embedded computer environment has many
`features that are not present in a desktop- or server-computer
`environment. For example, it is usually important that the
`sizes of binary images are kept low, as an embedded system
`usually has limited storage capacity. Thus, binary files
`should contain as little overhead as possible. It
`is also
`important that object code and data can be loaded efficiently,
`as processing power maybelimited, especially in an embed-
`ded system. A lot of software today is sent across wireless
`communication links (e.g., wireless local area networks
`(WLANs), mobile telephony networks,etc.), and it is impor-
`tant that software can be sent in a secure manner.If a binary
`file format supports encryption, a higher level of safety can
`be achieved.
`
`SUMMARY
`
`[0016] The new format for binary data described in this
`application is particularly useful in embedded systems as
`
`

`

`US 2006/0288019 Al
`
`Dec. 21, 2006
`
`well as in other computer environments whereefficiency is
`important. Greater efficiency in loading data can reduce
`response times in such systems, and space-eflicient storage
`saves valuable memory.
`
`[0024]
`and
`
`FIG. 2 is a block diagram of a processor system;
`
`[0025] FIG.3 isa flowchart of a method of forming a data
`image in accordance with aspects of this invention.
`
`In oneaspectof this invention, there is provided a
`[0017]
`data image arranged in a format that includes at least one
`section, a header, and section information. The header
`[0026] As described above,
`the binary data format
`containsafirst information elementthat indicatesa total size
`described in this application is useful in processor systems,
`of the at least one section and a second information element
`such as embedded systems, in which efficiency is important.
`that indicates a numberof the sections. The section infor-
`Greater efficiency when loading software can lower
`mation includes a respective entry for each section, each
`response times in embedded systems and other computer
`entry including a third information elementthat indicates a
`systems, and space-efficient storage saves valuable memory.
`length of the respective section and a fourth information
`element
`that
`indicates a load address of the respective
`section. The at least one section includesdata that is encoded
`
`DETAILED DESCRIPTION
`
`[0027] The format described here includes a header, sec-
`tion information, and one or more sections. The section
`information contains the information for all sections, which
`is more advantageous than having each section includeits
`own information,i.e., the information is concentrated rather
`than distributed across the sections. Furthermore, the section
`information contains information about the encoding of the
`sections.
`
`independently of the header, section information, and other
`sections. The header and the section information 1s arranged
`in the imagesuch that the header and section information are
`readable before the at least one section.
`
`In another aspect of this invention, there is pro-
`[0018]
`vided a computer-readable medium containing a data image
`for loading into a memory in a processor system. The data
`[0028] Each section includes binary data that is encoded
`image is arranged in a format that includes at least one
`independently of other sections, and the header and section
`section, a header, and section information. The header
`information contains information about
`the sizes,
`load
`containsafirst information elementthat indicatesa total size
`addresses, and encoding, e.g., encryption and/or compres-
`of the at least one section and a second information element
`sion, of the sections. The header and section information are
`that indicates a numberof the sections. The section infor-
`arranged in an image having this format such that they are
`readable before the sections are processed. For example, the
`sections can be located in sequence after the header and the
`section information, in an order determined by their load
`addresses.
`
`mation includes a respective entry for each section, each
`entry including a third information element that indicates a
`length of the respective section and a fourth information
`element
`that
`indicates a load address of the respective
`section. The at least one section includesdatathat is encoded
`
`independently of the header, section information, and other
`sections. The header and the section information are
`
`arranged in the image such that the header and section
`information are readable before the at least one section.
`
`there is
`In yet another aspect of this invention,
`[0019]
`provided a method of converting a binary image into a
`converted image having a format. The method includes the
`steps of identifying at least one section in the binary image;
`coding each identified section according to a respective
`coding scheme; forming a header that indicates a total size
`of the at least one section and a numberof the sections;
`forming section information having information about
`respective lengths, coding schemes, and load addresses of
`the identified sections; and arranging the header, section
`information, and identified sections in the converted image.
`The header and section information are arranged such that
`they are readable in the converted image before the sections,
`and the sections are arranged according to the section
`information.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Thefeatures, objects, and advantagesof this inven-
`[0020]
`tion will be understood by reading this description in con-
`junction with the drawings, in which:
`
`[0021] FIG. 1A is a diagram of a data image having a
`format in accordance with aspects of this invention;
`
`FIG.1B is a diagram ofa headerofthe data image
`[0022]
`of FIG. 1A;
`
`[0023] FIG. 1C is a diagram ofsection information of the
`data image of FIG. 1A;
`
`[0029] Other arrangements are possible, of course. It is
`important only that the header and section information can
`be read before the rest of an image. The locations of the
`header and section information can be anywhere in the
`image, provided it
`is possible to access the header and
`section information before the rest of the image. Thus, the
`location of the header must be predetermined, or at least
`known to the software reading the image,
`so that
`the
`software “knows” whereto look for the header. The location
`of the section information may also be “known” to the
`software, or the header can indicate the location.
`
`the format
`it will be appreciated that
`[0030] Thus,
`described here, in contrast to prior data formats, supports
`individual coding of sections, where a section can contain
`any type of data, such as executable, binary,
`text, etc.
`Information about the sections is located in a header and
`
`section information at, for example, the beginning of the
`image, and so the information about the sections can be
`retrieved before the sections are read. Moreover, the format
`is a representation of a group of sections, coded indepen-
`dently and having minimal overhead,
`that
`is traversed
`sequentially in reading the image. Imagesin this format can
`be optimized in different aspects, depending on the coding
`scheme or schemesapplied in the sections.
`
`[0031] There are manypossible applicationsofthis format
`and its individually coded sections. For example, an oper-
`ating system memory managercan load and unload sections
`of memory according to images in this format. It can also be
`used as a file format in which executablefiles are stored, and
`linkers and program loaders can be readily adapted to
`support (read, write, and interpret) the format. Object code
`
`

`

`US 2006/0288019 Al
`
`Dec. 21, 2006
`
`and data can also be storedin this file format, with a program
`loader reading the stored information and processing stored
`sections accordingly. One example of such a program loader
`is described in U.S. patent application Ser. No. 11/040,798
`filed on Jan. 22, 2005, by M. Svenssonet al. for “Operating-
`System-Friendly Bootloader’.
`
`[0032] FIG.1A depicts a binary data image 100 inthisfile
`format, including a header 102, section information 104, and
`section data 106. The section data 106 includes the data of
`
`the one or more sections included in the image 100.
`
`[0033] As depicted in FIG. 1B, the header 102 contains a
`size information element 102-1 that indicates the total size
`
`of the sections 106 (in bytes, for example). The size element
`102-1 may advantageously be a 32-bit unsigned integer, for
`example, and such an elementis suitable for images having
`section data up to a total of four gigabytes (GB) in size. The
`header 102 also contains a number-of-sections information
`
`element 102-2, which may advantageously be a 16-bit
`unsigned integer, for example. It will be understood that
`other forms of these information elements can be used
`
`instead of the examples set forth here.
`
`[0034] Each section in the section data 106 has a respec-
`tive “section information” entry in the section information
`104, and two such section information entries 104-1, 104-2
`are depicted in FIG. 1C. The lengths of the respective
`sections,
`in bytes for example, are indicated by length
`information elements 108-1, 108-2, which may advanta-
`geously be 16-bit unsigned integers, for example. The load
`addresses of the sections are indicated by address informa-
`tion elements 110-1, 110-2, which may advantageously be
`32-bit unsigned integers, for example. If desired, additional
`information related to a section can be indicated by extra
`information elements 112-1, 112-2, which may advanta-
`geously be 16 bits in length.It will be understood that other
`forms of these information elements can be used instead of
`
`the examples set forth here.
`
`[0035] FIG. 2 depicts a multi-processor system 200 that
`includes a host processor 202 and a client processor 204 and
`that can advantageously use a binary image 100 having the
`format depicted in FIGS. 1A, 1B, 1C. It will be appreciated
`that although FIG. 2 shows oneclient processor 204, more
`can be provided, and it will further be appreciated that
`although FIG. 2 shows a multi-processor system, even only
`a single processor 202 can be provided. Moreover,
`the
`processor(s) may be any programmable electronic proces-
`sor(s). In the example depicted in FIG.2, the processor 202
`is shown as the central processing unit
`(CPU) of an
`advanced RISC machine (ARM), and the processor 204 is
`shown as the CPU of a digital signal processor (DSP)
`device. The dashed line in FIG. 2 depicts the hardware
`boundary between the host and slave devices,
`in this
`example, the ARM and the DSP, and also a non-volatile
`memory 206. The memory 206 may be a ROM,a flash
`memory, or other type of non-volatile memory device,
`within which an image in the format depicted in FIGS.
`1A-1C can bestored.
`
`[0036] Most commercially available DSP devices include
`on-chip memories, and as indicated in FIG. 2, the DSP
`includes “internal”single-access RAM (SARAM)and dual-
`access RAM (DARAM)208, as well as an “external” RAM
`(XRAM)210. An intermediate storage area, indicated by the
`dashed line, may be defined within the memory 208. The
`
`arrows in FIG. 2 indicate access paths, e.g., busses and
`direct memory access (DMA)paths, between the CPUsand
`the memories, any one or more of which maystore an image
`in the format depicted in FIGS. 1A-1C. The ARM host CPU
`202 can access the non-volatile memory 206 and the
`SARAM and DARAM 208 of the DSP, but not the DSP’s
`XRAM 210, and the DSP slave CPU 204 can access all of
`the RAMs 208, 210.
`
`[0037] As depicted in FIG. 1A,the section information
`entry or entries 104 precede the data 106 of the section(s) in
`the image 100. The section data 106 is advantageously
`arranged in the image in a sequence,andit is preferable that
`the section data 106 as well as the section information
`entries 104 are arranged in order of the section load
`addresses 110, starting with the lowest address. It will be
`understood, however, that other orders are suitable, e.g.,
`starting with the highest address, and that in generalit is not
`necessary to order the section by their load addresses. The
`sections may be in an arbitrary order. As each section has a
`respective load address, the sections can appear in any order
`(e.g., by size, coding type, or whatever is suitable). It is
`currently believed, however, that the mostefficient solution
`from a loading point of view is probably arranging the
`sections by load address in either descending or ascending
`order.
`
`[0038] Having all section information entries 104 col-
`lected together in the image 100 advantageously simplifies
`system navigation through the image, and having all section
`data arranged in a sequence makesit possible to optimize
`loading of the sections. For instance, it is simple to split or
`concatenate sections whenthey are adjacent in memory. The
`ability to split sections can be useful, for instance, when a
`DMaA transfer is to be set up. As there is always a small
`overhead whensetting up a DMAtransfer, a DMA unit can
`be used in an efficient way by arranging the size of the data
`to be transferred to be equal or close to the block sizes used
`by the DMA unit. As sections can be located sequentially in
`an image 100, it is simple to split a section into several
`suitable pieces before downloadingit.
`
`[0039] The extra information elements 112 in the section
`information 104 can be used in a variety of ways, for
`example to convey information about each section’s coding,
`such as compression and/or encryption. It will be understood
`that compressing one or more sections makesthe size of the
`image 100 smaller, and storage space can thus be saved.
`Encrypting one or more sections enables a higher level of
`security to be achieved, for instance, during download of a
`binary image 100 to a system.
`
`[0040] The extra information elements 112 in the section
`information 104 can also be used in connection with digital
`signatures and watermarks. This can be an important appli-
`cation in terms of software security. Using one or more of
`the elements 112, a linker or post-linker tool can derive a
`signature/watermark for each section in an image, and a
`loader can read the signature/watermark and compare it to a
`section in question.
`In this way,
`the extra information
`elements enable the integrity of one or more sections of an
`imageto beverified, i.e., that the imagehas not been patched
`or altered.
`
`[0041] Decoding (e.g., decompression and/or decryption)
`of a section or sections requires some processing time to be
`expended when an image 100 is loaded into a system’s
`
`

`

`US 2006/0288019 Al
`
`Dec. 21, 2006
`
`memory. On the other hand, section encoding has many
`benefits, including for example moreefficient memory usage
`and better security. These factors can thus be traded-off
`when building an image, and each section can be optimized
`for security/space/load-time, depending on the configuration
`and properties of a particular system.
`[0042] The ability to individually encode sections pro-
`vides many possibilities for optimization. Each section can
`be encoded independently using an arbitrary encoding
`scheme (compression, encryption, or whateveris preferred).
`It is possible to apply several encoding steps on a section
`(e.g., compression followed by encryption). This can be
`important, as different sections may have different proper-
`ties, e.g., some sections may contain data that is suitable to
`compress and other sections may contain data that is sensi-
`tive and mustbe protected.
`[0043] Having information aboutthe sections collected in
`the header 102 and section information 104 simplifies opti-
`mization in a number of circumstances, for instance, if
`sections are to be loaded into memory. The block 104 lists
`all sections, preferably in order of memory location, and this
`makes memory loadingefficient as there is no need to search
`through an image for section headers when loading.
`[0044] The sequential location of sections in the image
`enables further optimizations to be done. For example,
`sections can be loaded in a burst when their memory
`locations are adjacent, and so it can be advantageous to
`arrange the processing system accordingly.
`[0045] The format described here also supports streaming.
`All navigation information in an object file 100 is given in
`the header 102 and section information 104, which simpli-
`fies the configuration of a streaming session. All information
`about a file of the format can be given during the capability
`exchange phase, before the streaming session is started.
`[0046]
`Asdescribed above, the format described here has
`many applications. For example, the format can be used as
`a file format for object code and/or data. Files having the
`format may be created directly bya linker. It is also believed
`thatit is possible to convert COFF/ELFbinary files and files
`in other formats to the above-described format using com-
`mercially available conversion tools. It is expected that the
`conversion tool would be executed as a post-link step in the
`build process, and the conversion tool could also combine
`several input files into one file having the above-described
`format.
`
`[0047] Converting a binary image, e.g., an image in
`COFF/ELF format,
`into an image having the format
`described in this application can be carried out in a number
`of ways, for example by a suitable post-linker conversion
`tool. An exemplary methodis illustrated by the flow chart in
`FIG.3, and includes a step of identifying all of the sections
`of the image to be converted (step 302). Each identified
`section is individually coded according to a specified coding
`scheme (step 304). A header having the information
`described above is formed (step 306), and section informa-
`tion having information about the respective lengths, encod-
`ings, and load addresses of the identified sections is formed
`(step 308). In step 310, the identified sections are arranged
`in the image according to the section information, e.g., in
`increasing order of load address, etc., and the header and
`section information are arranged in the converted image
`suchthat they are readable in the converted image before the
`sections.
`
`[0048] As described above, the binary image to be con-
`verted may include a plurality of sections, and the sections
`are arranged in the converted image in a sequenceafter the
`header and the section information. For example, the sec-
`tions can be arranged in an order determined by their
`respective load addresses. Coding an identified section can
`include encrypting the identified section, and the informa-
`tion about the encrypted section in the section information
`can further include an information elementthat describesthe
`
`encryption.
`
`[0049] The invention described here can be considered to
`be embodiedentirely within any form of computer-readable
`storage medium having stored therein an appropriate set of
`data for use by or in connection with an instruction-execu-
`tion system, apparatus, or device, such as a computer-based
`system, processor-containing system, or other system that
`can fetch data from a medium and execute or otherwise
`process the data. As used here, a “computer-readable
`medium” can be any means that can contain, store, com-
`municate, propagate, or transport the data for use by or in
`connection with the instruction-execution system, apparatus,
`or device. The computer-readable medium can be,
`for
`example but not limited to, an electronic, magnetic, optical,
`electromagnetic, infrared, or semiconductor system, appa-
`ratus, device, or propagation medium. More specific
`examples (a non-exhaustive list) of the computer-readable
`medium include an electrical connection having one or more
`wires, a portable computer diskette, a RAM, a ROM, an
`erasable programmable read-only memory (EPROM or
`Flash memory), and an optical fiber.
`
`It is emphasized that the terms “comprises” and
`[0050]
`“comprising”, when used in this application, specify the
`presence of stated features, integers, steps, or components
`and do not preclude the presence or addition of one or more
`other
`features,
`integers,
`steps, components, or groups
`thereof.
`
`[0051] The invention may be embodied in many different
`forms, not all of which are described above, and all such
`forms are contemplated to be within the scope of the
`invention. The particular embodiments described above are
`merely illustrative and should not be consideredrestrictive
`in any way. The scopeofthe invention is determined by the
`following claims, andall variations and equivalents thatfall
`within the range of the claims are intended to be embraced
`therein.
`
`Whatis claimed is:
`
`1. A data image arranged in a format, comprising:
`
`at least one section:
`
`a header, wherein the header containsa first information
`element that indicates a total size of the at least one
`section and a second information elementthat indicates
`a numberof the sections; and
`
`section information, including a respective entry for each
`section, each entry including a third information ele-
`ment that indicates a length of the respective section
`and a fourth information elementthat indicates a load
`address of the respective section;
`wherein the at
`least one section includes data that is
`encoded independently of the header, section informa-
`tion, and other sections; and the header and the section
`
`

`

`US 2006/0288019 Al
`
`Dec. 21, 2006
`
`information is arranged in the image such that the
`header and section information are readable before the
`at least one section.
`2. The data image of claim 1, wherein the first information
`element indicates the total size in bytes and is a 32-bit
`unsigned integer, and the second information elementis a
`16-bit unsigned integer.
`3. The data image of claim 1, wherein the third informa-
`tion element is a 16-bit unsigned integer and the fourth
`information element is a 32-bit unsigned integer.
`4. The data image of claim 1, wherein at least one entry
`of the section information further includes an extra infor-
`mation element.
`
`5. The data image of claim 4, wherein the extra informa-
`tion element indicates a coding of the respective section.
`6. The data image of claim 1, wherein the data image
`includes a plurality of sections.
`7. The data image of claim 6, wherein the sections are
`arranged in a sequence after the header and the section
`information.
`
`8. The data image of claim 7, wherein the sections are
`arranged in an order determined by their respective load
`addresses.
`
`9. The data image of claim 6, wherein the data ofat least
`one section is encrypted.
`10. The data image of claim 9, wherein the entry for the
`at least one section further includes an extra information
`element that describes the encryption.
`11. A computer-readable medium containing a data image
`for loading into a memory in a processor system, wherein
`the data image is arranged in a format that includes:
`
`at least one section;
`
`a header, wherein the header contains a first information
`element that indicates a total size of the at least one
`section and a secondinformation elementthat indicates
`a numberof the sections; and
`
`section information, including a respective entry for each
`section, each entry including a third information ele-
`ment that indicates a length of the respective section
`and a fourth information element that indicates a load
`
`address of the respective section;
`wherein the at
`least one section includes data that is
`
`encoded independently of the header, section informa-
`tion, and other sections; and the header andthe section
`information is arranged in the image such that the
`header and section information are readable before the
`at least one section.
`
`12. The computer readable medium of claim 11, wherein
`the data image is arranged in a format in which the first
`information elementindicates the total size in bytes and is a
`32-bit unsigned integer, and the second information element
`is a 16-bit unsigned integer.
`
`13. The computer readable medium of claim 11, wherein
`the data image is arranged in a format in which the third
`information element is a 16-bit unsigned integer and the
`fourth information elementis a 32-bit unsigned integer.
`14. The computer readable medium of claim 11, wherein
`the data image is arranged in a format in which at least one
`entry of the section information further includes an extra
`information element.
`
`15. The computer readable medium of claim 11, wherein
`the data image includes a plurality of sections.
`16. The computer readable medium of claim 15, wherein
`the sections are arranged in a sequenceafter the header and
`the section information.
`
`17. The computer readable medium of claim 16, wherein
`the sections are arranged in an order determined by their
`respective load addresses.
`18. The computer readable medium of claim 15, wherein
`the data of at least one section is encrypted.
`19. A method of converting a binary image into a con-
`verted image having a format, comprising the steps of:
`
`identifying at least one section in the binary image;
`
`coding each identified section according to a respective
`coding scheme;
`
`forming a headerthat indicates a total size of the at least
`one section and a numberofthe sections;
`
`forming sect

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