4.1.1.1 Central - FreeRTOS BLE Stack and App Initialization

This section provide details on creating a new MCC Harmony project, configure the FreeRTOS and BLE stack components in the project and generate code using the MCC.

It is recommended to follow the examples in sequence to understand the basic concepts before progressing to the advanced topics.

Hardware Requirement

  • None

Software Setup

  • Refer to Getting Started with Software Development from Related Links.

Initiating a BLE Stack

Follow the steps below to build the application manually:
Note: It is recommended for the new users of the MPLAB Code Configurator to refer MPLAB® Code Configurator (MCC) User’s Guide in Referenced Documentation from Related Links.
  1. Create a new harmony project. For more details, see Creating a New MCC Harmony Project from Related Links.
  2. Open the MCC:
    Figure 4-1. MCC
  3. Default MPLAB Code Configurator window shown as follows.
    Figure 4-2. Default MCC Window
  4. To add the BLE Stack component to the project graph, go to Harmony>Wireless>Drivers>BLE>BLE Stack from the “Device Resources” field as illustrated in the following figure.
    Figure 4-3. BLE Stack
  5. Upon selection, user will receive a prompt for auto-activation and auto-connect request of different component dependencies. Select Yes to add all the dependent components and also for all attachment auto-connect requests.
    Figure 4-4. Auto-Activation and Auto-Connect
  6. Verify the Project Graph.
    Figure 4-5. Project Graph
  7. Click on the FreeRTOS component in project graph, open Configuration Options and configure as illustrated in the following image. the configuration must suit most application needs. It is recommended to refer the FreeRTOS Customization in Referenced Documentation from Related Links.
    Figure 4-6. FreeRTOS
    Note:
    • Upon selecting any component, the default configuration options available for the user are displayed.
    • By default, the “Total heap size” is set to a default value which might not be sufficient to a specific project. If the total heap size is not enough, vApplicationMallocFailedHook( ) will be caught. Then user can adjust the “Total heap size” to avoid this situation.
    • It is required to address the heap needed or BLE stack library as defined in initialization.c #define EXT_COMMON_MEMORY_SIZE (22*1024). Hence the default “Total heap size”.
  8. Click on the BLE Stack component in project graph, open Configuration Options and
    1. Peripheral Device functionality is enabled by default, this must be unchecked (BLE Stack>Generic Access Profile (GAP)>Peripheral)
    2. Central configuration must be checked (BLE Stack>Generic Access Profile (GAP)>Central)
    Figure 4-7. BLE Stack
  9. To generate the code, refer to MPLAB Code Configurator (MCC) Code Generation from Related Links.
  10. Build Project and upon building the project, user action is required. For more information, refer to User Action from Related Links.
  11. Switch to MPLAB X IDE window and Build Project. The project must compile successfully.
    Figure 4-8. Code Generation
  12. Choose the correct compiler version, as suggested in Tools and Harmony Component Versions, refer to Getting Started with Software Development from Related Links.