This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F: 在simple_peripheral_oad_onchip这个OAD例程上进行RCOSC相关配置

Part Number: CC2640R2F
Other Parts Discussed in Thread: UNIFLASH, CC2642R,

使用的SDK版本是simplelink_cc2640r2_sdk_1_40_00_45

因为硬件的设计是没有使用32.768K的外部晶振,所以之前是使用的simple_peripheral例程中的RCOSC配置

查到SDK中有simple_peripheral_oad_onchip例程,考虑是把功能移植过来,但是应该也需要对这个例程做RCOSC相关的操作

参考这里的步骤来修改:https://dev.ti.com/tirex/content/simplelink_cc2640r2_sdk_5_30_00_03/docs/blestack/ble_user_guide/html/ble-stack-3.x/custom-hardware.html#using-32-khz-crystal-less-mode

按照文档指引,如下操作:

1、在bim_oad_onchip_cc2640r2lp_app中将ccfg_app_ble.c状态进行exclude from build操作

2、在simple_peripheral_cc2640r2lp_oad_onchip_app,将相关文件(rcosc_calibration.crcosc_calibration.h and ccfg_app_ble_rcosc.c)直接复制粘贴到simple_peripheral_cc2640r2lp_oad_onchip_app\Application路径下,增加宏定义USE_RCOSC,文档中的其他操作在这个配置的源码中都已经实现。

3、编译时,报错

查找这个函数,发现是有定义的,但不知道为什么报错,重新添加头文件也不行。我就暂时注释掉了RCOSC_enableCalibration()中的语句HCI_EXT_SetSCACmd(500);

3、这样操作完成后发现编译simple_peripheral_cc2640r2lp_oad_onchip_app生成的bin文件会超出0x9000,占用后面的空间,造成在使用UniFlash时报错overlap,因此在宏定义中修改POWER_SAVING_____X取消低功耗,这样就不会超出

4、simple_peripheral_cc2640r2lp_oad_onchip_stack中也修改POWER_SAVING_____X取消低功耗

5、重新编译后,使用UniFlash将3个hex文件、1个bin文件烧写进芯片,使用手机可以扫描到设备名为“SBP OAD APP v001”的设备,点击连接但是一直是建立连接失败。这样情况和代码未做相关修改时类似(测试用的硬件上没有32.768K晶振) 

6、请问这样操作是否正确?如果正确的话,最后结果不正确还有其他原因吗?

7、另外,如果不需要使用低功耗功能,在宏定义中将POWER_SAVING注释或修改,是不是不用做上述的相关的操作就可以直接使用?但是这样似乎是不行的,之前在simple_peripheral例程中,这样使用还是出现连接失败的情况

感谢回复