mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-14 01:27:41 +00:00
merge
This commit is contained in:
commit
64ee838db5
45
ble/sm.c
45
ble/sm.c
@ -1002,6 +1002,18 @@ static void sm_run(void){
|
||||
int done = 1;
|
||||
int err;
|
||||
switch (sm_connection->sm_engine_state) {
|
||||
case SM_RESPONDER_SEND_SECURITY_REQUEST:
|
||||
// send packet if possible,
|
||||
if (l2cap_can_send_fixed_channel_packet_now(sm_connection->sm_handle)){
|
||||
uint8_t buffer[2];
|
||||
buffer[0] = SM_CODE_SECURITY_REQUEST;
|
||||
buffer[1] = SM_AUTHREQ_BONDING;
|
||||
sm_connection->sm_engine_state = SM_RESPONDER_PH1_W4_PAIRING_REQUEST;
|
||||
l2cap_send_connectionless(sm_connection->sm_handle, L2CAP_CID_SECURITY_MANAGER_PROTOCOL, (uint8_t*) buffer, sizeof(buffer));
|
||||
}
|
||||
// don't lock setup context yet
|
||||
done = 0;
|
||||
break;
|
||||
case SM_RESPONDER_PH1_PAIRING_REQUEST_RECEIVED:
|
||||
sm_init_setup(sm_connection);
|
||||
// recover pairing request
|
||||
@ -1070,6 +1082,18 @@ static void sm_run(void){
|
||||
// responding state
|
||||
switch (connection->sm_engine_state){
|
||||
|
||||
|
||||
// general
|
||||
case SM_GENERAL_SEND_PAIRING_FAILED: {
|
||||
uint8_t buffer[2];
|
||||
buffer[0] = SM_CODE_PAIRING_FAILED;
|
||||
buffer[1] = setup->sm_pairing_failed_reason;
|
||||
connection->sm_engine_state = SM_GENERAL_IDLE;
|
||||
l2cap_send_connectionless(connection->sm_handle, L2CAP_CID_SECURITY_MANAGER_PROTOCOL, (uint8_t*) buffer, sizeof(buffer));
|
||||
sm_done_for_handle(connection->sm_handle);
|
||||
break;
|
||||
}
|
||||
|
||||
// initiator side
|
||||
case SM_INITIATOR_PH0_SEND_START_ENCRYPTION: {
|
||||
sm_key_t peer_ltk_flipped;
|
||||
@ -1087,25 +1111,6 @@ static void sm_run(void){
|
||||
break;
|
||||
|
||||
// responder side
|
||||
case SM_RESPONDER_SEND_SECURITY_REQUEST: {
|
||||
uint8_t buffer[2];
|
||||
buffer[0] = SM_CODE_SECURITY_REQUEST;
|
||||
buffer[1] = SM_AUTHREQ_BONDING;
|
||||
connection->sm_engine_state = SM_RESPONDER_PH1_W4_PAIRING_REQUEST;
|
||||
l2cap_send_connectionless(connection->sm_handle, L2CAP_CID_SECURITY_MANAGER_PROTOCOL, (uint8_t*) buffer, sizeof(buffer));
|
||||
return;
|
||||
}
|
||||
|
||||
case SM_GENERAL_SEND_PAIRING_FAILED: {
|
||||
uint8_t buffer[2];
|
||||
buffer[0] = SM_CODE_PAIRING_FAILED;
|
||||
buffer[1] = setup->sm_pairing_failed_reason;
|
||||
connection->sm_engine_state = SM_GENERAL_IDLE;
|
||||
l2cap_send_connectionless(connection->sm_handle, L2CAP_CID_SECURITY_MANAGER_PROTOCOL, (uint8_t*) buffer, sizeof(buffer));
|
||||
sm_done_for_handle(connection->sm_handle);
|
||||
break;
|
||||
}
|
||||
|
||||
case SM_RESPONDER_PH0_SEND_LTK_REQUESTED_NEGATIVE_REPLY:
|
||||
connection->sm_engine_state = SM_GENERAL_IDLE;
|
||||
hci_send_cmd(&hci_le_long_term_key_negative_reply, connection->sm_handle);
|
||||
@ -2013,7 +2018,7 @@ void sm_test_set_irk(sm_key_t irk){
|
||||
* @note Not used normally. Bonding is triggered by access to protected attributes in ATT Server
|
||||
*/
|
||||
void sm_send_security_request(uint16_t handle){
|
||||
sm_connection_t * sm_conn = sm_get_connection_for_handle(handle);
|
||||
sm_connection_t * sm_conn = sm_get_connection_for_handle(handle);
|
||||
if (sm_conn->sm_engine_state != SM_RESPONDER_PH1_W4_PAIRING_REQUEST) return;
|
||||
sm_conn->sm_engine_state = SM_RESPONDER_SEND_SECURITY_REQUEST;
|
||||
sm_run();
|
||||
|
BIN
platforms/arduino/setup.jpg
Normal file
BIN
platforms/arduino/setup.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 173 KiB |
BIN
platforms/ez430-rf2560/setup.jpg
Normal file
BIN
platforms/ez430-rf2560/setup.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 178 KiB |
BIN
platforms/msp-exp430f5438-cc2564b/setup.jpg
Normal file
BIN
platforms/msp-exp430f5438-cc2564b/setup.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 240 KiB |
BIN
platforms/msp430f5229lp-cc2564b/setup.jpg
Normal file
BIN
platforms/msp430f5229lp-cc2564b/setup.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 179 KiB |
BIN
platforms/pic32-harmony/setup-bluetooth-audio-devkit.jpg
Normal file
BIN
platforms/pic32-harmony/setup-bluetooth-audio-devkit.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 241 KiB |
@ -1,12 +1,12 @@
|
||||
# STM32 F103RB Nucleo with CC256x
|
||||
|
||||
BTstack port for STM32 F103RB Nucleo board and CC256x Bluetooth chipset
|
||||
based on GNU Tools for ARM Embedded Processors and libopencm3
|
||||
|
||||
GNU Tools for ARM Embedded Processors:
|
||||
https://launchpad.net/gcc-arm-embedded
|
||||
|
||||
libopencm3 is automatically fetched and build from its git repository by make
|
||||
|
||||
openocd 0.8.0 (or higher) is used to upload firmware
|
||||
Requirements:
|
||||
- GNU Tools for ARM Embedded Processors: https://launchpad.net/gcc-arm-embedded
|
||||
- libopencm3 is automatically fetched and build from its git repository by make
|
||||
- openocd 0.8.0 (or higher) is used to upload firmware
|
||||
|
||||
Components:
|
||||
- STM32 F103RB Nucleo Board
|
||||
@ -36,7 +36,4 @@ Setup:
|
||||
- N_SHUTDOWN: CN10-26 - 10 (LP1)
|
||||
|
||||
TODO:
|
||||
- fix eHCILL mode
|
||||
- figure out how to compile multiple examples with single Makefile/folder
|
||||
- extract classic and LE examples into example/embedded
|
||||
- use examples from BTSTACK_ROOT/example/embedded directly
|
BIN
platforms/stm32-f103rb-nucleo/setup.jpg
Normal file
BIN
platforms/stm32-f103rb-nucleo/setup.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 274 KiB |
Loading…
x
Reference in New Issue
Block a user