Comment code and add last missing cmd parameters

This commit is contained in:
Mario Hüttel 2022-10-24 19:47:48 +02:00
parent 6f0e4d4c8e
commit f3f7b1a7ad
2 changed files with 28 additions and 0 deletions

View File

@ -3,14 +3,30 @@
#include <stdint.h> #include <stdint.h>
/**
* @brief Expected size of @ref crc_out_struct_32bit.
* @note If the size of the structure does not match this number, structure padding occured which should not happen.
*/
#define CRC_OUT_STRUCT_SIZE_32BIT 12u #define CRC_OUT_STRUCT_SIZE_32BIT 12u
/**
* @brief output structure of CRCs in a 32bit executable
*/
struct crc_out_struct_32bit { struct crc_out_struct_32bit {
uint32_t start_address; /**< @brief Start address of struct*/ uint32_t start_address; /**< @brief Start address of struct*/
uint32_t length; /**< @brief Length of section in bytes */ uint32_t length; /**< @brief Length of section in bytes */
uint32_t crc; /**< @brief LSB aligned CRC */ uint32_t crc; /**< @brief LSB aligned CRC */
}; };
/**
* @brief Expected size of @ref crc_out_struct_64bit.
* @note If the size of the structure does not match this number, structure padding occured which should not happen.
*/
#define CRC_OUT_STRUCT_SIZE_64BIT 24u #define CRC_OUT_STRUCT_SIZE_64BIT 24u
/**
* @brief output structure of CRCs in a 64bit executable
*/
struct crc_out_struct_64bit { struct crc_out_struct_64bit {
uint64_t start_address; /**< @brief Start address of struct*/ uint64_t start_address; /**< @brief Start address of struct*/
uint64_t length; /**< @brief Length of section in bytes */ uint64_t length; /**< @brief Length of section in bytes */
@ -18,6 +34,9 @@ struct crc_out_struct_64bit {
uint32_t _unused_dummy; /**< @brief Dummy. Do not use, it prevents misalignments */ uint32_t _unused_dummy; /**< @brief Dummy. Do not use, it prevents misalignments */
}; };
/**
* @brief Trigger compile error if condition is false
*/
#define BUILD_ASSERT(cond) ((void)sizeof(char[1 - 2 * !!(cond)])) #define BUILD_ASSERT(cond) ((void)sizeof(char[1 - 2 * !!(cond)]))
/** /**

9
main.c
View File

@ -117,6 +117,15 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
case 'O': case 'O':
args->output_section = arg; args->output_section = arg;
break; break;
case 'r':
args->crc.rev = true;
break;
case 's':
args->crc.start_value = strtoul(arg, NULL, 0);
break;
case 'x':
args->crc.xor = strtoul(arg, NULL, 0);
break;
case ARGP_KEY_ARG: case ARGP_KEY_ARG:
if (state->arg_num >= 1) if (state->arg_num >= 1)
argp_usage(state); argp_usage(state);