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.

[参考译文] MSP430F6775A:SFR

Guru**** 2448780 points
Other Parts Discussed in Thread: MSP430F6775

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1500625/msp430f6775a-sfr

器件型号:MSP430F6775A
主题:MSP430F6775中讨论的其他器件

工具/软件:

您好、

我想问的是、链接器文件中有长度为10字节的 SFR。我注意到它不在脚本中使用。 为什么有这个地址、因为我注意到该地址在用户指南或数据表中没有描述 。我刚刚找到了 SFR 寄存器、它从地址0x100开始。 我找到了这个 ag_04.pdf 、但不知道它是否适用于此模型。 以及 SFR 和头文件中的宏之间的连接:


#ifndef SFR_8位
/*由器件专用链接器命令文件解析的外部引用*/
#define SFR_8bit (address) extern volatile 无符号字符地址
#define SFR_16BIT (address) extern volatile 无符号 int 地址
//#define SFR_20BIT (address) extern volatile 无符号整数地址
typedef void (*_SFR_FARPTR)()
#define SFR_20BIT (address) extern __SFR_FARPTR 地址
#define SFR_32bit (address) extern volatile 无符号长地址

#endif
实际如何解决?
感谢您的答复!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    也许您混淆了两种不同的东西。

    MSP430具有 SFR 寄存器、起始地址为0x100、并在指南中的1.14处进行了介绍。 SFRIE1等 然后、头文件中有 SFR 宏。 有两个不同的地方。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我知道、但这也是我提出问题的原因。 CMD 版本是在某处使用还是使用?

     如何解析这些宏? 这是整个外设文件映射。 我也看到了包含 You Known *(char*)地址的方法、所以为什么要使用它:   

    SFR_16BIT (ADC12CTL0);              /* ADC12+ Control 0 */
    SFR_8位(ADC12CTL0_L);              /* ADC12+ Control 0 */
    SFR_8位(ADC12CTL0_H);              /* ADC12+ Control 0 */
    SFR_16BIT (ADC12CTL1);              /* ADC12+控制1 */
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在 GCC 中、这是在 iomacros.h 中定义的、该文件包含在 msp430f6775.h 中

    #define sfr_b(x) extern volatile unsigned char x
    #define sfr_w(x) extern volatile unsigned int x
    #define sfr_a(x) extern volatile unsigned long int x
    #define sfr_l(x) extern volatile unsigned long int x
    
    

    用"#if defined (__ASSEMBLER__)……#els..."包装 因此同一头文件可用于汇编器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Peter:

    我认为这只是整个430系列的传统格式。

    B.R.

    Sal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    但它与.cmd 文件中的 SFR 没有连接、还是?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Peter:

    是的、它用于外设寄存器访问孔径。

    B.R.

    Sal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    但以下是数据表中的地址 SFR 和外设_8位。 它们的用途是什么? 它们是否在其他地方使用? 根据.map 文件、该存储器范围中没有单个寄存器。 那么它们是否在其他位置使用、或者它们在.cmd 文件中有什么用途?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Peter:

    而它不仅用于 SFR (在 cmd 文件中)、而且还用于所有其他外设寄存器、如 ADC、计时器模块。 这些未在 cmd 文件中定义。

    以下是 ADC 的部分定义:

    CMD 文件通常定义闪存/RAM 和中断向量、而不定义外设映射。

    B.R.

    Sal