工具/软件:TI C/C++编译器
大家好,我正在测试ILPFC项目,它写在汇编和C中
以下代码位于"ADCDRV_1CH.ASM"中
ADCDRV_1CH_INIT .MACRO n
===================================================
_ADCDRV_1CH_RLT:n:.USect "ADCDRV_1CH_Section",2,1,1;2表示2个单词,32位
;发布终端指针以便从C环境进行访问
.def _ADCDRV_1CH_RLT:n:
MOVL XAR2,#ZeroNet;“ZeroNet”在ISR中初始化为0
MOVW DP,#_ADCDRV_1CH_RLT:n:
MOVL @_ADCDRV_1CH_RLT:n:,XAR2;零输出终端指针
{\f2 .endm}
与下面的代码一起,我们定义了11个变量 ADCDRV_1CH_Rlt1-ADCDRV_1CH_Rlt11,这些变量的大小为2个字。
ADCDRV_1CH_INIT 1;IPFC//这些代码位于ILPFC-DPL-ISR.ASM中
ADCDRV_1CH_INIT 2;IPFC
ADCDRV_1CH_INIT 3;IPFC
ADCDRV_1CH_INIT 4;IPFC
ADCDRV_1CH_INIT 5;IPFC
ADCDRV_1CH_INIT 6;IPFC
ADCDRV_1CH_INIT 7;IPFC
ADCDRV_1CH_INIT 8;IPFC
ADCDRV_1CH_INIT 9;Vpfc
ADCDRV_1CH_INIT 10;VL_fb
ADCDRV_1CH_INIT 11;VN_fb
在ILPFC-main.c中,有以下代码。
// ADC驱动器宏。 IPFC采样过采样8次。
extern volatile long *ADCDRV_1CH_Rlt1;//实例#1,IPFC
extern volatile long *ADCDRV_1CH_Rlt2;//实例#2,IPFC
extern volatile long *ADCDRV_1CH_Rlt3;//实例#3, IPFC
extern volatile long *ADCDRV_1CH_Rlt4;//实例#4, IPFC
extern volatile long *ADCDRV_1CH_Rlt5;//实例#5, IPFC
extern volatile long *ADCDRV_1CH_Rlt6;//实例#6, IPFC
extern volatile long *ADCDRV_1CH_Rlt7;//实例#7, IPFC
extern volatile long *ADCDRV_1CH_Rlt8;//实例#4, IPFC
extern volatile long *ADCDRV_1CH_Rlt9;//实例#5, Vbus
extern volatile long *ADCDRR_1CH_Rlt10;//实例#6, VL_fb.
extern volatile long *ADCDRV_1CH_Rlt11;//实例#7, VN_fb
我的问题是:
代码"extern volatile long *ADCDRV_1CH_Rlt1"是否使变量"ADCDRV_1CH_Rlt1"成为指针?
我还可以写 "extern volatile long ADCDRV_1CH_Rlt1"来使变量 "ADCDRV_1CH_Rlt1"成为一个长数字,对吗?
但是我不能写"extern volatile int ADCDRV_1CH_Rlt1"来使变量 "ADCDRV_1CH_Rlt1"成为短数字,因为短数字是16位,而在程序集中"ADCDRV_1CH_Rlt1"被分配为32位,对吗?