Other Parts Discussed in Thread: UNIFLASH
Hello,
Follow up of unanswered question why the compiler fails to link the Boolean state of struct members between all C modules in the build. Even if using pointers to the members of a struct such a obj->flagEnableRunAndIdentify the compiler is not linking the Boolean state changes of several struct members defined as Boolean type in universal Motor Control Suite. There is a disassociated orphaned symbolic link between identical named symbols between C modules in the project build without a single compiler warning.
What compiler or linker settings could cause this odd behavior in TI 22.6.0.LTS CCS v13.3?
Here are the compiler switches made no difference: --gen_func_subsections=on --gen_data_subsections=on.
Oddly the inverter DC bus voltage ADC data can only be read from obj->estInputData.Iab_A.value[1] rather than motorVars_M1.adcData.VdcBus_V which shows up in CCS debug Expressions +24vdc. So this indicates to me the compiler is not associating symbols with state changes in the CPU instruction decode between parent and children modules of the project build.
These struct member Boolean flags fail to detect or change state between parent and child C modules: (motorVars_M1.flagEnableRunAndIdentify), (motorVarssystemVars.flagEnableSystem), (motorVarsmotorVars_M1.flagEnableMotorIdentify) etc. Struct member Boolean flags do not work when testing the Boolean state in any other C module added to the project build.
When the Boolean state is changed in the parent C module the children C modules have no link connection to the state changes of the parent that asserted the state change.