CC2541与CC2540工程的转换
大家好:
请问在不涉及IIC和USB编程的状况下,CC2541和CC2540程序能简单的修改一些参数而应用到另一个芯片上吗?
例如选择器件,更改宏定义,修改iocc2541.h和iocc2540。谢谢!
如果 CC2540 上的 USB 未启用并且 CC2541 上的I2C/ 额外 I/O 未启用,那么 CC2541 与 CC2540 在 6-mm x 6-mm 方形扁平无引脚 (QFN)40 封装内引脚兼容。
感谢你的答复,我主要是说软件方面的改动。例如我前期用CC2540开发了程序,但是生产时想上CC2541。这个时候软件需要做的修改。
应该可以的。
Haizhi,
是完全可以的。
如果你仔细看,你会发现TI 提供的BLE 工程里面,同时包含了CC2540 和CC2541 的工程,分开独立的。
你要自己修改的话,也是很容易。
由于两颗芯片的核是一样的,只要稍微修改一些宏定义和库就能通用了。
建议你找比如说SimpleBLEPeripheral 的CC 2540 版本和 CC2541版本对比一下就很清楚了:)
我仔细查看SimpleBLEPeripheral 的CC 2540 版本和 CC2541版本对比,发现只有两个文件有差别,分别为:
$TOOLKIT_DIR$\inc\ioCC2541.h和$PROJ_DIR$\..\..\Libraries\CC2541DB\bin\CC2541_BLE_peri.lib与
$TOOLKIT_DIR$\inc\ioCC2540.h和$PROJ_DIR$\..\..\Libraries\CC2540DB\bin\CC2540_BLE_peri.lib
而其他代码完全一致,在文件hal_mcu.h中可以看到如下代码:
#if defined( CC2541) || defined( CC2541S )
#include <ioCC2541.h>
#else // CC2540
#include <ioCC2540.h>
#endif // CC2541 || CC2541S
但是在如下位置并无CC2541或者CC2541S的宏,为什么会自动辨别使用ioCC2541.h和ioCC2540.h呢?
haizhi,
应该是在General Options里面,target->device information-> device 选项框里面,有IAR 的库的选择,针对2540和2541.
这个我试过,如果原来的项目模板是CC2540的,而在Device Information中选中CC2541。IAR使用的头文件还是CC2540的,而不是CC2541的。
如果强制性在option->c/c++ compiler->preprocessor中强制定义CC2541或者CC2541S,则在OUTPUT中可以看到iocc2540.h和iocc2541.h。
这是什么状况?!
Hi, lz:
你的问题解决了吗?我也有这个工程转换需求,cc2540--->cc2541.
当时没有解决到,你直接移植应用代码吧
我的问题已经解决了,更换了底层的一个库就好了。谢谢...
具体改那个位置?
40工程里面的库:CC2540_BLE_peri.lib 改成41的:CC2541_BLE_peri.lib 就行了,其他的我没改什么。
知道了,谢谢!
如果不涉及到IIC和USB,应用层不用改
直接替换底层lib
我也只改了....peri.lib. 为什么是这种情况。
Error[e12]: Unable to open file 'E:\孔辉公司\网蜂科技(WeBee) 蓝牙4.0开发平台配套资源 2014-2-11\示例程序\2、协议栈实验\3.9 利用Profiles的特征值进行无线点灯\ BLE-CC254x-1.3.2-Light\Projects\ble\Libraries\CC2540DB\bin\CC2540_BLE_peri.lib' Error while running Linker
修改包含的头文件的方法为:用记事本打开buildConfig.cfg,修改
// CC2540 Device
-DCC2540
为
// CC2541 Device
-DCC2541
应该就可以了。
如果不行的话在用记事本打开:******.dep文件,修改一下里面你想要的头文件,通过查找的方式找到一个<file>$TOOLKIT_DIR$\inc\ioCC2540.h</file>,把这里的文件修改成你要的包含的头文件;
同时修改工程文件LIB下的库文件,工程就全部转换过来了。
用记事本打开:******.dep文件,修改一下里面你想要的头文件,通过查找的方式找到一个<file>$TOOLKIT_DIR$\inc\ioCC2540.h</file>,把这里的文件修改成你要的包含的头文件;同时修改工程文件LIB下的库文件,工程就全部转换过来了。
这个方法有效,赞一个!