CC2650头文件

来源:互联网 发布:加密软件如何破解 编辑:程序博客网 时间:2024/06/07 00:14

转载请注明出处:http://blog.csdn.net/chenHCYJ/article/details/53113930

在TI的蓝牙SDK中,提供了三种类型的头文件,分别为 7ID,5XD和4XS。其中数字7、5、4分别代表CC2650芯片的封装7*7,5*5,4*4,I代表使用内部巴伦,X代表使用外部巴伦,D代表差分天线,S代表单端天线。所以7ID就是使用7*7封装芯片,内部巴伦,差分天线的头文件。
在实际使用时,我们可能会需要4ID的头文件,因为头文件中定义了很多的IO,自己完全写一个是完全不可取的,那么如何根据TI提供的头文件进行修改呢?这个需要先了解下头文件的包含关系,才能明白如何修改。

头文件包含关系

在 《ble_sdk_2_02_00_31》中,以 simple_peripheral 例程默认使用了7ID的头文件,其中有关board的头文件包含关系如下:

1. 宏定义

在工程Options选项中定义了“CC26XX”和“CC2650DK_7ID”,其中CC2650DK_7ID宏定义实现了对头文件的包含作用,而CC26XX和另一个在头文件中定义的宏(如CC2650EM_7ID)共同决定了巴伦电路内部或外部、天线差分或单端的模式。
Application Options

2. board.c文件

我们在工程中可以找到Starup目录中的 board.c 文件
这里写图片描述
该board.c文件所在目录为 C:\ti\simplelink\ble_sdk_2_02_00_31\src\target\board.c,其中有如下代码:

#if defined(CC2650DK_7ID) || defined(CC2650DK_5XD) || defined(CC2650DK_4XS)    #include "./cc2650em/cc2650em_board.c"#elseif    ...#endif

根据#include,跟踪到 C:\ti\simplelink\ble_sdk_2_02_00_31\src\target\cc2650em\cc2650em_board.c,有如下代码:

#if defined(CC2650DK_7ID)    #include <../../boards/CC2650DK_7ID/Board.h>    #include <../../boards/CC2650DK_7ID/CC2650DK_7ID.c>#elseif    ...#endif

到此我们找到了真正使用的.C文件 C:\ti\simplelink\ble_sdk_2_02_00_31\src\boards\CC2650DK_7ID\CC2650DK_7ID.c
在 CC2650DK_7ID.c 文件中有如下代码:

#include "Board.h"

我们右键单击,选择“Open Board.h”,会弹出两个选项
这里写图片描述
也就是说根据include的路径这两个目录下的Board.h都能被搜索到,其实第一个选项不难理解的,因为CC2650DK_7ID.c文件所在文件夹中确实有一个Board.h文件。

3. Board.h文件

打开 C:\ti\simplelink\ble_sdk_2_02_00_31\src\examples\simple_peripheral\cc26xx\app\simple_peripheral.c文件,有如下代码:

#include "board.h"

在simple_peripheral.c文件的目录中可没有Board.h文件,所以这个是根据工程Options —-> C/C++ Compiler —-> Preprocessor 中 Additional include directories项中的路径搜索的。
也就是第1步中红色方框标记的 $SRC_EX$/target,而$SRC_EX$代表的目录是:
这里写图片描述
所以我们能跟踪到 C:\ti\simplelink\ble_sdk_2_02_00_31\src\target\board.h文件,有如下代码:

#if defined(CC2650DK_7ID) || defined(CC2650DK_5XD) || defined(CC2650DK_4XS)    #include "./cc2650em/cc2650em_board.h"#elseif    ...#endif

继续跟踪到 C:\ti\simplelink\ble_sdk_2_02_00_31\src\target\cc2650em\cc2650em_board.h文件中,有如下代码:

#if defined(CC2650DK_7ID)    #include <../../boards/CC2650DK_7ID/Board.h>#else    ...#endif

继续跟踪,打开 C:\ti\simplelink\ble_sdk_2_02_00_31\src\boards\CC2650DK_7ID\Board.h文件中,有如下代码:

#include "CC2650DK_7ID.h"

到此我们找到了最终使用的.h文件:
C:\ti\simplelink\ble_sdk_2_02_00_31_ss\src\boards\CC2650DK_7ID\CC2650DK_7ID.h
我们可以看到该头文件中就是我们用到的Leds、Button、UART等IO的定义,也就是最终的 .h文件。

把7ID的头文件修改为4ID

知晓了board文件的包含关系,就不难修改了。具体做法:

1. 文件复制

C:\ti\simplelink\ble_sdk_2_02_00_31\src\boards\CC2650DK_4XS\目录中的
“Board.h”、“CC2650DK_4XS.h”和“CC2650DK_4XS.c”三个文件到
C:\ti\simplelink\ble_sdk_2_02_00_31\src\boards\CC2650DK_7ID目录中。
“Board.h”选择覆盖,其他两个进行重命名
“CC2650DK_4XS.h” —-> “CC2650DK_4ID.h”
“CC2650DK_4ID.c” —-> “CC2650DK_4ID.c”

2. 在Board.h文件中

#include "CC2650DK_4XS.h"

修改为:

#include "CC2650DK_4ID.h"

3.在CC2650DK_4ID.h文件中

#define CC2650EM_4XS

修改为:

#define CC2650EM_7ID

4. 在cc2650em_board.c文件中

在C:\ti\simplelink\ble_sdk_2_02_00_31\src\target\cc2650em\cc2650em_board.c文件中

#include <../../boards/CC2650DK_7ID/CC2650DK_7ID.c>

修改为:

#include <../../boards/CC2650DK_7ID/CC2650DK_4ID.c>

大功告成,重新编译工程即可。

0 0
原创粉丝点击