1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/**************************************************************************
*
* Copyright (c) 2013 Alcatel-Lucent
*
* Alcatel Lucent licenses this file to You under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in
* compliance with the License. A copy of the License is contained the
* file LICENSE at the top level of this repository.
* You may also obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**************************************************************************
*
* msbin.h:
*
* The following information was retrieved from the MSDN technical
* support web site...
*
* Windows CE Binary Image Data Format (.bin):
* The binary image file format organizes data by sections.
* Each section contains a section header that specifies the starting
* address, length, and checksum for that section. Romimage.exe writes
* data organized by logical sections, such as an application's text or
* .data region, to the .bin file. The image terminates with an image
* record header with the physical address and checksum set to zero.
* A configuration file formatted as a .bin file is small and fast.
* A .bin file is about half the size of an .sre file.
* This smaller size allows a .bin file to download faster than an
* .sre file when you are using the Windows CE Console Debug Shell
* tool (Cesh.exe).
*
* The following table shows the .bin file format.
*
* FIELD LENGTH DESCRIPTION
* (bytes)
* Sync bytes (optional) 7 Byte 0 is B, indicating a .bin file
* format. Bytes 1-6 are reserved
* and set to 0, 0, 0, F, F, \n.
* Or in hex: 0x4230303046460a
* Image header, consisting of:
* Image address 4 Start address of image.
* Image length 4 Length, in bytes, of image.
* One or more records of:
* Record address 4 Starting address of data record.
* If this value is zero, the record
* address is the end of the file,
* and record length contains the
* starting address of the image.
* Record length 4 Length of record data, in bytes.
* Record checksum 4 Signed 32-bit sum of record data bytes.
* Record data N Record data
*
* Original author: Ed Sutter (ed.sutter@alcatel-lucent.com)
*
*/
#ifndef _MSBIN_H_
#define _MSBIN_H_
#define MSBIN_SYNC_SIZE 7
#define MSBIN_SYNC_DATA "B000FF\n"
#define MSBINFHDR struct msbin_imghdr
#define MSBINSHDR struct msbin_record
/* File header:
*/
struct msbin_imghdr {
ulong imageaddr;
ulong imagelen;
};
/* Section header:
*/
struct msbin_record {
ulong addr;
ulong len;
ulong csum;
};
#endif
|