cariboulabs-cariboulite/software/utils
David Michaeli 206e1cbb11 removed unwanted merge artifacts 2024-02-06 16:36:36 +02:00
..
.gitignore Merge develop_R1 into main 2023-02-14 10:39:24 -05:00
CMakeLists.txt device tree + eeprom configuration + more 2021-09-17 15:36:29 +03:00
README.md update READMEs 2021-11-24 16:02:32 +02:00
generate_bin_blob removed unwanted merge artifacts 2024-02-06 16:36:36 +02:00
generate_bin_blob.c device tree + eeprom configuration + more 2021-09-17 15:36:29 +03:00

README.md

Utilities

generate_bin_blob.c

converts a binary file into C/C++ h-file code with versioning and dating. We use this converter to embed the device-tree overlays binaries and FPGA firmware binaries directly into the library code. In such way, the lib is self contained and doesn't have floating around dependencies.

Usage:

$ ./generate_bin_blob input_file.bin variable_name output_file.h

The output file will have the following structure:

#ifndef __cariboulite_dtbo_h__
#define __cariboulite_dtbo_h__

#ifdef __cplusplus
extern "C" {
#endif

#include <stdio.h>
#include <stdint.h>
#include <time.h>

/*
 * Time tagging of the module through the 'struct tm' structure 
 *     Date: 2021-09-17
 *     Time: 09:56:44
 */
struct tm cariboulite_dtbo_date_time = {
   .tm_sec = 44,
   .tm_min = 56,
   .tm_hour = 9,
   .tm_mday = 17,
   .tm_mon = 8,   /* +1    */
   .tm_year = 121,  /* +1900 */
};

/*
 * Data blob of variable cariboulite_dtbo:
 *     Size: 1112 bytes
 *     Original filename: ./cariboulite.dtbo
 */
uint8_t cariboulite_dtbo[] = {
	0xD0, 0x0D, 0xFE, 0xED, 0x00, 0x00, 0x04, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x03, 0xDC, 
	0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 
    ...
    	0x6D, 0x69, 0x00, 0x67, 0x70, 0x69, 0x6F, 0x00, 
};

#ifdef __cplusplus
}
#endif

#endif // __cariboulite_dtbo_h__