====== 4CC Binary Blob Format ====== * **Header**: * **4CC**: 4 byte character code * **bytelength**: 4 byte unsigned payload size in bytes * **Payload**: * **data**: payload data max 2^32 bytes ===== Constraints ===== * Only write whole structure * There will be no case in which a partial 4CC binary blob will be rewritten ===== Example ===== * '_' specifies whitespace (0x20) ^ Header ^^ Payload ^ | 4CC | bytelength | data | ^ 4 ^ 4 ^ n/a ^ | '__ID' | 0x3 | 'DIA' | | '_REV' | 0x1 | 0xa | | '_SER' | 0xa | '6502400001' | ==== Efficiency ==== * **Payload:** 14 bytes * **Overhead:** 24 bytes * -> 37% ====== Directory Extension ====== * First bit (MSB) of first byte of 4CC field is directory extension bit * If set data field will start with another header ===== Example ===== * 4CC = '_SER' = 0x20534552 * 4CC* = 0xa0534552 * **4CC***: 4 byte character code field with directory extension bit set ^ Header ^^ Payload ^^^ | | ^ Header ^^ Payload ^ | 4CC* | bytelength | 4CC | bytelength | data |