没有合适的资源?快使用搜索试试~ 我知道了~
首页CC2640_BLE_Software_Developer's_Guide.pdf
CC2640_BLE_Software_Developer's_Guide.pdf

SimpleLink™ Bluetooth® low energy CC2640 wireless MCU Software Developer’s Guide For BLE-Stack™ Version: 2.1.0 Literature Number: SWRU393A July 2015
资源详情
资源评论
资源推荐

TI CC2640 Bluetooth
®
low energy Software Developer’s Guide SWRU393A- July 2015
Copyright © 2010-2015 Texas Instruments, Inc.
Page 1 of 162
SimpleLink™ Bluetooth® low energy
CC2640 wireless MCU
Software Developer’s Guide
For BLE-Stack™ Version: 2.1.0
Literature Number: SWRU393A
July 2015

TI CC2640 Bluetooth
®
low energy Software Developer’s Guide SWRU393A- July 2015
Copyright © 2010-2015 Texas Instruments, Inc.
Page 2 of 162
TABLE OF CONTENTS
REFERENCES ..................................................................................................................................................... 8
USEFUL LINKS ................................................................................................................................................... 8
1 OVERVIEW................................................................................................................................................ 10
1.1 INTRODUCTION ...................................................................................................................................... 10
1.2 BLE PROTOCOL STACK BASICS............................................................................................................. 10
2 TEXAS INSTRUMENTS BLE SOFTWARE DEVELOPMENT PLATFORM .................................. 12
2.1 PROTOCOL STACK / APPLICATION CONFIGURATIONS ............................................................................ 13
2.2 SOLUTION PLATFORM ............................................................................................................................ 14
2.3 DIRECTORY STRUCTURE ........................................................................................................................ 14
2.4 PROJECTS .............................................................................................................................................. 14
2.5 SETTING UP THE DEVELOPMENT ENVIRONMENT ................................................................................... 15
2.5.1 Installing the SDK ......................................................................................................................... 15
2.5.2 IAR ................................................................................................................................................ 15
2.5.3 Code Composer Studio ................................................................................................................. 18
2.6 WORKING WITH HEX FILES ................................................................................................................... 21
2.7 ACCESSING PREPROCESSOR SYMBOLS .................................................................................................. 22
2.8 TOP-LEVEL SOFTWARE ARCHITECTURE ................................................................................................ 23
2.8.1 Standard Project Task Hierarchy ................................................................................................. 24
3 RTOS OVERVIEW .................................................................................................................................... 24
3.1 RTOS CONFIGURATION......................................................................................................................... 24
3.2 SEMAPHORES ......................................................................................................................................... 25
3.2.1 Initializing a Semaphore ............................................................................................................... 25
3.2.2 Pending on a Semaphore .............................................................................................................. 25
3.2.3 Posting a Semaphore .................................................................................................................... 26
3.3 TASKS .................................................................................................................................................... 26
3.3.1 Creating a Task ............................................................................................................................. 26
3.3.2 Creating the Task Function .......................................................................................................... 27
3.4 CLOCKS ................................................................................................................................................. 27
3.4.1 API ................................................................................................................................................ 28
3.4.2 Functional Example ...................................................................................................................... 28
3.5 QUEUES ................................................................................................................................................. 29
3.5.1 API ................................................................................................................................................ 29
3.5.2 Functional Example ...................................................................................................................... 30
3.6 IDLE TASK ............................................................................................................................................. 31
3.7 POWER MANAGEMENT .......................................................................................................................... 32
3.8 HARDWARE INTERRUPTS (HWI’S) ........................................................................................................ 32
3.9 SOFTWARE INTERRUPTS (SWI’S) .......................................................................................................... 32
3.10 FLASH .................................................................................................................................................... 33
3.10.1 Flash Memory Map ....................................................................................................................... 33
3.10.2 Application / Stack Flash Boundary ............................................................................................. 34
3.10.3 Manually Modifying Flash Boundary ........................................................................................... 34
3.10.4 Using Simple NV (SNV) ................................................................................................................ 35
3.10.5 Customer Configuration Area (CCA) ........................................................................................... 36
3.11 MEMORY MANAGEMENT (RAM) .......................................................................................................... 36
3.11.1 RAM Memory Map........................................................................................................................ 37
3.11.2 Application / Stack RAM Boundary .............................................................................................. 37
3.11.3 System Stack.................................................................................................................................. 37
3.11.4 Manually Modifying the RAM Boundary ...................................................................................... 38
3.11.5 Dynamic Memory Allocation ........................................................................................................ 38
3.11.6 A Note on Initializing RTOS Objects ............................................................................................ 39
3.12 CONFIGURATION OF RAM & FLASH BOUNDARY USING THE BOUNDARY TOOL .................................... 39
3.12.1 Configuring Boundary Tool .......................................................................................................... 40
3.12.2 Boundary Tool Operation ............................................................................................................. 40
3.12.3 Disabling Boundary Tool .............................................................................................................. 41
4 THE APPLICATION ................................................................................................................................. 42

TI CC2640 Bluetooth
®
low energy Software Developer’s Guide SWRU393A- July 2015
Copyright © 2010-2015 Texas Instruments, Inc.
Page 3 of 162
4.1 START-UP IN MAIN() .............................................................................................................................. 43
4.2 ICALL .................................................................................................................................................... 43
4.2.1 Introduction .................................................................................................................................. 43
4.2.2 ICall BLE Protocol Stack Service ................................................................................................. 44
4.2.3 ICall Primitive Service .................................................................................................................. 44
4.2.4 ICall Initialization and Registration ............................................................................................. 45
4.2.5 ICall Thread synchronization ....................................................................................................... 45
4.2.6 Example ICall Usage .................................................................................................................... 46
4.3 GENERAL APPLICATION ARCHITECTURE ................................................................................................ 47
4.3.1 Application Initialization Function ............................................................................................... 47
4.3.2 Event Processing in the Task Function ......................................................................................... 48
4.3.3 Callbacks ...................................................................................................................................... 50
5 THE BLE PROTOCOL STACK .............................................................................................................. 51
5.1 GENERIC ACCESS PROFILE (GAP) ......................................................................................................... 51
5.1.1 Connection Parameters ................................................................................................................ 51
5.1.2 Effective Connection Interval ....................................................................................................... 53
5.1.3 Connection Parameter Considerations ......................................................................................... 53
5.1.4 Connection Parameter Limitations with Multiple Connections .................................................... 53
5.1.5 Connection Parameter Update ..................................................................................................... 54
5.1.6 Connection Termination ............................................................................................................... 54
5.1.7 Connection Security ...................................................................................................................... 54
5.1.8 GAP abstraction ........................................................................................................................... 55
5.1.9 Configuring the GAP layer ........................................................................................................... 55
5.2 GAPROLE TASK .................................................................................................................................... 55
5.2.1 Peripheral Role ............................................................................................................................. 56
5.2.2 Central Role .................................................................................................................................. 58
5.3 GENERIC ATTRIBUTE PROFILE (GATT) ................................................................................................. 60
5.3.1 GATT Characteristics / Attributes ................................................................................................ 61
5.3.2 GATT Services / Profile ................................................................................................................ 61
5.3.3 GATT Client abstraction ............................................................................................................... 63
5.3.4 GATT Server Abstraction .............................................................................................................. 65
5.3.5 Allocating Memory for GATT Procedures .................................................................................... 73
5.3.6 Registering to Receive Additional GATT Events in the Application ............................................. 73
5.4 GAP BOND MANAGER .......................................................................................................................... 74
5.4.1 Using GAPBondMgr ..................................................................................................................... 75
5.4.2 GAPBondMgr examples for various security modes .................................................................... 76
5.5 LOGICAL LINK CONTROL AND ADAPTATION LAYER PROTOCOL (L2CAP) ............................................ 80
5.5.1 General L2CAP Terminology ....................................................................................................... 80
5.5.2 Maximum Transmission Unit (MTU) ............................................................................................ 81
5.5.3 L2CAP Channels .......................................................................................................................... 82
5.5.4 L2CAP Connection oriented connection (CoC) Example ............................................................. 82
5.6 HCI ....................................................................................................................................................... 83
5.6.1 HCI Extension Vendor Specific Commands .................................................................................. 83
5.6.2 Receiving HCI Extension Events in the Application ..................................................................... 83
5.7 RUNTIME BLE PROTOCOL STACK CONFIGURATION .............................................................................. 84
5.8 CONFIGURING BLE PROTOCOL STACK FEATURES ................................................................................ 85
6 PERIPHERALS AND DRIVERS ............................................................................................................. 85
6.1 ADDING A DRIVER ................................................................................................................................. 85
6.2 BOARD FILE........................................................................................................................................... 86
6.3 AVAILABLE DRIVERS ............................................................................................................................ 87
6.3.1 PIN ................................................................................................................................................ 87
6.3.2 UART ............................................................................................................................................ 89
6.3.3 SPI ................................................................................................................................................ 89
6.3.4 I2C ................................................................................................................................................ 90
7 SENSOR CONTROLLER ......................................................................................................................... 92
8 STARTUP SEQUENCE ............................................................................................................................. 92
8.1 PROGRAMMING INTERNAL FLASH WITH THE ROM BOOTLOADER ......................................................... 92
8.2 RESETS .................................................................................................................................................. 92

TI CC2640 Bluetooth
®
low energy Software Developer’s Guide SWRU393A- July 2015
Copyright © 2010-2015 Texas Instruments, Inc.
Page 4 of 162
9 DEVELOPMENT AND DEBUGGING .................................................................................................... 93
9.1 DEBUG INTERFACES .............................................................................................................................. 93
9.1.1 Connecting to the XDS Debugger ................................................................................................. 93
9.2 BREAKPOINTS ........................................................................................................................................ 94
9.2.1 Breakpoints in CCS: ..................................................................................................................... 94
9.2.2 Breakpoints in IAR ........................................................................................................................ 95
9.2.3 Considerations when using breakpoints with an active BLE connection ..................................... 95
9.2.4 Considerations no breakpoints and compiler optimization .......................................................... 96
9.3 WATCHING VARIABLES AND REGISTERS ............................................................................................... 96
9.3.1 Variables in CCS .......................................................................................................................... 96
9.3.2 Variables in IAR ........................................................................................................................... 96
9.3.3 Considerations when Viewing Variables ...................................................................................... 97
9.4 MEMORY WATCHPOINTS ....................................................................................................................... 97
9.4.1 Watchpoints in CCS ...................................................................................................................... 97
9.4.2 Watchpoints in IAR ....................................................................................................................... 98
9.5 TI-RTOS OBJECT VIEWER .................................................................................................................... 98
9.5.1 Scanning the BIOS for Errors ....................................................................................................... 98
9.5.2 Viewing the State of Each Task ..................................................................................................... 99
9.5.3 Viewing the System Stack .............................................................................................................. 99
9.5.4 Viewing Power Manager Information .......................................................................................... 99
9.6 PROFILING THE ICALL HEAP MANAGER (HEAPMGR.H) ........................................................................ 100
9.7 OPTIMIZATIONS ................................................................................................................................... 100
9.7.1 Project-wide optimizations ......................................................................................................... 100
9.7.2 Single file optimizations .............................................................................................................. 101
9.7.3 Single function optimizations ...................................................................................................... 102
9.8 DECIPHERING CPU EXCEPTIONS ......................................................................................................... 102
9.8.1 Exception Cause ......................................................................................................................... 102
9.8.2 Using a Custom Exception Handler ........................................................................................... 103
9.8.3 Parsing the Exception Frame ..................................................................................................... 103
9.9 DEBUGGING A PROGRAM EXIT ............................................................................................................ 104
9.10 DEBUGGING MEMORY PROBLEMS ....................................................................................................... 104
9.10.1 Task / System Stack Overflow ..................................................................................................... 104
9.10.2 Dynamic Allocation Errors ......................................................................................................... 104
9.11 PREPROCESSOR OPTIONS ..................................................................................................................... 105
9.11.1 Modifying .................................................................................................................................... 105
9.11.2 Options ........................................................................................................................................ 105
9.12 CHECK SYSTEM FLASH/RAM USAGE WITH MAP FILE ......................................................................... 106
10 CREATING A CUSTOM BLE APPLICATION ............................................................................... 106
10.1 ADDING A BOARD FILE........................................................................................................................ 107
10.2 CONFIGURING PARAMETERS FOR CUSTOM HARDWARE ...................................................................... 107
10.3 CREATING ADDITIONAL TASKS ........................................................................................................... 107
10.4 CONFIGURING THE BLE STACK ........................................................................................................... 107
10.4.1 Minimizing Flash Usage ............................................................................................................. 107
10.5 DEFINE BLE BEHAVIOR ....................................................................................................................... 108
11 PORTING FROM CC254X TO CC2640 ........................................................................................... 108
11.1 INTRODUCTION .................................................................................................................................... 108
11.2 OSAL .................................................................................................................................................. 108
11.3 APPLICATION AND STACK SEPARATION WITH ICALL .......................................................................... 108
11.4 THREADS, SEMAPHORES & QUEUES .................................................................................................... 108
11.5 PERIPHERAL DRIVERS ......................................................................................................................... 109
11.6 EVENT PROCESSING ............................................................................................................................. 109
12 SAMPLE APPLICATIONS................................................................................................................. 110
12.1 BLOOD PRESSURE SENSOR .................................................................................................................. 110
12.1.1 User Interface ............................................................................................................................. 110
12.1.2 Basic Operation .......................................................................................................................... 110
12.2 HEART RATE SENSOR .......................................................................................................................... 111
12.2.1 User Interface ............................................................................................................................. 111
12.2.2 Basic Operation .......................................................................................................................... 111
12.3 CYCLING SPEED AND CADENCE (CSC) SENSOR .................................................................................. 111

TI CC2640 Bluetooth
®
low energy Software Developer’s Guide SWRU393A- July 2015
Copyright © 2010-2015 Texas Instruments, Inc.
Page 5 of 162
12.3.1 User Interface ............................................................................................................................. 111
12.3.2 Basic Operation .......................................................................................................................... 112
12.3.3 Neglect Timer .............................................................................................................................. 112
12.4 RUNNING SPEED AND CADENCE (RSC) SENSOR .................................................................................. 112
12.4.1 User Interface ............................................................................................................................. 112
12.4.2 Basic Operation .......................................................................................................................... 112
12.4.3 Neglect Timer .............................................................................................................................. 113
12.5 GLUCOSE COLLECTOR ......................................................................................................................... 113
12.5.1 User Interface ............................................................................................................................. 113
12.5.2 Record Access Control Point ...................................................................................................... 114
12.6 GLUCOSE SENSOR ............................................................................................................................... 114
12.6.1 User Interface ............................................................................................................................. 114
12.6.2 Basic Operation .......................................................................................................................... 114
12.7 HID EMULATED KEYBOARD ............................................................................................................... 114
12.7.1 User Interface ............................................................................................................................. 114
12.7.2 Basic Operation .......................................................................................................................... 114
12.8 HOSTTEST- BLE NETWORK PROCESSOR ............................................................................................. 115
12.9 KEYFOB .............................................................................................................................................. 115
12.9.1 User Interface ............................................................................................................................. 115
12.9.2 Battery Operation ....................................................................................................................... 115
12.9.3 Accelerometer Operation ............................................................................................................ 115
12.9.4 Keys ............................................................................................................................................ 116
12.9.5 Proximity .................................................................................................................................... 116
12.10 SENSORTAG .................................................................................................................................... 116
12.10.1 Operation ................................................................................................................................ 116
12.10.2 Sensors .................................................................................................................................... 117
12.11 SIMPLEBLECENTRAL ...................................................................................................................... 117
12.11.1 User Interface ......................................................................................................................... 117
12.12 SIMPLEBLEPERIPHERAL ................................................................................................................. 118
12.13 SIMPLEAP ....................................................................................................................................... 118
12.14 SIMPLENP ....................................................................................................................................... 118
12.15 TIMEAPP ......................................................................................................................................... 118
12.15.1 User Interface ......................................................................................................................... 118
12.15.2 Basic Operation ...................................................................................................................... 118
12.16 THERMOMETER ............................................................................................................................... 119
12.16.1 User Interface ......................................................................................................................... 119
12.16.2 Basic Operation ...................................................................................................................... 119
I. GAP API .................................................................................................................................................... 121
I.1 COMMANDS ......................................................................................................................................... 121
I.2 CONFIGURABLE PARAMETERS ............................................................................................................. 122
I.3 EVENTS ............................................................................................................................................... 123
II. GAPROLE PERIPHERAL ROLE API ................................................................................................ 126
II.1 COMMANDS ......................................................................................................................................... 126
II.2 CONFIGURABLE PARAMETERS ............................................................................................................. 128
II.3 CALLBACKS ......................................................................................................................................... 129
II.3.1 STATE CHANGE CALLBACK (PFNSTATECHANGE) ........................................................................... 129
III. GAPROLE CENTRAL ROLE API ....................................................................................................... 129
III.1 COMMANDS ......................................................................................................................................... 129
III.2 CONFIGURABLE PARAMETERS ............................................................................................................. 131
III.3 CALLBACKS ......................................................................................................................................... 132
III.3.1 CENTRAL EVENT CALLBACK (EVENTCB) ......................................................................................... 132
IV. GATT / ATT API ................................................................................................................................... 133
IV.1 GENERAL COMMANDS ......................................................................................................................... 133
IV.2 SERVER COMMANDS ........................................................................................................................... 133
IV.3 CLIENT COMMANDS ............................................................................................................................ 133
IV.4 RETURN VALUES ................................................................................................................................. 140
IV.5 EVENTS ............................................................................................................................................... 140
IV.6 GATT COMMANDS AND CORRESPONDING ATT EVENTS ..................................................................... 142
剩余161页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1