主题:C2000WARE 中讨论的其他器件
工具/软件:
尊敬的团队:
随着代码大小的增加、即存储体 .sysmem : > RAMLS5
精疲力尽。 因此、我将初始设置从更改为 .data : > RAMLS5
至。 .data : > RAMLS6
完成此更改后、函数会调用:
Flash_initModule(FLASH0CTRL_BASE, FLASH0ECC_BASE, DEVICE_FLASH_WAITSTATES);
开始点击__error__()
处理程序:
void __error__(const char *filename, uint32_t line)
{
// ASSERT condition failed. Use filename and line to debug.
ESTOP0;
}
此问题的根本原因可能是什么?如何解决?
在下面添加了初始错误代码。
更改.data 之后
另一个奇怪的点是我也尝试增加长度 RAMLS5 、来自 长度= 0x000800 最终目的 长度= 0x001800、 它开始工作。 但当我根据应用需要添加更多缓冲器时、它又开始进入
__error__()
处理程序:
我做了更多调试工作、可从中找到 设备初始化() 的函数调用 driverlib 初始化 目标 FLASH_initModule (FLASH0CTRL_BASE、FLASH0ECC_BASE、DEVICE_FLASH_WAITSTAT )呼叫。
然后、它应该进入内部的函数定义 flash.c 但它是去一些评论行 //限于,暗示的保证,适销性和适用性的第31行在 flash.c 。
连续时钟 单步进入调试器 我再次发现它正在进入 两种方法 中导出 断言(EPWM_isBaseValid (base)); 从函数调用中提取
EPWM_setCounterCompareValue (uint32_t base、EPWM_CounterCompareModule 比较模块、
uint16_t CompCount)。
但当我使用单相单缓冲器[256]时、同样的功能也能起作用。 我真的是什么错了。
我迫切需要专家的帮助.