return -CMDERR_BADPAR;
}
+/**
+ * Flag to recognize whether the FlexRay driver was already initialized. If it was, no further configuration is allowed.
+ */
+static boolean_t fr_initialized = FALSE;
/**
* This structure contains global FlexRay configuration.
unsigned depth, slot, cycleset, maxpayload;
Fr_TMS570LS_BufferConfigType tmp_buffer;
+ if (fr_initialized) {
+ rpp_sci_printf("FlexRay configuration can not be modified after frbtinit was called.\n");
+ return -CMDERR_BADCFG;
+ }
+
ret = sscanf(param[2], "slot%i depth%i %2s cyc%i max%i %10s %10s",
&slot,
&depth,
char buf_type, channel[3],rxtx[3], single_continuous[11];
unsigned buffer, slot, cycleset, maxpayload, intr, preamb;
+ if (fr_initialized) {
+ rpp_sci_printf("FlexRay configuration can not be modified after frbtinit was called.\n");
+ return -CMDERR_BADCFG;
+ }
+
ret = sscanf(param[1], "%c%i slot%i %2s cyc%i %2s max%i %10s ppi%i int%i",
&buf_type,
&buffer,
*/
int cmd_do_fr_user_config(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[]) {
char* token;
+
+ if (fr_initialized) {
+ rpp_sci_printf("FlexRay configuration can not be modified after frbtinit was called.\n");
+ return -CMDERR_BADCFG;
+ }
+
token = strtok(param[1], " ");
if (strcmp(token, "cluster") == 0) {
if (cmd_fr_config_cluster_params(param[2]) == FAILURE) {
retVal = rpp_fr_init_driver(Fr_ConfigPtr, &error);
if (retVal == SUCCESS) {
rpp_sci_printf("FlexRay driver initialized.\r\n");
+ fr_initialized = TRUE;
}
else {
retVal = rpp_fr_init_controller(0, &error);