.. _creating_custom_ble_app:

*************************
Developing with |LPF3SDK|
*************************

To develop a custom Bluetooth Low Energy Application with the |DEVICE| family of devices,
a system designer must have a firm grasp on the general system architecture,
application, and Bluetooth Low Energy stack framework. This section provides
guidance on how to implement a custom application based on
information presented in the previous sections (:ref:`the_application` and
:ref:`the_stack`) as well as knowledge of RTOS and |DEVICE|.

First, the user should decide what role and purpose the custom application should have. If an
application is tied to a specific service or profile, start with that sample
application. A project's role can be essentially be placed in one of the five (5)
categories as described by :ref:`gap_roles`. Once the role has been selected,
the user may need to alter the application code, the memory map, the building
and linking options and more to turn their example project into a custom application.

..
   In this chapter, we will look at these aspects involved in developing 
   an application with SDK CC23xx. The following sections are covered:

   -  :ref:`app-layer-overview`
   -  :ref:`mem-management-overview`
   -  :ref:`sec-building-and-linking`
   -  :ref:`sec-using-production-test-mode`
   -  :ref:`sec-network-proc-cc23xx`
   -  :ref:`sect-custom-hardware`
   -  :ref:`compiler_and_linker_options_cc23xx`

.. _app-layer-overview:

=================
Application Layer
=================

In this section, we take as an example the basic\_ble project and describe for
you the application portion. This section includes the following topics:

.. toctree::
   :maxdepth: 1

   /ble-stack-5.x/the-application-cc23xx

.. _mem-management-overview:

=================
Memory Management
=================

All details about the memory layout and usage can be found in the section
:ref:`sec-memory-overview`.

.. _sec-building-and-linking:

===========================
Compiler and Linker Options
===========================

The following section details the building and linking options for development with CCS.

.. toctree::
   :maxdepth: 1

   /ble-stack-5.x/compiler_and_linker_options

=========================================
Production Test Mode and Direct Test Mode
=========================================

This section discusses how Production Test Mode and Direct Test Mode can be 
incorporated into a project to allow users to automatically test their 
products before they ship.

.. toctree::
   :maxdepth: 1

   /ble-stack-5.x/ptm-and-dtm.rst
   /ble-stack-5.x/testing-with-btool-cc23xx.rst

.. _sec-network-proc-cc23xx:

==============================
Bluetooth LE Network Processor
==============================
The BLE Network Processor section describes a configuration where most of the
programming logic happens on a separate controller, which communicates with the
|DEVICE| device over wired communication.

.. toctree::
   :maxdepth: 1

   /ble-stack-5.x/network-processor-cc23xx
   /ble-stack-common/npi-index.rst


.. _sect-custom-hardware:

==================================
Running the SDK on Custom Hardware
==================================

.. toctree::
   :maxdepth: 1

   /cc23xx/custom-hardware-cc23xx

=====================
Development Resources
=====================
.. toctree::
   :maxdepth: 1

   /cc23xx/gpio-cc23xx.rst
   /cc23xx/timer-cc23xx.rst
   /cc23xx/uart2_dynamic_pin_switching.rst
   /cc23xx/disable-external-flash-cc23xx.rst
   /cc23xx/command-line-flashing-cc23xx.rst
   /cc23xx/enable-s2r-ram-cc23xx.rst
   /cc23xx/txpower-cc23xx.rst
   /cc23xx/watchdog-timer-cc23xx.rst
   /cc23xx/device-version-and-compatibility-cc23xx.rst
   /cc23xx/system-reset-cc23xx.rst
   /cc23xx/psa-to-sl-cc23xx.rst
   /cc23xx/keystore-cc23xx.rst
   /cc23xx/hsm-programming-guide-cc27xx.rst
   /cc23xx/tfm-cc27xx.rst
   /cc23xx/remove-display-module.rst