diff --git a/scripts/add_cfe_tables_impl.cmake b/scripts/add_cfe_tables_impl.cmake index 845e203..713bd14 100644 --- a/scripts/add_cfe_tables_impl.cmake +++ b/scripts/add_cfe_tables_impl.cmake @@ -32,8 +32,24 @@ function(do_add_cfe_tables_impl TABLE_FQNAME) set(TABLE_GENSCRIPT "${CFS_TABLETOOL_SCRIPT_DIR}/generate_elf_table_rules.cmake") set(TABLE_LIBNAME "tblobj_${ADDTBL_ARG_TARGET_NAME}_${TABLE_FQNAME}") + # determine processor ID and spacecraft ID to use for table. + # If these are not defined, pass 0 instead of a blank (elf2cfetbl will error on non-integer) + if (DEFINED ${ADDTBL_ARG_TARGET_NAME}_PROCESSORID) + set(TABLE_PRID ${${ADDTBL_ARG_TARGET_NAME}_PROCESSORID}) + else() + set(TABLE_PRID 0) + endif() + + if (DEFINED SPACECRAFT_ID) + set(TABLE_SCID ${SPACECRAFT_ID}) + else() + set(TABLE_SCID 0) + endif() + set(TABLE_CMD_OPTS -DTEMPLATE_FILE="${TEMPLATE_FILE}" + -DTARGET_SCID="${TABLE_SCID}" + -DTARGET_PRID="${TABLE_PRID}" -DAPP_NAME="${ADDTBL_ARG_APP_NAME}" -DTARGET_NAME="${ADDTBL_ARG_TARGET_NAME}" -DARCHIVE_FILE="\"$\"" diff --git a/scripts/table_rule_template.d.in b/scripts/table_rule_template.d.in index 4fa6648..e3c70af 100644 --- a/scripts/table_rule_template.d.in +++ b/scripts/table_rule_template.d.in @@ -2,6 +2,8 @@ cfetables: ${TABLE_BINARY} +${TABLE_BINARY}: CFE_TABLE_SCID := ${TARGET_SCID} +${TABLE_BINARY}: CFE_TABLE_PRID := ${TARGET_PRID} ${TABLE_BINARY}: CFE_TABLE_CPUNAME := ${TARGET_NAME} ${TABLE_BINARY}: CFE_TABLE_APPNAME := ${APP_NAME} ${TABLE_BINARY}: CFE_TABLE_BASENAME := ${TABLE_NAME} diff --git a/scripts/tabletool_rule.mk b/scripts/tabletool_rule.mk index 6b34c75..691b985 100644 --- a/scripts/tabletool_rule.mk +++ b/scripts/tabletool_rule.mk @@ -12,4 +12,4 @@ cfetables: # As a workaround, $CURDIR is used. staging/%.tbl: @mkdir -pv "$(dir $(@))" - cd "$(dir $(@))" && $(TBLTOOL) $(TBLTOOL_FLAGS) "$(CURDIR)/$(<)" + cd "$(dir $(@))" && $(TBLTOOL) -p$(CFE_TABLE_PRID) -s$(CFE_TABLE_SCID) "$(CURDIR)/$(<)"