自定义了一个头文件,里面包含一个结构体,
#ifndef Parameterdef
#define Parameterdef
#endif
//Global parameters and variables definition
struct SYSTEMPARAMS {
double TBPRD;
double SW_Freq;
}
extern volatile struct SYSTEMPARAMS param;
然后在DSP2833x_GlobalVariableDef.c 中加入了全局变量声明语句,如下:
#ifdef __cplusplus
#pragma DATA_SECTION("paramFile")
#else
#pragma DATA_SECTION(param,"paramFile");
#endif
volatile struct SYSTEMPARAMS param;
之后再DSP2833x_Headers_nonBIOS.cmd中定义了结构体的地址,如下:
MEMORY中:
I2CA : origin = 0x007900, length = 0x000040 /* I2C-A registers */
SYSTEMPARAMS : origin = 0x007980, length = 0x000100 /* SYSTEMPARAMS register*/
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations. */
SECTION中:
I2caRegsFile : > I2CA, PAGE = 1
paramFile : > SYSTEMPARAMS, PAGE = 1
/*** Code Security Module Register Structures ***/
CsmPwlFile : > CSM_PWL, PAGE = 1
编译没有错误,但是在初始化过程中对TBPRD进行赋值,
param.TBPRD=1000;
但是观察变量param.TBPRD的值总是显示为0,请问问题出在哪儿呢?
Yanjun Tian:
回复 10#:
问题解决了,非常感谢!
自定义了一个头文件,里面包含一个结构体,
#ifndef Parameterdef
#define Parameterdef
#endif
//Global parameters and variables definition
struct SYSTEMPARAMS {
double TBPRD;
double SW_Freq;
}
extern volatile struct SYSTEMPARAMS param;
然后在DSP2833x_GlobalVariableDef.c 中加入了全局变量声明语句,如下:
#ifdef __cplusplus
#pragma DATA_SECTION("paramFile")
#else
#pragma DATA_SECTION(param,"paramFile");
#endif
volatile struct SYSTEMPARAMS param;
之后再DSP2833x_Headers_nonBIOS.cmd中定义了结构体的地址,如下:
MEMORY中:
I2CA : origin = 0x007900, length = 0x000040 /* I2C-A registers */
SYSTEMPARAMS : origin = 0x007980, length = 0x000100 /* SYSTEMPARAMS register*/
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations. */
SECTION中:
I2caRegsFile : > I2CA, PAGE = 1
paramFile : > SYSTEMPARAMS, PAGE = 1
/*** Code Security Module Register Structures ***/
CsmPwlFile : > CSM_PWL, PAGE = 1
编译没有错误,但是在初始化过程中对TBPRD进行赋值,
param.TBPRD=1000;
但是观察变量param.TBPRD的值总是显示为0,请问问题出在哪儿呢?
10#:
回复 Yanjun Tian:
多谢反馈。
如果是上面我提到的原因,请确认答案并关闭帖子,要不也请分享问题的原因,谢谢!
自定义了一个头文件,里面包含一个结构体,
#ifndef Parameterdef
#define Parameterdef
#endif
//Global parameters and variables definition
struct SYSTEMPARAMS {
double TBPRD;
double SW_Freq;
}
extern volatile struct SYSTEMPARAMS param;
然后在DSP2833x_GlobalVariableDef.c 中加入了全局变量声明语句,如下:
#ifdef __cplusplus
#pragma DATA_SECTION("paramFile")
#else
#pragma DATA_SECTION(param,"paramFile");
#endif
volatile struct SYSTEMPARAMS param;
之后再DSP2833x_Headers_nonBIOS.cmd中定义了结构体的地址,如下:
MEMORY中:
I2CA : origin = 0x007900, length = 0x000040 /* I2C-A registers */
SYSTEMPARAMS : origin = 0x007980, length = 0x000100 /* SYSTEMPARAMS register*/
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations. */
SECTION中:
I2caRegsFile : > I2CA, PAGE = 1
paramFile : > SYSTEMPARAMS, PAGE = 1
/*** Code Security Module Register Structures ***/
CsmPwlFile : > CSM_PWL, PAGE = 1
编译没有错误,但是在初始化过程中对TBPRD进行赋值,
param.TBPRD=1000;
但是观察变量param.TBPRD的值总是显示为0,请问问题出在哪儿呢?
Yanjun Tian:
回复 10#:
第一次发帖,规矩不熟,见谅。
自定义了一个头文件,里面包含一个结构体,
#ifndef Parameterdef
#define Parameterdef
#endif
//Global parameters and variables definition
struct SYSTEMPARAMS {
double TBPRD;
double SW_Freq;
}
extern volatile struct SYSTEMPARAMS param;
然后在DSP2833x_GlobalVariableDef.c 中加入了全局变量声明语句,如下:
#ifdef __cplusplus
#pragma DATA_SECTION("paramFile")
#else
#pragma DATA_SECTION(param,"paramFile");
#endif
volatile struct SYSTEMPARAMS param;
之后再DSP2833x_Headers_nonBIOS.cmd中定义了结构体的地址,如下:
MEMORY中:
I2CA : origin = 0x007900, length = 0x000040 /* I2C-A registers */
SYSTEMPARAMS : origin = 0x007980, length = 0x000100 /* SYSTEMPARAMS register*/
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations. */
SECTION中:
I2caRegsFile : > I2CA, PAGE = 1
paramFile : > SYSTEMPARAMS, PAGE = 1
/*** Code Security Module Register Structures ***/
CsmPwlFile : > CSM_PWL, PAGE = 1
编译没有错误,但是在初始化过程中对TBPRD进行赋值,
param.TBPRD=1000;
但是观察变量param.TBPRD的值总是显示为0,请问问题出在哪儿呢?
10#:
回复 Yanjun Tian:
没关系,我们只是希望确认答案后可以方便大家参考。多谢支持。
TI中文支持网



