Files
hmmmm_avr_generic/manifest_src/generate_manifest_segments_defines.c
2026-04-08 23:12:40 +03:00

53 lines
1.1 KiB
C

#include "mem.h"
#include "mem_seg.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv)
{
if(argc != 2)
{
printf("provide target directory\n");
return 1;
}
const char *dirpath = argv[1];
const char *filename = "seg_data.csv";
char *tgtpath = (char*)calloc(strlen(dirpath) + strlen(filename) + 1, sizeof(char));
if(tgtpath == NULL)
{
return 1;
}
sprintf(tgtpath, "%s/%s", dirpath, filename);
FILE *fptr;
fptr = fopen(tgtpath, "w");
if(fptr == NULL)
{
printf("errof opening file\n");
return 1;
}
memseg_metadata_t requiredSegments[] = MEMSEG_DEFINES;
fprintf(fptr, "seg_id;name;word_len;default_size;default_addr;is_executable\n");
for(size_t i = 0; i < sizeof(requiredSegments)/sizeof(memseg_metadata_t); i++)
{
const memseg_metadata_t seg_def = requiredSegments[i];
fprintf(fptr, "%d;%s;%d;%lu;%lu;%d\n", seg_def.seg_id, seg_def.name, seg_def.word_len, seg_def.default_size, seg_def.default_addr, seg_def.is_executable);
}
fclose(fptr);
free(tgtpath);
return 0;
}