Hello,
Q1: Why does compiler issues warning "unrecognized pragma" (DUAL_STATE), IE: C2000 21.0.6.LTS and below and no linker -md linker command?
Q2: Why is there no ROM section (linker --rom_model) created (f28004x_flash_cpu_is_eabi.cmd) for flash project where ROM symbols library has access to embedded ROM address space?
Q3: Why do Flash loaded applications #pragma DATA_SECTION(variables, "vars_data") are being moved to LSRAMx and did not leave original mcopy(variables/#defines) for .data, .const or create the flash sections?
Reasoning; Flash (struct->variable = #defines/values) can be changed by HID and copied over struct defined alias RAM variable that points back to #define values referenced by struct name/VarAlias or even #define name it points to. The structure of the SDK's projects implementing *.h files for CCS debug Jscripts, do not make easy coding or testing via HID compliant device controls. The C2000 compiler typedef struct seems limited by #pragma and mcopy() combination that do not actually perform copy operation rather move the data, Flash into LSx RAM address space. Using struct named pointers as primary way to get or modify defined control data via single address memory space severally limits HID project builds around SDK frame works.
Q4: Does C2000 CPU have indirect memory addressing for R/W data via symbol addresses (Flash/RAM or RAM/Flash) via indirect addressing using struct alias names as both forward and reverse pointers?
// The RamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart symbols
// are created by the linker. Refer to the device.h CMD file.
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);