刚学习MSP430,以前学的DSP2812,知道里面的寄存器是如何通过标识符转换成地址的,但是MSP430的寄存器与具体地址对应的方式与2812的方式不同,问题出在这个文件,一直没搞懂这个文件里所写的每行代码的含义,难道是定义每个标识符的地址么?在网上也查不到相关的用法。求解。如果我用头文件的形式书写,那应该是什么样的格式。
比如这句话:WDTCTL = 0x015C;是否与#define WDTCTL (*(unsigned int *)(0x015C))是一个含义?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
刚学习MSP430,以前学的DSP2812,知道里面的寄存器是如何通过标识符转换成地址的,但是MSP430的寄存器与具体地址对应的方式与2812的方式不同,问题出在这个文件,一直没搞懂这个文件里所写的每行代码的含义,难道是定义每个标识符的地址么?在网上也查不到相关的用法。求解。如果我用头文件的形式书写,那应该是什么样的格式。
比如这句话:WDTCTL = 0x015C;是否与#define WDTCTL (*(unsigned int *)(0x015C))是一个含义?
我注意过您说的问题。您给的截图中,宏定义里面也只是定义了 WDTCTL 为一个外部变量,并没有把WDTCTL变量指向地址空间0x150;如果我把cmd文件中的“WDTCTL = 0x015C;”这句话删掉,那么会有如下报错:
undefined first referenced
symbol in file
--------- ----------------
WDTCTL E:\CCS\ccsv6\tools\compiler\msp430_4.3.3\lib\rts430x_lc_rd_eabi.lib<autoinit.obj>
error #10234-D: unresolved symbols remain
也就是说cmd文件里“WDTCTL = 0x015C;”这句话是有作用的,我是没有找到相关语法说在cmd文件里这样的语句代表什么意思。我想知道cmd里这句话的含义。谢谢。
把你的cmd文件发来看看
cmd一般是link的时候用的,删掉了当然会报错啊