When using CC2640R2F, I found that some projects in the lower version of SDK are no longer available in the higher version of SDK, for example:
There is multi_role in simplelink_cc2640r2_sdk_1_40_00_45
There is no multi_role in simplelink_cc2640r2_sdk_2_40_00_32, so I plan to modify it myself
simple_peripheral + simple_central, in fact, is very simple, nothing more than a big fusion, and then there is a problem that the compilation cannot pass,
So I did a little experiment
For example, call the CC2640R2_simple_peripheral slave project
GapScan_enable(0, DEFAULT_SCAN_DURATION, 0);
function, why does the error:
undefined first referenced
symbol in file
--------- ----------------
GapScan_enable <whole-program>
At first I thought it was caused by the header file not being included. After various searches, I found that it was due to the project configuration.
Because the GapScan_enable function is a function in the CC2640R2_simple_central host project, it is necessary to modify
the project configuration file build_config.opt,
/* BLE Host Build Configurations */
-DHOST_CONFIG=PERIPHERAL_CFG
/* -DHOST_CONFIG=CENTRAL_CFG */
/* -DHOST_CONFIG=BROADCASTER_CFG */
/* -DHOST_CONFIG=OBSERVER_CFG */
/* -DHOST_CONFIG=PERIPHERAL_CFG+OBSERVER_CFG */
/* -DHOST_CONFIG=CENTRAL_CFG+BROADCASTER_CFG */
/* -DHOST_CONFIG=PERIPHERAL_CFG+CENTRAL_CFG */
Change
-DHOST_CONFIG=PERIPHERAL_CFG to -DHOST_CONFIG=PERIPHERAL_CFG+CENTRAL_CFG
The Bluetooth protocol stack now includes all the functions of the master and slave devices.
After modifying the configuration, you need to recompile and rebuild the project.
There may be an error like this:
C:/ti/simplelink_cc2640r2_sdk_2_40_00_32/source/ti/ble5stack/common/cc26xx/ccs/cc26xx_app.cmd", line 259: error #10099-D: program will not fit into available memory. placement with alignment fails for section ".cinit" size 0x11b7 . Available memory ranges:
FLASH size: 0x1f000 unused: 0x4 max hole: 0x3
FLASH_LAST_PAGE size: 0x1000 unused: 0x30a max hole: 0x308
error #10010: errors encountered during linking; "ble5_simple_peripheral_cc2640r2lp_app.out" not built
The program is too large to fit into the flash.
The original
#define FLASH_SIZE 0x00020000 can be
edited to
#define FLASH_SIZE 0x00040000
and compiled successfully . However, the falsh
275KB non-volatile memory
of CC2640R2f includes 128KB in-system programmable flash memory
, which is 128*1024=131072, which is 0x20000 in hexadecimal. Therefore, although
the compilation
is successful after editing to
#define FLASH_SIZE 0x00040000 , it cannot be burned into the board.
|