工具与软件:
大家好、团队成员:
"在尝试启用并包括看门狗计时器时、我遇到了这样的问题。"
错误#10099-D:程序无法放入可用内存中、或者该段包含的调用站点需要无法为此段生成 trampoline。 针对段".cinit"大小0x196进行对齐放置失败。 可用存储器范围:
闪存大小:0x8000未使用:0xf9最大空洞:0xf8
错误#10010:链接过程中遇到错误;未生成"GM1040_2.OUT"
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.
工具与软件:
大家好、团队成员:
"在尝试启用并包括看门狗计时器时、我遇到了这样的问题。"
错误#10099-D:程序无法放入可用内存中、或者该段包含的调用站点需要无法为此段生成 trampoline。 针对段".cinit"大小0x196进行对齐放置失败。 可用存储器范围:
闪存大小:0x8000未使用:0xf9最大空洞:0xf8
错误#10010:链接过程中遇到错误;未生成"GM1040_2.OUT"
尊敬的 Elavarasan:
这实际上表明您的闪存几乎已满。 在这种情况下、您需要减小代码大小以添加更多功能。
但我认为这不是解决您最初的问题所必需的。 我想您的按钮按下操作是由硬件中断处理的吗? 您能解释一下您的软件在按下按钮后正在执行什么操作吗?
在理想情况下、中断将为主进程设置事件。 这比您需要的所有操作都要执行。
如果中断和事件被清除、器件将重新进入睡眠状态。
如果我们能够解决此问题、则无需使用看门狗。
此致、
等等
尊敬的 Theo:
按钮按压处理 :
目前、通过该ScanButton()
功能使用基于轮询的方法来检测按钮按压操作。 检测到按钮按压操作后、buttonPress
会设置标志、并以循环方式传输射频数据包(每次按压3个数据包)。
#ifdef POWER_SHUTDOWN_EN
CPUdelay (8000 * 50);
ScanButton ();
如果(buttonPress){
if (batVal>BATT_LOW_THRESHOLD)
{
minPKT = 3;
}
设计
buttonPress = 0;
}
设计
buttonPress = 0;
#endif
触发射频运行 :
检测到按下按钮操作后、我会通过调用RF_runCmd()
每个数据包来发送3个数据包。 buttonPress
操作完成后、该标志将被清除、为系统下一次按下按钮做好准备。
while (buttonPress || minPkt)
{
if (minPKt)
minPKT---;
rf_cmdPropTx.pktLen = FormPkt (pj);
RF_EventMask terminationReason = RF_runCmd (rfHandle、(RF_Op*)&RF_cmdPropTx、
RF_PriorityNormal、NULL、0);
buttonPress = 0;
rf_yield (rfHandle);
for (timCnt=22;timCnt<扰频数据[41];timCnt++)
{
usleep (packet_interval);
ScanButton ();
}
}
Pj = 0;
#ifdef POWER_SHUTDOWN_EN
/*配置 DIO 以从 SHUTDOWN 模式唤醒*/
PINCC26XX_setWakeup (ButtonTableWakeUp);
/*转至关机*/
POWER_SHUTDOWN (0、0);
while (1);
#else
while (!buttonPress){
power_idleFunc();
}
#endif
}
}