请问程序掉在LL_Init(taskID++)库函数里出不来可能是什么原因?
我有两个蓝牙模块,一个是CC2540芯片的,一个是CC2541的
改simpleCenter例程,是基于CC2540芯片的,但是程序写入后运行在协议栈LL_Init(taskID++)函数里出不来,这时电流变大,大约9mA(包括母板电流)。
程序一点没有变化,就在IAR工程option中改了芯片型号为CC2541,换上CC2541的模块却运行正常,彻底完成初始化后只有300uA(万用表分辨率,且包括母板电流例如显示屏等)。
请问这个问题可能出在哪里?会不会模块本身也有可能有问题?网上便宜买的
看反汇编窗口,程序在如图标记的地方循环,JNZ 0x2F3E5,请问可能是什么原因引起的?
补充:这张图是在忘了变换buildconfig.cfg文件下得到的,所以不一定反映真实问题。不过在换成CC2540之前是配置的对应的buildconfig.cfg文件,不过当时没有看程序到底怎么出不来那个函数的。
另外忘了说了,什么buildconfig.cfg之类的文件我是置换了相应的芯片工程对应的的
由于是过了几天的事情,所以忘了说了
当然也许还是有可能存在什么配置问题的,我不是直接在原来的示例工程中改的,我是新建了一个工程。
使用CCdebugger直接烧写hex文件,发现提示erro in HEX file verification
校验通不过,不过为啥IAR调试的时候没有提示?选择了IAR校验CRC-16选项呀
为啥校验失败?
看来还是先检查一下我的调试接口线路有无问题。
也有无可能芯片内FLASH有问题?
已经解决
不好意思,还是因为CC2540和CC2541混淆了,库文件引用错误。主要是因为不是连续时间写程序,相隔很长时间,导致有些设置忘了。
现在用2540也和SensorTag连接正常
不过在IAR中调试不了,用Flash Orogrammer直接烧写HEX文件还是最后校验不成功,但是复位后运行操作在LCD上显示还正常似乎。
还待进一步检查,不过此帖问题应该算是不存在了,结帖。哎,难堪
已经解决
不好意思,还是因为CC2540和CC2541混淆了,库文件引用错误。主要是因为不是连续时间写程序,相隔很长时间,导致有些设置忘了。
现在用2540也和SensorTag连接正常
不过在IAR中调试不了,用Flash Programmer直接烧写HEX文件还是最后校验不成功,但是复位后运行操作在LCD上显示还正常似乎。
还待进一步检查,不过此帖问题应该算是不存在了,结帖。
哎,难堪
这个现象我之前也遇到过,原因是我的目标板是CC2541但是编译时选择的lib是CC2540那一套的,导致之后运行也是卡在这个函数.
谢谢回复
我已经发现了这个问题,可是自己回复的帖子还没有显示出来,不知道什么原因,有的帖子会要经过论坛审核不能立刻显示出来。
是我昨天晚上睡觉的时候想起来会不会是这个问题的,上午起来打开电脑一看,果然如此。