Mistake on this page?
Report an issue in GitHub or email us
NRFCordioHCIDriver.h
1 /* mbed Microcontroller Library
2  * Copyright (c) 2017-2018 ARM Limited
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef NRF_CORDIO_HCI_DRIVER_H_
19 #define NRF_CORDIO_HCI_DRIVER_H_
20 
21 #include "ble/driver/CordioHCIDriver.h"
22 
23 namespace ble {
24 
25 /**
26  * Nordic port of CordioHCIDriver
27  */
29 public:
30  /**
31  * Construct a new instance of an HCI driver.
32  * @param transport_driver The driver used to communicate with the chip.
33  */
35 
36  /**
37  * Driver destructor
38  */
39  virtual ~NRFCordioHCIDriver();
40 
41  /**
42  * Return the set of memory pool which will be used by the Cordio stack
43  */
45 
46  /**
47  * Start the reset sequence of the BLE module.
48  */
49  virtual void start_reset_sequence();
50 
51  /**
52  * Handle HCI messages received during the reset sequence.
53  *
54  * @param msg The HCI message received.
55  * @note The driver should signal to the stack that the initialization
56  * sequence is done by calling the function: signal_reset_sequence_done.
57  */
58  //virtual void handle_reset_sequence(uint8_t *msg);
59 
60  /**
61  * @copydoc CordioHCIDriver::get_random_static_address
62  */
63  virtual bool get_random_static_address(ble::address_t& address);
64 
65 private:
66  /**
67  * Initialize the chip.
68  * The transport is up at that time.
69  */
70  virtual void do_initialize();
71 
72  /**
73  * Terminate the driver
74  */
75  virtual void do_terminate();
76 
77  // Cordio parameters
78  static const BbRtCfg_t _bb_cfg; /// << Baseband runtime configuration
79  static const LlRtCfg_t _ll_cfg; /// << Link layer runtime configuration;
80 
81  bool _is_init;
82  uint8_t* _stack_buffer;
83 };
84 
85 } // namespace ble
86 
87 #endif /* NRF_CORDIO_HCI_DRIVER_H_ */
Contain description of the memory pool used by the Cordio stack.
virtual ~NRFCordioHCIDriver()
Driver destructor.
Nordic port of CordioHCIDriver.
BB runtime configuration parameters.
Definition: bb_api.h:95
Base class of the HCI transport driver.
virtual bool get_random_static_address(ble::address_t &address)
Handle HCI messages received during the reset sequence.
LL runtime configuration parameters.
Definition: ll_api.h:124
MAC address data type.
Base class of the HCI driver use by the BLE port of the Cordio stack.
virtual void start_reset_sequence()
Start the reset sequence of the BLE module.
virtual buf_pool_desc_t get_buffer_pool_description()
Return the set of memory pool which will be used by the Cordio stack.
Entry namespace for all BLE API definitions.
NRFCordioHCIDriver(CordioHCITransportDriver &transport_driver)
Construct a new instance of an HCI driver.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.