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.

[参考译文] CCS/MSP430F2619:slaa290a RTC 错误? (CCS7.1)

Guru**** 2589265 points
Other Parts Discussed in Thread: MSP430F2618, MSP430F2619

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/628758/ccs-msp430f2619-slaa290a-rtc-bug-ccs7-1

器件型号:MSP430F2619
主题中讨论的其他器件:MSP430F2618

工具/软件:Code Composer Studio

我使用计时器 B 和 ISR 将 RTC 代码(从 TI 网站 slaa290a.zip 下载)应用到项目中。

ISR 中断起作用、但当计数递增时、它会崩溃并每秒复位 MCU。

我在遵守期间收到警告消息、可能与此相关。 我想注意的是、手册中提到 了 RTC_Calendar.s43、但 压缩的文件夹中只有 RTC_Calendar.asm。

说明资源路径位置类型
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"BIN2BCD4"溢出;17位重定位地址0x11ba8太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj "、代码行= 0x001F+、代码= 0x001F+、代码行/RTC+"C_Calendar_Lab413"、代码= 0x001F+、RTC+"C_Calendar_Wattal.text = 0x413"、偏移量= 0x000
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"BIN2BCD4"溢出;17位重定位地址0x11ba8太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj "、代码行= 0x001F+、代码= 0x0000.asm = 0x000411b.C +、代码行/RTCCM_"C_Calendar"、代码= 0x001F_RTM+"C_Lab6_Lab64_Lab64_RTML.TM"
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"BIN2BCD4"溢出;17位重定位地址0x11ba8太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj "、代码行= 0x275M+、代码= rtc_Calendar /rtc = 0x275M+"C_Lab6+"C.text = 0x001F"、偏移量= 0x27426"
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"除法"溢出;17位重定位地址0x11bd0太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj"、偏移量= 0x001F+"R_RTC_Calendar.text = 0x236"、"R_Lab6_Calendar.text = 0x236+"R&X_Lab6+"C_Calendar"部分)
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"firstSunday "溢出;17位重定位地址0x11ae4太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj、偏移量= 0x001F+/RTC+"C_Calendar_X16")
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"LastSunday "溢出;17位重定位地址0x11b0c 太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj "、代码行= 0x000310.1+、代码= rtc_c+、代码行/rtc = 0x0001f_c+/rtc = 0x0001f_c+、代码/rtc = 0x0001f_c+
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"LastSunday "溢出;17位重定位地址0x11b0c 太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj 太大、不能在16位字段中进行编码(类型='R_MSP430X_ABS16'_Lab8_RTM)+)、偏移量= 0x0008+"RCCORT.1M+"CTRC+8+"CTRC+"CTRC+"C_
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"modulus"溢出;17位重定位地址0x11bb8太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj"、偏移量= 0x001F+"R_RTCCES.text = 0x409+"C_Calendar"部分)
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"secondur星期日"溢出;17位重定位地址0x11af4太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj"、偏移量= 0x281+"CTRC+"C_Calendar_Calendar.text = 0x152"、OFF_C+"R&X_Lab6_Lab4F 文本")
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"testLeap"溢出;17位重定位地址0x1192太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj"、偏移量= 0x284+"C_Calendar_Lab4X_Lab4X_line"、文本= 0x001F_RTC+"C_Calendar_Lab4284+"C_Lab64")
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"TI_daysInMont"溢出;17位重定位地址0x11918太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar_Vendar+"CTRC+"CTRYOUR = 0x00000094_Calendar"、"R&X_Calendar"部分)
"="">processors.wiki.ti.com/.../17003"> 从汇编代码范围"$./RTC_Calendar.asm:132:479$"重定位到符号"TI_mNumbers"溢出;17位重定位地址0x1192a 太大、无法在16位字段中进行编码(类型='R_MSP430X_ABS16'(15)、文件="./RTC_Calendar.obj "、代码行= 0x404+"R_MSP430X_ABS16"、偏移量= 0x404"、代码= 0x404+"CTRC+"C_Calendar_Calendar"部分/RTC.1F、代码= 0x404+"C_Calendar"部分

#include "3_RTC/MSP430_RTC.h"
#include "3_RTC/RTC_Calendar.h"

//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ ADC12_Init
//目的:
//输入:
//输出:
//注:
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
void RTC_Init (void)

//FLL_CTL0 |= XCAP18PF;//为32k xtal 设置负载电容
settime (0x12、0、0、0);//将时间初始化为12:00:00 AM
TB0CCR0 = 32768-1;
TBCTL = TBSSEL_1_MC_1;// ACLK、upmode
TBCCTL0 |= CCIE;//启用 CCrO 中断
_EINT();

//================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== 定时器 B7
//========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
#pragma vector=TIMERB0_vector
中断空 TIIMERB_B7_ISR (空)

增量 Seconds ();
//zprintf ("tick\n");
//LPM3_EXIT;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该代码专为具有小型代码模型(< 64KB)的 MCU 而设计、但 MSP430F2618是一款大型代码模型器件。 此外、默认命令链接器文件会首先将.text 分配放置在上部存储器(>0x10000)中、这会导致与 RTC_Calendar 汇编指令发生冲突。 删除这些警告的简单选项包括将 lnk_msp430f2619.cmd 的第116行更改为".text:{}>> FLASH | FLASH2"(或者,只需完全将 FLASH2退出)或将代码内存模型指定为 Project Properties 的内部较小-> CCS Build -> MSP430 Compiler -> Processor Options。 S43文件涉及 IAR 项目、同样适用于 CCS 的 ASM 也是如此。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    与标准相比、使用 TI 库有哪些优势 库?
    (除了内存不足的 strftim()之外,我将编写替代方案)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以从您的终端重新规范代码以与大型数据模型配合使用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有评估可用的软 RTC 资源、也没有尝试使用大内存/数据模型重新编译代码。

    此致、
    Ryan