comparison README @ 12:3213b5ecae51

README added
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sat, 06 Jun 2015 17:04:40 +0000
parents
children
comparison
equal deleted inserted replaced
11:89ea4c7215a7 12:3213b5ecae51
1 The Mercurial tree you are looking at is a kit for applying patches to those
2 parts of TCS211 Calypso GSM firmware that came as binary object libraries
3 without complete corresponding source.
4
5 TI's TCS211 fw build system expects all prebuilt objects (i.e., those which it
6 should not or cannot recompile from source) to be packaged in libraries (*.lib);
7 TI's *.lib format is a variant of classic UNIX ar(5) with COFF objects inside.
8 One can use the standard ar command on a GNU/Linux machine to extract the *.obj
9 files from TI's *.lib, but I wasn't comfortable with the idea of patching these
10 *.obj files in their extracted form and then using GNU/Linux version of ar to
11 repackage them back into *.lib, so instead I wrote a tool that processes a *.lib
12 archive and applies a specified set of patches to one or more member objects
13 contained therein.
14
15 The libs, gpflibs and oslibs subdirectories contain the set of *.lib files that
16 constitute our starting point, i.e., the baseline to which patches are to be
17 applied; the tool subdirectory contains the library patching tool and the
18 patches subdirectory contains some example patches. The patched libraries
19 built in the patches directory can then be plopped directly into a TCS211
20 project tree in the place of the original without any manual splitting or
21 repackaging.
22
23 The leo-obj subtree in the freecalypso-reveng repository contains a specialized
24 object format parser and disassembler for TI's version of COFF in question, as
25 well as some already prepared disassembly hints for some parts of the TCS211
26 binary deliverable we are working with. The present library patching tool
27 allows one to patch any given byte in any section in any member object in an
28 archive library; disassembly with tiobjd should be used to figure out which
29 byte(s) one needs to patch in order to effect the desired change.