MCC18和PICC使用中发现的问题
MCC18中使用函数指针,即报错如下:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
例如:mibp->get(mvp - mibp->mvp, tabix, &vptr);
PICC18中指针的地址,报错如下:expression syntax。例如:
uint8 *cp;
uint buffo[100];
cp = &buffo;
哪位大侠能指点一下?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
uint8 *cp1;
uint8 *cp2;
uint8 buffo[100];
cp1 = buffo;
cp2 = buffo + 0x21u;
if (cp1 < cp2){...}
以上代码在51、x86、arm7都用过,没有任何问题,但在pic中,编译可以通过,但if逻辑根本不成立,根本运行不到if里面的语句。仿真时将鼠标移到cp1、cp2、buffo上面,显示cp1为0x9f,cp2为0xbc0。
后来反复想,可能是pic的内存分页机制导致的。惨痛的是,我的程序又要重新写了。
后悔使用pic!!!
uint8 *cp1;
uint8 *cp2;
uint8 buffo[100];
cp1 = buffo;
cp2 = buffo + 0x21u;
if (cp1 < cp2){...}
以上代码能够执行到
if (cp1 < cp2){...}执行体里面.
你即使是怀疑是内存分页机制导致,也应该通过查看汇编语句以及map文件求证,
而不是没搞清楚,
就瞎怀疑.
一周热门 更多>