mirror of https://github.com/ARMmbed/mbed-os.git
General clean-up of unsupported targets
parent
4ae7b0e814
commit
a15f6a43ad
|
@ -33,13 +33,9 @@
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#if (MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE == WIFI) && \
|
#if (MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE == WIFI) && \
|
||||||
!defined(TARGET_UBLOX_EVK_ODIN_W2) && \
|
|
||||||
!defined(TARGET_REALTEK_RTL8195AM) && \
|
|
||||||
!defined(TARGET_MTB_ADV_WISE_1530) && \
|
!defined(TARGET_MTB_ADV_WISE_1530) && \
|
||||||
!defined(TARGET_MTB_USI_WM_BN_BM_22) && \
|
!defined(TARGET_MTB_USI_WM_BN_BM_22) && \
|
||||||
!defined(TARGET_WIO_EMW3166) && \
|
!defined(TARGET_WIO_EMW3166)
|
||||||
!defined(TARGET_MTB_UBLOX_ODIN_W2) && \
|
|
||||||
!defined(TARGET_UNO_91H)
|
|
||||||
#error [NOT_SUPPORTED] Wifi tests are not valid for the target
|
#error [NOT_SUPPORTED] Wifi tests are not valid for the target
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
|
|
@ -5,13 +5,7 @@
|
||||||
"NO_SUPPORT_FOR_IPV4_MULTICAST_FILTER": false
|
"NO_SUPPORT_FOR_IPV4_MULTICAST_FILTER": false
|
||||||
},
|
},
|
||||||
"target_overrides": {
|
"target_overrides": {
|
||||||
"MTB_UBLOX_ODIN_W2": {
|
"WIO_EMW3166": {
|
||||||
"NO_SUPPORT_FOR_MULTICAST_FILTER": true
|
|
||||||
},
|
|
||||||
"UBLOX_EVK_ODIN_W2": {
|
|
||||||
"NO_SUPPORT_FOR_MULTICAST_FILTER": true
|
|
||||||
},
|
|
||||||
"MTB_WIO_EMW3166": {
|
|
||||||
"NO_SUPPORT_FOR_IPV4_MULTICAST_FILTER": true
|
"NO_SUPPORT_FOR_IPV4_MULTICAST_FILTER": true
|
||||||
},
|
},
|
||||||
"MTB_ADV_WISE_1530": {
|
"MTB_ADV_WISE_1530": {
|
||||||
|
|
|
@ -13,9 +13,6 @@
|
||||||
"platform.stdio-buffered-serial": true,
|
"platform.stdio-buffered-serial": true,
|
||||||
"platform.stdio-flush-at-exit": true,
|
"platform.stdio-flush-at-exit": true,
|
||||||
"drivers.uart-serial-rxbuf-size": 768
|
"drivers.uart-serial-rxbuf-size": 768
|
||||||
},
|
|
||||||
"UBLOX_EVK_ODIN_W2" : {
|
|
||||||
"target.device_has_remove": ["EMAC"]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,17 +42,15 @@ If you only want to run some specific tests, you can use the `-n` option. You ca
|
||||||
|
|
||||||
#### Running the tests with a specific test-config
|
#### Running the tests with a specific test-config
|
||||||
|
|
||||||
Some devices may offer multiple network interfaces to operate with. For example, `UBLOX_EVK_ODIN_W2` offers ethernet and Wi-Fi capabilities.
|
Some devices may offer multiple network interfaces to operate with. The tests can be run for either one of those using already existing test-config -files.
|
||||||
|
|
||||||
The tests can be run for either one of those using already existing test-config -files.
|
|
||||||
|
|
||||||
To run the tests with the Wi-Fi interface:
|
To run the tests with the Wi-Fi interface:
|
||||||
|
|
||||||
`mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndWifiInterface.json`
|
`mbed test -m <target> -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndWifiInterface.json`
|
||||||
|
|
||||||
To run the tests with the ethernet interface:
|
To run the tests with the ethernet interface:
|
||||||
|
|
||||||
`mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndEthernetInterface.json`
|
`mbed test -m <target> -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndEthernetInterface.json`
|
||||||
|
|
||||||
#### Providing Wi-Fi access point information
|
#### Providing Wi-Fi access point information
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ class Testcase(Bench):
|
||||||
'*': {
|
'*': {
|
||||||
"count":3,
|
"count":3,
|
||||||
"type": "hardware",
|
"type": "hardware",
|
||||||
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "UBLOX_EVK_ODIN_W2", "KW41Z"],
|
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "KW41Z"],
|
||||||
"application": {
|
"application": {
|
||||||
"name": "TEST_APPS-device-nanostack_mac_tester"
|
"name": "TEST_APPS-device-nanostack_mac_tester"
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Testcase(Bench):
|
||||||
'*': {
|
'*': {
|
||||||
"count":1,
|
"count":1,
|
||||||
"type": "hardware",
|
"type": "hardware",
|
||||||
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "UBLOX_EVK_ODIN_W2", "KW41Z"],
|
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "KW41Z"],
|
||||||
"application": {
|
"application": {
|
||||||
"name": "TEST_APPS-device-nanostack_mac_tester"
|
"name": "TEST_APPS-device-nanostack_mac_tester"
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Testcase(Bench):
|
||||||
'*': {
|
'*': {
|
||||||
"count":3,
|
"count":3,
|
||||||
"type": "hardware",
|
"type": "hardware",
|
||||||
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "UBLOX_EVK_ODIN_W2", "KW41Z"],
|
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "KW41Z"],
|
||||||
"application": {
|
"application": {
|
||||||
"name": "TEST_APPS-device-nanostack_mac_tester"
|
"name": "TEST_APPS-device-nanostack_mac_tester"
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Testcase(Bench):
|
||||||
'*': {
|
'*': {
|
||||||
"count":2,
|
"count":2,
|
||||||
"type": "hardware",
|
"type": "hardware",
|
||||||
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "UBLOX_EVK_ODIN_W2", "KW41Z"],
|
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "KW41Z"],
|
||||||
"application": {
|
"application": {
|
||||||
"name": "TEST_APPS-device-nanostack_mac_tester"
|
"name": "TEST_APPS-device-nanostack_mac_tester"
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Testcase(Bench):
|
||||||
'*': {
|
'*': {
|
||||||
"count":3,
|
"count":3,
|
||||||
"type": "hardware",
|
"type": "hardware",
|
||||||
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "UBLOX_EVK_ODIN_W2", "KW41Z"],
|
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "KW41Z"],
|
||||||
"application": {
|
"application": {
|
||||||
"name": "TEST_APPS-device-nanostack_mac_tester"
|
"name": "TEST_APPS-device-nanostack_mac_tester"
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Testcase(Bench):
|
||||||
'*': {
|
'*': {
|
||||||
"count":2,
|
"count":2,
|
||||||
"type": "hardware",
|
"type": "hardware",
|
||||||
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "UBLOX_EVK_ODIN_W2", "KW41Z"],
|
"allowed_platforms": ["K64F", "K66F", "NUCLEO_F429ZI", "KW24D", "KW41Z"],
|
||||||
"application": {
|
"application": {
|
||||||
"name": "TEST_APPS-device-nanostack_mac_tester"
|
"name": "TEST_APPS-device-nanostack_mac_tester"
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,18 +113,6 @@
|
||||||
"SPI_CLK": "D13",
|
"SPI_CLK": "D13",
|
||||||
"SPI_CS": "D10"
|
"SPI_CS": "D10"
|
||||||
},
|
},
|
||||||
"UBLOX_EVK_ODIN_W2": {
|
|
||||||
"SPI_CS": "D9",
|
|
||||||
"SPI_MOSI": "D11",
|
|
||||||
"SPI_MISO": "D12",
|
|
||||||
"SPI_CLK": "D13"
|
|
||||||
},
|
|
||||||
"MTB_UBLOX_ODIN_W2": {
|
|
||||||
"SPI_CS": "PG_4",
|
|
||||||
"SPI_MOSI": "PE_14",
|
|
||||||
"SPI_MISO": "PE_13",
|
|
||||||
"SPI_CLK": "PE_12"
|
|
||||||
},
|
|
||||||
"RZ_A1H": {
|
"RZ_A1H": {
|
||||||
"SPI_MOSI": "P8_5",
|
"SPI_MOSI": "P8_5",
|
||||||
"SPI_MISO": "P8_6",
|
"SPI_MISO": "P8_6",
|
||||||
|
@ -161,12 +149,6 @@
|
||||||
"SPI_CLK": "p7",
|
"SPI_CLK": "p7",
|
||||||
"SPI_CS": "p8"
|
"SPI_CS": "p8"
|
||||||
},
|
},
|
||||||
"REALTEK_RTL8195AM": {
|
|
||||||
"SPI_MOSI": "D11",
|
|
||||||
"SPI_MISO": "D12",
|
|
||||||
"SPI_CLK": "D13",
|
|
||||||
"SPI_CS": "D10"
|
|
||||||
},
|
|
||||||
"CC3220SF_LAUNCHXL": {
|
"CC3220SF_LAUNCHXL": {
|
||||||
"SPI_MOSI": "D11",
|
"SPI_MOSI": "D11",
|
||||||
"SPI_MISO": "D12",
|
"SPI_MISO": "D12",
|
||||||
|
|
|
@ -37,12 +37,6 @@
|
||||||
"SPI_CLK": "PTD5",
|
"SPI_CLK": "PTD5",
|
||||||
"SPI_CS": "PTD4"
|
"SPI_CS": "PTD4"
|
||||||
},
|
},
|
||||||
"MTB_UBLOX_ODIN_W2": {
|
|
||||||
"SPI_MOSI": "PE_14",
|
|
||||||
"SPI_MISO": "PE_13",
|
|
||||||
"SPI_CLK": "PE_12",
|
|
||||||
"SPI_CS": "PE_11"
|
|
||||||
},
|
|
||||||
"MTB_ADV_WISE_1530": {
|
"MTB_ADV_WISE_1530": {
|
||||||
"SPI_MOSI": "PC_3",
|
"SPI_MOSI": "PC_3",
|
||||||
"SPI_MISO": "PC_2",
|
"SPI_MISO": "PC_2",
|
||||||
|
|
|
@ -1,370 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2018 ARM Limited
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "CordioBLE.h"
|
|
||||||
#include "CordioHCIDriver.h"
|
|
||||||
#include "hci_defs.h"
|
|
||||||
#include "hci_api.h"
|
|
||||||
#include "hci_cmd.h"
|
|
||||||
#include "hci_core.h"
|
|
||||||
#include "bstream.h"
|
|
||||||
#include "wsf_buf.h"
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include "hci_mbed_os_adaptation.h"
|
|
||||||
#include "H4TransportDriver.h"
|
|
||||||
#include "OdinCordioInterface.h"
|
|
||||||
|
|
||||||
namespace ble {
|
|
||||||
namespace vendor {
|
|
||||||
namespace odin_w2 {
|
|
||||||
|
|
||||||
class HCIDriver : public cordio::CordioHCIDriver {
|
|
||||||
public:
|
|
||||||
HCIDriver(cordio::CordioHCITransportDriver &transport_driver, PinName shutdown_name, PinName hci_rts_name) :
|
|
||||||
cordio::CordioHCIDriver(transport_driver),
|
|
||||||
shutdown(shutdown_name, 0),
|
|
||||||
hci_rts(hci_rts_name, 0),
|
|
||||||
service_pack_index(0),
|
|
||||||
service_pack_transfered(false) {
|
|
||||||
};
|
|
||||||
|
|
||||||
virtual cordio::buf_pool_desc_t get_buffer_pool_description();
|
|
||||||
|
|
||||||
virtual void do_initialize();
|
|
||||||
|
|
||||||
virtual void do_terminate();
|
|
||||||
|
|
||||||
virtual void start_reset_sequence();
|
|
||||||
|
|
||||||
virtual void handle_reset_sequence(uint8_t *pMsg);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void start_service_pack_transfer(void)
|
|
||||||
{
|
|
||||||
service_pack_index = 0;
|
|
||||||
service_pack_transfered = false;
|
|
||||||
send_service_pack_command();
|
|
||||||
}
|
|
||||||
|
|
||||||
void send_service_pack_command(void)
|
|
||||||
{
|
|
||||||
uint16_t cmd_len = odin_service_pack[service_pack_index + HCI_CMD_HDR_LEN];
|
|
||||||
cmd_opcode_ack_expected = (odin_service_pack[service_pack_index + 2] << 8) | odin_service_pack[service_pack_index + 1];
|
|
||||||
uint8_t *pBuf = hciCmdAlloc(cmd_opcode_ack_expected, cmd_len);
|
|
||||||
if (pBuf) {
|
|
||||||
memcpy(pBuf, odin_service_pack + service_pack_index + 1, cmd_len + HCI_CMD_HDR_LEN);
|
|
||||||
hciCmdSend(pBuf);
|
|
||||||
} else {
|
|
||||||
printf("Error cannot allocate memory for the buffer");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ack_service_pack_command(uint16_t opcode, uint8_t *msg)
|
|
||||||
{
|
|
||||||
/* check if response opcode is same as expected command opcode */
|
|
||||||
MBED_ASSERT (cmd_opcode_ack_expected == opcode);
|
|
||||||
|
|
||||||
/* update service pack index */
|
|
||||||
service_pack_index += (1 + HCI_CMD_HDR_LEN + odin_service_pack[service_pack_index + HCI_CMD_HDR_LEN]);
|
|
||||||
|
|
||||||
if (service_pack_index < service_pack_size)
|
|
||||||
send_service_pack_command();
|
|
||||||
else if (opcode == HCID_VS_WRITE_BD_ADDR) {
|
|
||||||
/* send an HCI Reset command to start the sequence */
|
|
||||||
HciResetCmd();
|
|
||||||
service_pack_transfered = true;
|
|
||||||
} else {
|
|
||||||
/* send BT device hardware address write command */
|
|
||||||
send_hci_vs_cmd(HCID_VS_WRITE_BD_ADDR);
|
|
||||||
cmd_opcode_ack_expected = HCID_VS_WRITE_BD_ADDR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void hci_read_resolving_list_size(void)
|
|
||||||
{
|
|
||||||
/* if LL Privacy is supported by Controller and included */
|
|
||||||
if ((hciCoreCb.leSupFeat & HCI_LE_SUP_FEAT_PRIVACY) &&
|
|
||||||
(hciLeSupFeatCfg & HCI_LE_SUP_FEAT_PRIVACY)) {
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeReadResolvingListSize();
|
|
||||||
} else {
|
|
||||||
hciCoreCb.resListSize = 0;
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
hci_read_max_data_len();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void hci_read_max_data_len(void)
|
|
||||||
{
|
|
||||||
/* if LE Data Packet Length Extensions is supported by Controller and included */
|
|
||||||
if ((hciCoreCb.leSupFeat & HCI_LE_SUP_FEAT_DATA_LEN_EXT) &&
|
|
||||||
(hciLeSupFeatCfg & HCI_LE_SUP_FEAT_DATA_LEN_EXT)) {
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeReadMaxDataLen();
|
|
||||||
} else {
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeRandCmd();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DigitalOut shutdown; // power/shutdown pin for bt device
|
|
||||||
DigitalOut hci_rts; // request to sent pin
|
|
||||||
size_t service_pack_index; // Index of command to be recently sent over hci
|
|
||||||
bool service_pack_transfered; // Flag to notify if service pack is completely transferred or not
|
|
||||||
uint16_t cmd_opcode_ack_expected; // Command against which acknowledgment is expected
|
|
||||||
uint32_t service_pack_size; // size of service pack
|
|
||||||
char *odin_service_pack ; // Service pack needs to be provided by driver
|
|
||||||
vs_cmd_send_t send_hci_vs_cmd ; // callback function to call vendor specific call handler
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace odin_w2
|
|
||||||
} // namespace vendor
|
|
||||||
} // namespace ble
|
|
||||||
|
|
||||||
|
|
||||||
ble::vendor::cordio::buf_pool_desc_t ble::vendor::odin_w2::HCIDriver::get_buffer_pool_description()
|
|
||||||
{
|
|
||||||
// Use default buffer pool
|
|
||||||
return ble::vendor::cordio::CordioHCIDriver::get_default_buffer_pool_description();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ble::vendor::odin_w2::HCIDriver::do_initialize()
|
|
||||||
{
|
|
||||||
cordio_callback_s callback;
|
|
||||||
|
|
||||||
hci_rts = 1; // Flow Control is OFF
|
|
||||||
|
|
||||||
shutdown = 0; // BT Power is OFF
|
|
||||||
ThisThread::sleep_for(20);
|
|
||||||
shutdown = 1; // BT Power is ON
|
|
||||||
ThisThread::sleep_for(500);
|
|
||||||
|
|
||||||
hci_rts = 0; // Flow Control is ON
|
|
||||||
|
|
||||||
/* ODIN ble driver initialization function */
|
|
||||||
cbCordio_Btinit(&callback);
|
|
||||||
|
|
||||||
odin_service_pack = callback.Service_pack;
|
|
||||||
send_hci_vs_cmd = callback.vs_command_callback;
|
|
||||||
service_pack_size = callback.service_pack_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ble::vendor::odin_w2::HCIDriver::do_terminate()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void ble::vendor::odin_w2::HCIDriver::start_reset_sequence()
|
|
||||||
{
|
|
||||||
/* Update baudrate of ble to speed up setup time */
|
|
||||||
send_hci_vs_cmd(HCID_VS_UPDATE_UART_BAUD_RATE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void ble::vendor::odin_w2::HCIDriver::handle_reset_sequence(uint8_t *pMsg)
|
|
||||||
{
|
|
||||||
uint16_t opcode;
|
|
||||||
static uint8_t randCnt;
|
|
||||||
|
|
||||||
/* if event is a command complete event */
|
|
||||||
if (*pMsg == HCI_CMD_CMPL_EVT) {
|
|
||||||
/* parse parameters */
|
|
||||||
pMsg += HCI_EVT_HDR_LEN;
|
|
||||||
pMsg++; /* skip num packets */
|
|
||||||
BSTREAM_TO_UINT16(opcode, pMsg);
|
|
||||||
pMsg++; /* skip status */
|
|
||||||
|
|
||||||
if (opcode == HCID_VS_UPDATE_UART_BAUD_RATE) {
|
|
||||||
update_uart_baud_rate();
|
|
||||||
start_service_pack_transfer();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (service_pack_transfered == false) {
|
|
||||||
ack_service_pack_command(opcode, pMsg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* decode opcode */
|
|
||||||
switch (opcode) {
|
|
||||||
|
|
||||||
case HCI_OPCODE_RESET:
|
|
||||||
/* Send (fast and slow) clock configuration command */
|
|
||||||
send_hci_vs_cmd(HCID_VS_FAST_CLOCK_CONFIG_BTIP);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCID_VS_FAST_CLOCK_CONFIG_BTIP:
|
|
||||||
/* Send deep-sleep behavior control command (setting retransmission, inactivity and rts pulse width for Bt) */
|
|
||||||
send_hci_vs_cmd(HCID_VS_HCILL_PARS_CFG);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCID_VS_HCILL_PARS_CFG:
|
|
||||||
/* Send sleep mode configuration command */
|
|
||||||
send_hci_vs_cmd(HCID_VS_SLEEP_PROTOCOLS_CFG);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCID_VS_SLEEP_PROTOCOLS_CFG:
|
|
||||||
/* initialize rand command count */
|
|
||||||
randCnt = 0;
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciSetEventMaskCmd((uint8_t *)hciEventMask);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_SET_EVENT_MASK:
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeSetEventMaskCmd((uint8_t *)hciLeEventMask);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_SET_EVENT_MASK:
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciSetEventMaskPage2Cmd((uint8_t *)hciEventMaskPage2);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_SET_EVENT_MASK_PAGE2:
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciReadBdAddrCmd();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_READ_BD_ADDR:
|
|
||||||
/* parse and store event parameters */
|
|
||||||
BdaCpy(hciCoreCb.bdAddr, pMsg);
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeReadBufSizeCmd();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_READ_BUF_SIZE:
|
|
||||||
/* parse and store event parameters */
|
|
||||||
BSTREAM_TO_UINT16(hciCoreCb.bufSize, pMsg);
|
|
||||||
BSTREAM_TO_UINT8(hciCoreCb.numBufs, pMsg);
|
|
||||||
|
|
||||||
/* initialize ACL buffer accounting */
|
|
||||||
hciCoreCb.availBufs = hciCoreCb.numBufs;
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeReadSupStatesCmd();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_READ_SUP_STATES:
|
|
||||||
/* parse and store event parameters */
|
|
||||||
memcpy(hciCoreCb.leStates, pMsg, HCI_LE_STATES_LEN);
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeReadWhiteListSizeCmd();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_READ_WHITE_LIST_SIZE:
|
|
||||||
/* parse and store event parameters */
|
|
||||||
BSTREAM_TO_UINT8(hciCoreCb.whiteListSize, pMsg);
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeReadLocalSupFeatCmd();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_READ_LOCAL_SUP_FEAT:
|
|
||||||
/* parse and store event parameters */
|
|
||||||
BSTREAM_TO_UINT16(hciCoreCb.leSupFeat, pMsg);
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
hci_read_resolving_list_size();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_READ_RES_LIST_SIZE:
|
|
||||||
/* parse and store event parameters */
|
|
||||||
BSTREAM_TO_UINT8(hciCoreCb.resListSize, pMsg);
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
hci_read_max_data_len();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_READ_MAX_DATA_LEN:
|
|
||||||
uint16_t maxTxOctets;
|
|
||||||
uint16_t maxTxTime;
|
|
||||||
|
|
||||||
BSTREAM_TO_UINT16(maxTxOctets, pMsg);
|
|
||||||
BSTREAM_TO_UINT16(maxTxTime, pMsg);
|
|
||||||
|
|
||||||
/* use Controller's maximum supported payload octets and packet duration times
|
|
||||||
* for transmission as Host's suggested values for maximum transmission number
|
|
||||||
* of payload octets and maximum packet transmission time for new connections.
|
|
||||||
*/
|
|
||||||
HciLeWriteDefDataLen(maxTxOctets, maxTxTime);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_WRITE_DEF_DATA_LEN:
|
|
||||||
if (hciCoreCb.extResetSeq) {
|
|
||||||
/* send first extended command */
|
|
||||||
(*hciCoreCb.extResetSeq)(pMsg, opcode);
|
|
||||||
} else {
|
|
||||||
/* initialize extended parameters */
|
|
||||||
hciCoreCb.maxAdvDataLen = 0;
|
|
||||||
hciCoreCb.numSupAdvSets = 0;
|
|
||||||
hciCoreCb.perAdvListSize = 0;
|
|
||||||
|
|
||||||
/* send next command in sequence */
|
|
||||||
HciLeRandCmd();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_READ_MAX_ADV_DATA_LEN:
|
|
||||||
case HCI_OPCODE_LE_READ_NUM_SUP_ADV_SETS:
|
|
||||||
case HCI_OPCODE_LE_READ_PER_ADV_LIST_SIZE:
|
|
||||||
if (hciCoreCb.extResetSeq) {
|
|
||||||
/* send next extended command in sequence */
|
|
||||||
(*hciCoreCb.extResetSeq)(pMsg, opcode);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_RAND:
|
|
||||||
/* check if need to send second rand command */
|
|
||||||
if (randCnt < (HCI_RESET_RAND_CNT - 1)) {
|
|
||||||
randCnt++;
|
|
||||||
HciLeRandCmd();
|
|
||||||
} else {
|
|
||||||
uint8_t addr[6] = { 0 };
|
|
||||||
memcpy(addr, pMsg, sizeof(addr));
|
|
||||||
DM_RAND_ADDR_SET(addr, DM_RAND_ADDR_STATIC);
|
|
||||||
// note: will invoke set rand address
|
|
||||||
set_random_static_address(addr);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HCI_OPCODE_LE_SET_RAND_ADDR:
|
|
||||||
/* send next command in sequence */
|
|
||||||
signal_reset_sequence_done();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ble::vendor::cordio::CordioHCIDriver& ble_cordio_get_hci_driver() {
|
|
||||||
static ble::vendor::cordio::H4TransportDriver transport_driver (/* cbCFG_PIO_PIN_BT_HCI_TX */ PG_14,
|
|
||||||
/* cbCFG_PIO_PIN_BT_HCI_RX */ PC_7,
|
|
||||||
/* cbCFG_PIO_PIN_BT_HCI_CTS */ PG_15,
|
|
||||||
/* cbCFG_PIO_PIN_BT_HCI_RTS */ PG_12,
|
|
||||||
115200);
|
|
||||||
static ble::vendor::odin_w2::HCIDriver hci_driver ( transport_driver,
|
|
||||||
/* cbCFG_PIO_PIN_BT_ENABLE */ PG_7,
|
|
||||||
/* cbCFG_PIO_PIN_BT_HCI_RTS */ PG_12);
|
|
||||||
|
|
||||||
return hci_driver;
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
/* mbed Microcontroller Library
|
|
||||||
* Copyright (c) 2017-2017 ARM Limited
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef ODIN_CORDIO_INTF_H
|
|
||||||
#define ODIN_CORDIO_INTF_H
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "cb_main.h"
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------
|
|
||||||
* Vendor specific commands opcode
|
|
||||||
* ------------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Command to write hardware address to BT device */
|
|
||||||
#define HCID_VS_WRITE_BD_ADDR 0xFC06
|
|
||||||
|
|
||||||
/* It configures clk parameters for fast and slow clock */
|
|
||||||
#define HCID_VS_FAST_CLOCK_CONFIG_BTIP 0xFD1C
|
|
||||||
|
|
||||||
/* Command to configure stand-by behavior */
|
|
||||||
#define HCID_VS_HCILL_PARS_CFG 0xFD2B
|
|
||||||
|
|
||||||
/* Command to configures the sleep mode */
|
|
||||||
#define HCID_VS_SLEEP_PROTOCOLS_CFG 0xFD0C
|
|
||||||
|
|
||||||
/* Command to Update BT device baudrate */
|
|
||||||
#define HCID_VS_UPDATE_UART_BAUD_RATE 0xFF36
|
|
||||||
|
|
||||||
#define HCI_RESET_RAND_CNT 4
|
|
||||||
|
|
||||||
#endif /* ODIN_CORDIO_INTF_H */
|
|
|
@ -1,49 +0,0 @@
|
||||||
Permissive Binary License
|
|
||||||
|
|
||||||
Version 1.0, September 2015
|
|
||||||
|
|
||||||
Redistribution. Redistribution and use in binary form, without
|
|
||||||
modification, are permitted provided that the following conditions are
|
|
||||||
met:
|
|
||||||
|
|
||||||
1) Redistributions must reproduce the above copyright notice and the
|
|
||||||
following disclaimer in the documentation and/or other materials
|
|
||||||
provided with the distribution.
|
|
||||||
|
|
||||||
2) Unless to the extent explicitly permitted by law, no reverse
|
|
||||||
engineering, decompilation, or disassembly of this software is
|
|
||||||
permitted.
|
|
||||||
|
|
||||||
3) Redistribution as part of a software development kit must include the
|
|
||||||
accompanying file named "DEPENDENCIES" and any dependencies listed in
|
|
||||||
that file.
|
|
||||||
|
|
||||||
4) Neither the name of the copyright holder nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from
|
|
||||||
this software without specific prior written permission.
|
|
||||||
|
|
||||||
Limited patent license. The copyright holders (and contributors) grant a
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free patent license to
|
|
||||||
make, have made, use, offer to sell, sell, import, and otherwise
|
|
||||||
transfer this software, where such license applies only to those patent
|
|
||||||
claims licensable by the copyright holders (and contributors) that are
|
|
||||||
necessarily infringed by this software. This patent license shall not
|
|
||||||
apply to any combinations that include this software. No hardware is
|
|
||||||
licensed hereunder.
|
|
||||||
|
|
||||||
If you institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the software
|
|
||||||
itself infringes your patent(s), then your rights granted under this
|
|
||||||
license shall terminate as of the date such litigation is filed.
|
|
||||||
|
|
||||||
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
||||||
CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
|
|
||||||
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
||||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
Binary file not shown.
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"name": "bootloader_UBLOX_EVK_ODIN_W2",
|
|
||||||
"target_overrides": {
|
|
||||||
"*": {
|
|
||||||
"target.app_offset": "0x10400",
|
|
||||||
"target.header_offset": "0x10000",
|
|
||||||
"target.bootloader_img": "mbed-bootloader-sotp-v3_4_0.bin"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -156,13 +156,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"target_overrides": {
|
"target_overrides": {
|
||||||
"REALTEK_RTL8195AM": {
|
|
||||||
"tcpip-thread-stacksize": 1600,
|
|
||||||
"mem-size": 12800
|
|
||||||
},
|
|
||||||
"UBLOX_EVK_ODIN_W2": {
|
|
||||||
"pbuf-pool-size" : 10
|
|
||||||
},
|
|
||||||
"STM": {
|
"STM": {
|
||||||
"mem-size": 2310
|
"mem-size": 2310
|
||||||
},
|
},
|
||||||
|
|
|
@ -20,8 +20,4 @@
|
||||||
#ifndef MBEDTLS_DEVICE_H
|
#ifndef MBEDTLS_DEVICE_H
|
||||||
#define MBEDTLS_DEVICE_H
|
#define MBEDTLS_DEVICE_H
|
||||||
|
|
||||||
#ifdef TARGET_UBLOX_EVK_ODIN_W2
|
|
||||||
#define MBEDTLS_MPI_WINDOW_SIZE 3 /**< Maximum windows size used. */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* MBEDTLS_DEVICE_H */
|
#endif /* MBEDTLS_DEVICE_H */
|
||||||
|
|
|
@ -35,9 +35,6 @@
|
||||||
"DISCO_H747I_CM4": {
|
"DISCO_H747I_CM4": {
|
||||||
"storage_type": "TDB_INTERNAL"
|
"storage_type": "TDB_INTERNAL"
|
||||||
},
|
},
|
||||||
"UBLOX_EVK_ODIN_W2": {
|
|
||||||
"storage_type": "TDB_INTERNAL"
|
|
||||||
},
|
|
||||||
"LPC55S69_S": {
|
"LPC55S69_S": {
|
||||||
"storage_type": "TDB_INTERNAL"
|
"storage_type": "TDB_INTERNAL"
|
||||||
},
|
},
|
||||||
|
|
|
@ -209,10 +209,6 @@
|
||||||
"crash-capture-enabled": true,
|
"crash-capture-enabled": true,
|
||||||
"fatal-error-auto-reboot-enabled": true
|
"fatal-error-auto-reboot-enabled": true
|
||||||
},
|
},
|
||||||
"UBLOX_EVK_ODIN_W2": {
|
|
||||||
"crash-capture-enabled": true,
|
|
||||||
"fatal-error-auto-reboot-enabled": true
|
|
||||||
},
|
|
||||||
"UBLOX_C030_U201": {
|
"UBLOX_C030_U201": {
|
||||||
"crash-capture-enabled": true,
|
"crash-capture-enabled": true,
|
||||||
"fatal-error-auto-reboot-enabled": true
|
"fatal-error-auto-reboot-enabled": true
|
||||||
|
|
|
@ -203,7 +203,7 @@ def test_init_override_app_config(target):
|
||||||
mock_json_file_to_dict.assert_any_call(app_config)
|
mock_json_file_to_dict.assert_any_call(app_config)
|
||||||
assert config.app_config_data == mock_return
|
assert config.app_config_data == mock_return
|
||||||
|
|
||||||
@pytest.mark.parametrize("target", ["K64F", "UBLOX_EVK_ODIN_W2"])
|
@pytest.mark.parametrize("target", ["K64F"])
|
||||||
@pytest.mark.parametrize("overrides", [
|
@pytest.mark.parametrize("overrides", [
|
||||||
{},
|
{},
|
||||||
{"restrict_size": "0x200"},
|
{"restrict_size": "0x200"},
|
||||||
|
|
|
@ -293,7 +293,7 @@
|
||||||
"targets" : ["DISCO_F469NI", "DISCO_F746NG", "K66F",
|
"targets" : ["DISCO_F469NI", "DISCO_F746NG", "K66F",
|
||||||
"NUCLEO_F429ZI", "NUCLEO_F439ZI", "NUCLEO_F746ZG",
|
"NUCLEO_F429ZI", "NUCLEO_F439ZI", "NUCLEO_F746ZG",
|
||||||
"NUCLEO_F756ZG", "NUCLEO_F767ZI",
|
"NUCLEO_F756ZG", "NUCLEO_F767ZI",
|
||||||
"NUMAKER_PFM_NUC472", "UBLOX_EVK_ODIN_W2"],
|
"NUMAKER_PFM_NUC472"],
|
||||||
"toolchains" : [],
|
"toolchains" : [],
|
||||||
"exporters": [],
|
"exporters": [],
|
||||||
"compile" : true,
|
"compile" : true,
|
||||||
|
@ -307,7 +307,7 @@
|
||||||
"sub-repo-example": false,
|
"sub-repo-example": false,
|
||||||
"subs": [],
|
"subs": [],
|
||||||
"features" : [],
|
"features" : [],
|
||||||
"targets" : ["K64F", "NUCLEO_F429ZI", "UBLOX_EVK_ODIN_W2"],
|
"targets" : ["K64F", "NUCLEO_F429ZI"],
|
||||||
"toolchains" : [],
|
"toolchains" : [],
|
||||||
"exporters": [],
|
"exporters": [],
|
||||||
"compile" : true,
|
"compile" : true,
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
"HEAPBLOCKDEVICE": "HeapBlockDevice.json",
|
"HEAPBLOCKDEVICE": "HeapBlockDevice.json",
|
||||||
"HEAPBLOCKDEVICE_AND_ETHERNET": "HeapBlockDeviceAndEthernetInterface.json",
|
"HEAPBLOCKDEVICE_AND_ETHERNET": "HeapBlockDeviceAndEthernetInterface.json",
|
||||||
"HEAPBLOCKDEVICE_AND_WIFI": "HeapBlockDeviceAndWifiInterface.json",
|
"HEAPBLOCKDEVICE_AND_WIFI": "HeapBlockDeviceAndWifiInterface.json",
|
||||||
"ODIN_WIFI" : "OdinInterface.json",
|
|
||||||
"ODIN_ETHERNET" : "Odin_EthernetInterface.json",
|
|
||||||
"REALTEK_WIFI" : "RealtekInterface.json",
|
|
||||||
"ESP8266_WIFI" : "ESP8266Interface.json",
|
"ESP8266_WIFI" : "ESP8266Interface.json",
|
||||||
"ISM43362_WIFI" : "ISM43362Interface.json",
|
"ISM43362_WIFI" : "ISM43362Interface.json",
|
||||||
"IDW0XX1_WIFI" : "SpwfSAInterface.json",
|
"IDW0XX1_WIFI" : "SpwfSAInterface.json",
|
||||||
|
@ -14,6 +11,5 @@
|
||||||
"THREAD_END_DEVICE" : "ThreadInterface_end_device.json",
|
"THREAD_END_DEVICE" : "ThreadInterface_end_device.json",
|
||||||
"THREAD_ROUTER" : "ThreadInterface_router.json",
|
"THREAD_ROUTER" : "ThreadInterface_router.json",
|
||||||
"NO_NETWORK": "no_network.json",
|
"NO_NETWORK": "no_network.json",
|
||||||
"NANOSTACK_MAC_TESTER": "NanostackMACTester.json",
|
"NANOSTACK_MAC_TESTER": "NanostackMACTester.json"
|
||||||
"CC3220SF_WIFI": "CC3220SFInterface.json"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,4 @@
|
||||||
{
|
{
|
||||||
"UBLOX_EVK_ODIN_W2": {
|
|
||||||
"nsapi.socket-stats-enable": true,
|
|
||||||
"default_test_configuration": "NONE",
|
|
||||||
"test_configurations": ["HEAPBLOCKDEVICE_AND_WIFI", "HEAPBLOCKDEVICE_AND_ETHERNET"]
|
|
||||||
},
|
|
||||||
"REALTEK_RTL8195AM": {
|
|
||||||
"nsapi.socket-stats-enable": true,
|
|
||||||
"default_test_configuration": "NONE",
|
|
||||||
"test_configurations": ["HEAPBLOCKDEVICE_AND_WIFI"]
|
|
||||||
},
|
|
||||||
"K64F": {
|
"K64F": {
|
||||||
"nsapi.socket-stats-enable": true,
|
"nsapi.socket-stats-enable": true,
|
||||||
"default_test_configuration": "HEAPBLOCKDEVICE_AND_ETHERNET",
|
"default_test_configuration": "HEAPBLOCKDEVICE_AND_ETHERNET",
|
||||||
|
@ -29,11 +19,6 @@
|
||||||
"default_test_configuration": "NONE",
|
"default_test_configuration": "NONE",
|
||||||
"test_configurations": ["ISM43362_WIFI"]
|
"test_configurations": ["ISM43362_WIFI"]
|
||||||
},
|
},
|
||||||
"MTB_UBLOX_ODIN_W2": {
|
|
||||||
"nsapi.socket-stats-enable": true,
|
|
||||||
"default_test_configuration": "NONE",
|
|
||||||
"test_configurations": ["HEAPBLOCKDEVICE_AND_WIFI"]
|
|
||||||
},
|
|
||||||
"MTB_ADV_WISE_1530": {
|
"MTB_ADV_WISE_1530": {
|
||||||
"nsapi.socket-stats-enable": true,
|
"nsapi.socket-stats-enable": true,
|
||||||
"default_test_configuration": "NONE",
|
"default_test_configuration": "NONE",
|
||||||
|
@ -66,10 +51,5 @@
|
||||||
"TB_SENSE_1": {
|
"TB_SENSE_1": {
|
||||||
"default_test_configuration": "NO_NETWORK",
|
"default_test_configuration": "NO_NETWORK",
|
||||||
"test_configurations": ["6LOWPAN_HOST", "6LOWPAN_ROUTER", "THREAD_END_DEVICE", "THREAD_ROUTER"]
|
"test_configurations": ["6LOWPAN_HOST", "6LOWPAN_ROUTER", "THREAD_END_DEVICE", "THREAD_ROUTER"]
|
||||||
},
|
|
||||||
"CC3220SF": {
|
|
||||||
"nsapi.socket-stats-enable": true,
|
|
||||||
"default_test_configuration": "CC3220SF_WIFI",
|
|
||||||
"test_configurations": ["CC3220SF_WIFI"]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue