FreeCalypso > hg > tcs211-patches
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. |
