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.

[参考译文] CC2530:CC2530看门狗计时器中断

Guru**** 2563960 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/729387/cc2530-cc2530-watch-dog-timer-interrupt

器件型号:CC2530
Thread 中讨论的其他器件:Z-stack

大家好:

  现在 我 想使用看门狗定时器 ISR,但是当我添加看门狗超时中断服务并且 编译错误!时

  

HAL_ISR_Function (halWatchDogIsr、WDT_Vector)

  HAL_ENTER_ISR ();
  WDTIF = 0;
  HAL_EXIT_ISR();

在 我注释 上述代码并 进行编译时不会出现错误

IAR 错误:

ERROR[E16]:段 CRC (大小:0x4对齐:0)对于段定义而言太长。 至少需要额外0x4个字节。 处理句段放置命令时出现问题
"-Z (code) crc=0x0888-0x088B"、在放置时、可用存储器范围为"-none"-
与此放置相关的保留范围:
代码:800-88d INTVEC
位:0-7 BREG
位:80-87 SFR_an
位:90-97 SFR_AN
位:a0-af SFR_an
位:B8-C7 SFR_AN
位:D8-df SFR_an
位:e8-ef SFR_an
位:F8-ff SFR_AN
运行链接器时出错

现在我 不知道如何解决这个问题!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我假设您的闪存已用完、需要删除一些应用程序代码才能使其正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chen:
    我不这么认为、因为我将其更改为 HAL_ISR_Function (halWatchDogIsr、ADC_vector)
    并编译好!

    HAL_ISR_Function (halWatchDogIsr、ADC_vector)

    HAL_ENTER_ISR ();
    WDTIF = 0;
    //HalIndicationLedSet (HAL_IND_STATUS_LED、HAL_LED_MODE_TOGGLE);
    HAL_EXIT_ISR();


    我想、WDT_Vector 在 HA1.2.1堆栈中是否有问题?

    您能帮助我尝试添加 HAL_ISR_Function (halWatchDogIsr、WDT_Vector)吗?
    堆栈中? 谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    查看 WDT 如何成为矢量表中的最后一个中断(请参阅 ioCC2530.h)、我建议您确保在 f8w2530.xcl 链接器配置中分配正确的存储器。 Z-Stack 1.2.2a 似乎没有出现此问题、因此您可以在两个堆栈之间执行差异比较以观察任何更改。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否详细说明一下将以下代码放入 Z-Stack 示例代码以进行验证的位置?
    HAL_ISR_Function (halWatchDogIsr、WDT_Vector)

    HAL_ENTER_ISR ();
    WDTIF = 0;
    HAL_EXIT_ISR();
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chen:
    如果您帮助我验证 HAL_ISR_Function (halWatchDogIsr、WDT_vector)、您可以将其添加到 HA1.2.1堆栈中的 timer.c 中!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ryan:
    我已在器件中打开 OTA 功能、因此内存是在 ota.xcl 链接器配置中分配的、并且我没有对 ota.xcl 进行任何更改!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是指 hal_dimer.c?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ryan:
    我在 ota.xcl 中找到一个问题:
    -Z (code) intvec=_code_start

    -Z (代码) CRC=0x0888-0x088B
    -Z (代码)前导码=0x088C-0x0897

    在 ioCC2530.h 中定义了 WDT_Vector:
    #define WDT_Vector VECT (17、0x8B)/*定时器模式中的看门狗溢出 *

    我想、如果 CRC 地址与 WDT_Vector 地址重叠、如果它确实如此、那么 HA1.2.1堆栈中的三个问题就是一个错误!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您参考在 Z-Stack 1.2.2a 中所做的更改、并确保您遵循《Z-Stack OTA 升级用户指南》。

    此致、
    Ryan