总有些无聊的人

[复制链接]
4331|33
 楼主| eworker 发表于 2008-8-22 13:53 | 显示全部楼层 |阅读模式
 楼主| eworker 发表于 2008-8-22 13:54 | 显示全部楼层

哪位兄台指点一二,谢谢。

 楼主| eworker 发表于 2008-8-22 14:53 | 显示全部楼层

为了增加模块之间的独立性,用了大量的指针和指针的指针

if (cp1 < cp2){...}
怎么会没有意义?比如:
while (cp1 < cp2)
{
    cp1++;
    ...
}
音乐乐乐 发表于 2008-8-22 17:23 | 显示全部楼层

100% 是程序问题

 楼主| eworker 发表于 2008-8-22 17:24 | 显示全部楼层

不懂,别说程序有问题。

mgarm 发表于 2008-8-22 17:38 | 显示全部楼层

不要使用仿真器,在实际硬件试一下!

 楼主| eworker 发表于 2008-8-22 18:22 | 显示全部楼层

前途路漫漫

所以然。
农民讲习所 发表于 2008-8-22 19:30 | 显示全部楼层

PICC时很糟糕

可以试试:比较时强行转换为整数比较
hotpower 发表于 2008-8-22 20:40 | 显示全部楼层

除了dps/arm,pic24/pic30是很好的选择

yewuyi 发表于 2008-8-23 08:56 | 显示全部楼层

我不已经讲过了吗?

就你给出那一段代码在PICC805+MPLAB+PIC16F913的基础上测试,结果是正确的,至于你是否还有其它代码,并且这个其它代码是否工作正常,我就不清楚了。

地址比较虽然也是可以执行的,但一般来说,个人认为,这不是什么好主意,在原帖中我也已经提醒过你了啊!?

如果芯片是硬件堆栈的,一般就太不适合使用函数指针,非得要用的话,付出的代价就是效率,因为编译器只能开辟RAM区中的某一段做这个使用,因为是硬件堆栈的缘故,真正的调用、返回都是通过直接改动PC指针来实现的,我还真没见过多少人在PIC16/18上使用函数指针的,在PIC24上到是有不少人这么弄。
yewuyi 发表于 2008-8-23 08:57 | 显示全部楼层
 楼主| eworker 发表于 2008-8-23 10:36 | 显示全部楼层

下面是程序中的出现问题的函数

原贴中的描述可能不太清楚。


sint16 inReqOutRep(uint8 **obp, uint16 olen, const uint8 *ibp, uint16 ilen)
{
    const     uint8     *ibpend, *inp;
    uint8     *obpend, *outp;

    ibpend = ibp + ilen;    /* Read from start to end */
    inp = ibp;

    outp = *obp;
    obpend = *obp - olen;
    
    while (inp < ibpend)
    {
         ....  //无论如何测试,里面代码运行不到
    }  
}
yewuyi 发表于 2008-8-23 10:39 | 显示全部楼层

呵呵,建议LZ赶快向HOTPOWER拜师。。。

俺晕。。。
 楼主| eworker 发表于 2008-8-23 10:44 | 显示全部楼层

晕,也没用。

上面的代码51、x86、LPCARM上都没有问题。
 楼主| eworker 发表于 2008-8-23 10:46 | 显示全部楼层

只能说PICC18、MCC18不能正确编译罢了。

hotpower 发表于 2008-8-23 10:58 | 显示全部楼层

看while(1){}能测试否???

估计inp < ibpend永远不成立~~~
 楼主| eworker 发表于 2008-8-23 11:03 | 显示全部楼层

to hotpower

while (1) {...}成立。
yewuyi 发表于 2008-8-23 11:12 | 显示全部楼层

ibpend = ibp + ilen; /* Read from start to end

这个可能有问题;

因为你是这么定义的: const     uint8     *ibpend, *inp


PIC的ROM不一定是按照字节或者字编址的
 楼主| eworker 发表于 2008-8-23 11:13 | 显示全部楼层

const和rom攀的上亲?

yewuyi 发表于 2008-8-23 11:14 | 显示全部楼层

个人认为那段代码如果不是程序问题,

应该是可以正确编译和执行的。。。


即使PICC18、MCC18功能稍简单,但这个代码应该是可以编译正确,不至于犯错的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

176

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部