1
0
mirror of https://github.com/mist-devel/mist-firmware.git synced 2026-02-02 06:21:16 +00:00

Support core name override from ARC file

This commit is contained in:
Gyorgy Szombathelyi
2020-02-12 21:09:50 +01:00
parent b5e3b0c666
commit 1571146c8f
4 changed files with 26 additions and 7 deletions

View File

@@ -10,6 +10,7 @@
static char mod;
static char rbfname[9];
static char corename[9];
static char conf[MAX_CONF_SIZE];
static int conf_ptr;
@@ -24,6 +25,7 @@ const ini_section_t arc_ini_sections[] = {
const ini_var_t arc_ini_vars[] = {
{"MOD", (void*)(&mod), UINT8, 0, 127, 1},
{"RBF", (void*)rbfname, STRING, 1, 8, 1},
{"NAME", (void*)corename, STRING, 1, 8, 1},
{"CONF", (void*)arc_set_conf, CUSTOM_HANDLER, 0, 0, 1},
};
@@ -50,21 +52,33 @@ char arc_open(char *fname)
arc_ini_cfg.nsections = (int)(sizeof(arc_ini_sections) / sizeof(ini_section_t));
arc_ini_cfg.nvars = (int)(sizeof(arc_ini_vars) / sizeof(ini_var_t));
rbfname[8] = 0;
conf[0] = 0;
conf_ptr = 0;
mod = -1;
arc_reset();
mod = -1; // indicate error by default, valid ARC file will overrdide with the correct MOD value
ini_parse(&arc_ini_cfg, 0);
iprintf("arc conf=%s\n",conf);
return mod;
}
void arc_reset()
{
memset(rbfname, 0, sizeof(rbfname));
memset(corename, 0, sizeof(rbfname));
conf[0] = 0;
conf_ptr = 0;
mod = 0;
}
char *arc_get_rbfname()
{
return rbfname;
}
char *arc_get_corename()
{
return corename;
}
char *arc_get_conf()
{
return conf;
}
}

View File

@@ -8,7 +8,9 @@
#define ARC_FILE_H
char arc_open(char *fname);
void arc_reset();
char *arc_get_rbfname();
char *arc_get_corename();
char *arc_get_conf();
#endif // ARC_FILE_H

2
menu.c
View File

@@ -3287,6 +3287,8 @@ void HandleUI(void)
}
strncpy(file.name, " RBF", 11);
strncpy(file.name, arc_get_rbfname(), strlen(arc_get_rbfname()));
} else {
arc_reset();
}
user_io_set_core_mod(mod);

View File

@@ -202,7 +202,8 @@ char user_io_is_8bit_with_config_string() {
static char core_name[16+1]; // max 16 bytes for core name
char *user_io_get_core_name() {
return core_name;
char *arc_core_name = arc_get_corename();
return *arc_core_name ? arc_core_name : core_name;
}
static void user_io_read_core_name() {
@@ -213,7 +214,7 @@ static void user_io_read_core_name() {
if(p && p[0]) strcpy(core_name, p);
}
iprintf("Core name is \"%s\"\n", core_name);
iprintf("Core name from FPGA is \"%s\"\n", core_name);
}
void user_io_set_core_mod(char mod) {