l 开发板(CC2540主板)(硬件)
l CC Debugger(硬件),CC系列芯片的下载器,可用于同步调试和下载固件
l smartrf_studio(软件),安装在WINDOWS,用于下载固件或调试射频。
l BLE-CC254x_v1.4.0(代码),CC2540/CC2541的代码开发包,里面有各种应用工程。
l IAR Embedded Workbench for 8051 version 8.30.2(EW8051-8302-Autorun.exe)(软件),代码开发工具,可用于编译、调试及下载。注意工具版本,版本不对打不开BLE-CC254x_v1.4.0,比如BLE-CC254x_v1.4.1就要示高一点的版本,但太高也不行,这里尽量使用本文件所提到的版本。
1)打开IAR Embedded Workbench,点击菜单“Project”,选择“Add Existing Project..”,打开“BLE-CC254x_v1.4.0\Projects\ble\SimpleBLEPeripheral_ibeacon\CC2540DB/ SimpleBLEPeripheral.ewp”。
2)点击菜单“Project”,选择“Options”,将General Options项里,将Number of virtual改为8,否则在编译时会出现下面的错误:
Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0xd more bytes needed. The problem occurred while processing the segment placement command
"-Z(IDATA)ISTACK+_IDATA_STACK_SIZE#08-_IDATA_END", where at the moment of placement the available memory ranges were "IDATA:4d-ff"
Reserved ranges relevant to this placement:
3)点击工具栏中的“编译”按钮,对工程进行编译
4)编译成功后,点击工具栏的“Download and Debug”按钮,进行固件下载,下载后在工具栏会出现调试工具,点击“Go”图标,就开始跑代码。由于可以在线调试,基本上不需要增加串口打印了。
5)BLE-CC254x_v1.4.0里的工程,主要是针对TI的参考板的,在代码里可以看到CC2540_MINIDK等DEFINE,如果是自制的板,则需要对代码作相应的改动。CC2540_MINIDK等DEFINE是在这里添加或删除:先选择IAR Embedded Workbench左边工程栏里对应的工程名,再点击菜单栏“Project”,选择“Options”,在C/C++ Compiler里,找到Preprocessor项,在Defined symbols框里对相应的DEFINE进行增删。
typedef struct attAttribute_t
{
gattAttrType_t type; //!< Attribute type (2 or 16 octet UUIDs)
uint8 permissions; //!< Attribute permissions
uint16 handle; //!< Attribute handle - assigned internally by attribute server
uint8* const pValue; //!< Attribute value - encoding of the octet array is defined in
//!< the applicable profile. The maximum length of an attribute
//!< value shall be 512 octets.
} gattAttribute_t;