CC2640 进入不了main函数
HI ,
在使用贵司的CC2650DK SmartRF06时,我尝试使用BLE-Stack™ Version: 2.1.0中的keyforb参考样例(IAR版本是7.40.3)。
APP,STACK都编译成功并Download板子中,但调试时,发现一直进入不了main函数,当然也不能接收到广播。
如附件所示的variables.jpg以及linker library.jpg中的参数路径等我都检查了,没发现问题。但结果却是如NO main.jpg所示。
请问:
1 是否是工程中的option中还需要设置什么参数?
2 CC2640编译调试时有什么注意事项啊?
谢谢!
HI ,
我尝试过你们的这个帮助:
Q: I am using pre-release silicon (Rev2.0 or Rev2.1) and my software does not run or never reaches main(). When I stop the CPU is stopped in a function called hisCodeIsBuiltForCC26xxHwRev22AndLater_HaltIfViolated. What is wrong?
A:
Support for pre-release silicon is only available in the BLE-Stack V2.0 release using the following procedure. There is no support of pre-release silicon inBLE-Stack V2.1+.
The default CC26XXWARE path to setup files / drivers is set to support release material (Rev2.2). To run the software on older material this variable needs to be changed.
IAR:
- Goto Tools->Configure Customer Argument Variables-->CC26xx TI-RTOS-->CC26XXWARE
Modify CC26XXWARE
- From: C:\ti\tirtos_simplelink_2_11_01_09\products\cc26xxware_2_20_06_14829
- To C:\ti\tirtos_simplelink_2_11_01_09\products\cc26xxware_2_00_06_14829
- Delete OS kernel libraries folder: IAR\Application\CC2640\configPkg [IAR builds only]
- Delete OS kernel source build folder: IAR\Config\src [IAR builds only]
- Close workspace and re-open for changes to take effect
但是我的路径本来就是正确的,不需要修改。
听说2.0协议栈需要将Boot.checkBackdoor = true;将true设置成false,但2.1的本来就没有Boot.checkBackdoor,添加上去,就会编译出错。
请协助解决!
谢谢!
liang,
这个是针对旧版本PG的芯片,PG2.1的解决措施。
你可以确认一下你手里的2640芯片版本,很简单,用smartRFProgrammer 2 连上就能看到。理论上你现在拿到的应该都是量产版本的PG 2.2 及以后的芯片。
我这边试过,keyfob和其他例程一样,执行起来都没有问题。
另外,你有试过其他例程吗?比如simpleBLEPeripheral?
我用的是贵司提供的CC2650DK+SmartRF06。附件是我用flash program2 显示的信息。
simpleBLEPeripheral这个例子也试过,也是不可以进入main函数。
请协助看一下。
Hi ,
我使用的是贵司提供的 CC2650DK SmartRF06开发板,CC2650EM-7ID 1.2。
我用simpleBLEPeripheral例子,也是同样的结果。
请问:CC2640编译调试时有什么注意事项啊?还有什么需要设置的参数吗?
谢谢!
期待你的答复!
liang,
默认情况下,只要装了SDK就能直接用的,什么都不用设置。
你看看你工程里面的options->Debugger里面,Run to下面是main 吗?
HI,
是的。见附件!
HI ,
恩,是的。
HI ,
我发现我的芯片版本是2.1的,但是按照那个帮助将
- Goto Tools->Configure Customer Argument Variables-->CC26xx TI-RTOS-->CC26XXWARE 修改后,肯定是有问题啊。比如编译时有如此问题:
Fatal Error[Pe1696]: cannot open source file "inc/hw_types.h" C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Components\ble\ROM\ROM_Init.c 44
因为我的协议栈安装路径中只有如此显示:C:\ti\tirtos_simplelink_2_13_00_06\products\cc26xxware_2_21_01_15600
在Tools中修改cc26xxware_2_21_01_15600到cc26xxware_2_00_01_15600 那它就肯定找不到一些头文件啊。
我发现贵司网站中针对CC2640只有一个ble_cc26xx_setupwin32_2_01_00_44423.exe协议栈。
期待你的答复!
liang,
如你的截图所示,你的芯片是PG2.1的。
PG2.1芯片最好搭配SDK 2.0 用。SDK2.1 不能确定是否能通过修改配置运行在PG2.1芯片上。
PG2.1的太老了,不是量产的芯片。量产的是PG2.2以后的。
我觉得你怎么好像是没有下载stack协议栈,就直接下载APP了,这样的话,肯定是你描述的情况。
HI ,liang
我现在遇到跟你一样的问题,协议栈版本也跟你是一模一样的,现象也是,请问你的问题解决了吗,怎么解决的啊,我这也捣鼓好几天了!
Hi inner,
你问题解决了吗?你可以使用Flash Programmer 2识别一下你的评估板,查看你的cpu是什么类型的,cpu版本很低的话,只能使用2.0的协议栈。cpu版本高才可以使用2.1的协议栈。
如果是使用2.0协议栈,请按照如下操作:
Q: I am using pre-release silicon (Rev2.0 or Rev2.1) and my software does not run or never reaches main(). When I stop the CPU is stopped in a function called hisCodeIsBuiltForCC26xxHwRev22AndLater_HaltIfViolated. What is wrong?
A:
Support for pre-release silicon is only available in the BLE-Stack V2.0 release using the following procedure. There is no support of pre-release silicon inBLE-Stack V2.1+.
The default CC26XXWARE path to setup files / drivers is set to support release material (Rev2.2). To run the software on older material this variable needs to be changed.
IAR:
- Goto Tools->Configure Customer Argument Variables-->CC26xx TI-RTOS-->CC26XXWARE
Modify CC26XXWARE
- From: C:\ti\tirtos_simplelink_2_11_01_09\products\cc26xxware_2_20_06_14829
- To C:\ti\tirtos_simplelink_2_11_01_09\products\cc26xxware_2_00_06_14829
- Delete OS kernel libraries folder: IAR\Application\CC2640\configPkg [IAR builds only]
- Delete OS kernel source build folder: IAR\Config\src [IAR builds only]
- Close workspace and re-open for changes to take effect
谢谢分享。