#include "version/version.h" #pragma location=".progver" static __root const sProgVer_t _hidden_sProgramVersion = PROGVER_FILLER_v0("ACMx4,USBTMC.SCPI"); #pragma location=".progvercrc" static __root const sProgVerCRC_t _hidden_sProgramVersionChecksumm; // 13/09/18 // @pProgramVersion: Volatile accessor for @_hidden_sProgramVersion // Makes the compiller to avoid inlining sProgVer_t's fields inside code // when the direct access is used, e.g _hidden_sProgramVersion.firmware_version // Due to the @_hidden_sProgramVersion is actually hidden object inaccessible // from other modules, the only way to get access is volatile accessor @pProgramVersion. // But because of this pointer is 'volatile' the compiller avoids inlining while // accessing fields and works with fields by reading acutal memory. volatile const sProgVer_t * pProgramVersion = &_hidden_sProgramVersion;