nuttx/configs/b-l475e-iot01a
Gregory Nutt 2fc0fbcf7e Squashed commit of the following:
commit 89e9d426e91c056e659fccf5e5c4392618f8f777
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 16:44:19 2017 -0600

    Update some comments

commit 9c5d8a5833350006ed389e898b11c8c8a20e5f4f
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 16:15:54 2017 -0600

    Spirit:  Rename drivers/wireless/spirit/src to lib.  Move Spirit network driver out of IEEE802.15.4 into drivers/wireless/spirit/drivers

commit cabc0ec9e6eb558dcb715ab17264383aa0105e7a
Merge: 87b616414a 6bd744c4b3
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 15:38:40 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 87b616414a79c01a71acea78f8258e05325c1996
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 15:37:27 2017 -0600

    Spirit radio driver is mutating into a standalone network driver.

commit 507798233868a661ae8adad3e3aa117075a7a146
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 13:32:08 2017 -0600

    Spirit: More radio initialization logic

commit 33af25704ce9ca83d576300d153cfe31cc6d2576
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 12:19:14 2017 -0600

    Spirit:  Beginning of radio initialization logic

commit 97b20014c016e55952a8f9d8f4ae29e2cc555b23
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 09:42:06 2017 -0600

    Spirit: More initialization logic.

commit 295d8e27824c0417fccea2344b30bb5c93ffbabe
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 15:39:53 2017 -0600

    Spirit:  Add header file containing enumeration of commands.

commit 8a2d9dd8eb9cc70cbcdd1b913fc9022b9c9ec8da
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 11:33:50 2017 -0600

    Spirit:  Add GPIO initialization logic

commit 8b6d80c44f92024c45a6ba63ba1af3fdafe94dc3
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 10:07:25 2017 -0600

    Spirit:  Add interrupt control logic.

commit 423f846fe5c914f92a4bfea4d9d1fa33de1c77a5
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 19:06:52 2017 -0600

    Spirit: Yet a little more radio initialization logic.

commit 5895b979823e51ddde5ad52e6de66a8ad662e883
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 15:36:05 2017 -0600

    Spirit: A little more radio initialization logic.

commit 86311ab30aad386203c181c792847dd1d37f9a02
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 13:02:32 2017 -0600

    Spirit: A miniscule amount of radio initialization logic.

commit ad55e89d5ee12ea1eeea95fcd38ff3da0db4416a
Merge: 90a7666655 f4e46b0da7
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 10:56:30 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 90a766665534b05da0157dbc383cb06a98c86a79
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 10:52:52 2017 -0600

    Spirit1:  A few fixes for a clean build of initial configuration (not much there yet)

commit bbbf04c223230a52a7705a2161128265cfbaa480
Merge: 623d54a7f7 2319ea53a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:53:57 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 623d54a7f719e9032099f88f38203efee4b80722
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:43:52 2017 -0600

    b-l475e-iot01a: Add a configuration for testing sprit radio.

commit d309d73d9f4665f9d870eb03531f450043d9389d
Merge: 52c3ddfae6 d88dc9b2e5
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:02:06 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 52c3ddfae6802e111c2b5cf1207baf21a61dd00b
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 08:33:04 2017 -0600

    Spirit:  Add register definition header file.

commit 8d842ab5e8f9ca653b42f9ee88dc279f06b4fa98
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 17:27:03 2017 -0600

    b-l475e-iot01a: Add initial, unverified support for the SPSRGF/Spirit1 module.

commit 73d902a1048616fb9c2dd2147cabcd8ee78e19ac
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 15:49:43 2017 -0600

    Spirit: Fixes to get skeleton IEEE 802.15.4 driver build.

commit ebc5a8387bb94f0cc3827533795f3e4a33207e67
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 15:16:29 2017 -0600

    Spirit1:  Add framework for IEEE 802.15.4 driver.  Does not yet build.

commit 52e195a7ae14ddb18bdd56258f4877381d2501ca
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 14:02:42 2017 -0600

    Spirit:  A little more SPI logic.

commit 90048d0c5b8a5af4d81a15d99535c84ed38d8ae9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 11:19:06 2017 -0600

    Spirit: Build directories setup.  Some initial files added, mostly just to verify build.

commit 8273a381ac1f6bb081b292b5e73226185e9e634c
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 08:34:04 2017 -0600

    USB composite:  Remove references to CDC/ACM and USB MSC from composite logic.  They are no longer coupled.
2017-07-24 16:46:30 -06:00
..
include Squashed commit of the following: 2017-07-24 16:46:30 -06:00
nsh Build System: It is no longer necessary to have a unique Make.defs file for each configuration. A board may share a common Make.defs file in the scripts directory. 2017-07-10 17:00:54 -06:00
scripts Build System: It is no longer necessary to have a unique Make.defs file for each configuration. A board may share a common Make.defs file in the scripts directory. 2017-07-10 17:00:54 -06:00
spirit-mac Squashed commit of the following: 2017-07-24 16:46:30 -06:00
src Squashed commit of the following: 2017-07-24 16:46:30 -06:00
Kconfig configs/b-l475e-iot01a: Add basic support for the STMicro b-l475e-iot01a board 2017-07-09 11:48:28 -06:00
README.txt L should be capitalized in 6LoWPAN 2017-06-18 16:00:08 -06:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

README
======

  This README discusses the port of NuttX to the STMicro B-L475E-IOT01A
  Discovery kit powered by STM32L475VG Cortex-M4.  This board targets IoT
  nodes with a choice of connectivity options including WiFi, Bluetooth LE,
  NFC, and sub-GHZ RF at 868 or 915 MHz, as well as a long list of various
  environmental sensors.

Contents
========

  o STATUS
  o Board Features
  o LEDs and Buttons
  o Serial Console
  o Configurations

STATUS
======

  o 2017-06-10:  I have no hardware in hand and I am not sure that I will
    even pursue this port.  This README is really no more than a thought
    experiment at the present time.

    A few days ago, I did add support for the STM32L4x5 MCU family to
    NuttX.  But no work has yet been done for this board port other
    than writing this README file.

  o 2017-06-13:  I just learned that development boards will not be
    available for another month.

Board Features
==============

  B-L475E-IOT01A Discovery kit key features and specifications:

  o MCU:  STM32L475 Series MCU based on ARM Cortex-M4 core with 1 MB
    Flash memory, 128 KB SRAM
  o Storage: 64 Mbit (8MB)  Quad-SPI Flash memory (Macronix)
  o Connectivity:
    - Bluetooth 4.1 LE module (SPBTLE-RF)
    - Sub-GHz (868 or 915 MHz) low-power-programmable RF module (SPSGRF-868
      or SPSGRF-915)
    - Wi-Fi module based on Inventek ISM43362-M3G-L44 (802.11 b/g/n
      compliant)
    - Dynamic NFC tag based on M24SR with its printed NFC antenna
  o Sensors:
    - 2x digital omni-directional microphones (MP34DT01)
    - Capacitive digital sensor for relative humidity and temperature
      (HTS221)
    - 3-axis magnetometer (LIS3MDL)
    - 3D accelerometer and 3D gyroscope (LSM6DSL)
    - 260-1260 hPa absolute digital output barometer (LPS22HB)
    - Time-of-Flight and gesture-detection sensor (VL53L0X
  o USB  1x micro USB OTG port (Full speed)
  o Expansion  Arduino UNO V3 headers, PMOD header
  o Debugging  On-board ST-LINK/V2-1 debugger/programmer with USB
    re-enumeration capability: mass storage, virtual COM port and debug
    port
  o Misc  2 push-buttons (user and reset)
  o Power Supply  5V via ST LINK USB VBUS or external sources

  The board supports ARM mbed online compiler, but can also be programmed
  using IDEs such as IAR, Keil, and GCC-based IDEs.  STMicro also provides
  HAL libraries and code samples as part of the STM32Cube Package, as well
  as X-CUBE-AWS expansion software to connect to the Amazon Web Services
  (AWS) IoT platform.

  NOTES:

  1. The board usese Wi-Fi® module Inventek ISM43362-M3G-L44 (802.11 b/g/n
     compliant), which consists of BCM43362 and STM32F205 host processor
     that has a standard SPI or UART interface capability.  It means you
     will only use AT command to talk with Wi-Fi® module by SPI. All the
     tcp/ip stack is  built-in STM32F205 in Wi-Fi® module.

     This cannot integrate cleanly with the NuttX network stack.  A
     USERSOCK option was recently added that would permit implementation
     of the Inventek support in an applications.  But that would then
     preclude the 6LoWPAN integration into IPv6.

  2. The board uses Bluetooth® V4.1 module (SPBTLE-RF), which has built-in
     BLE stack.  Similar with wifi, you only use simple AT command to talk
     with this BLE module.

  3. STMicro provides contiki 6lowpan for mesh.
     http://www.st.com/en/embedded-software/osxcontiki6lp.html but mesh
     network is not popular in the market, star network is the mainstream
     for its simplicity and robustness.

LEDs and Buttons
================

  The black button B1 located on top side is the reset of the STM32L475VGT6.

  The blue button B1 located top side is available to be used as a digital
  input or as alternate function Wake-up.  When the button is depressed the logic state is "0", otherwise the logic state is "1".

  Two green LEDs (LD1 and LD2), located on the top side are available for the user. To light a LED a high logic state "1" should be written in the corresponding GPIO.

  Reference Color Name    Comment
    B2      blue  Wake-up Alternate function Wake-up
    LD1     green LED1    PA5 (alternate with ARD.D13)
    LD2     green LED2    PB14

  These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
  selected.  In that case, the usage by the board port is defined in
  include/board.h and src/lpc31_leds.c. The LEDs are used to encode
  OS-related events as follows:

    SYMBOL                Meaning                     LED state
                                                    LED2     LED1
    -------------------  -----------------------  -------- --------
    LED_STARTED          NuttX has been started     OFF      OFF
    LED_HEAPALLOCATE     Heap has been allocated    OFF      OFF
    LED_IRQSENABLED      Interrupts enabled         OFF      OFF
    LED_STACKCREATED     Idle stack created         ON       OFF
    LED_INIRQ            In an interrupt            N/C      N/C
    LED_SIGNAL           In a signal handler        N/C      N/C
    LED_ASSERTION        An assertion failed        N/C      N/C
    LED_PANIC            The system has crashed     N/C      Blinking
    LED_IDLE             MCU is is sleep mode         Not used

  Thus if LED2 is statically on, NuttX has successfully booted and is,
  apparently, running normmally.  If LED1 is flashing at approximately
  2Hz, then a fatal error has been detected and the system has halted.

  NOTE: That LED2 is not used after completion of booting and may
  be used by other board-specific logic.

  Of course, if CONFIG_ARCH_LEDS is not selected, then both LEDs are
  available for use by other logic.

Serial Console
==============

  Arduino Serial Shield
  ---------------------
  An TLL-to-RS232 Converter shield may be used with UART4:

    UART4:
    -------------- ----------------  ------------------
    STM32L475VGTx   Board Signal     Arduino Connector
    -------------- ----------------  ------------------
    UART4_RX PA1   ARD.D0-UART4_RX   CN3 pin1 RX/D0
    UART4_TX PA0   ARD.D1-UART4_TX   CN3 pin2 TX/D1
    -------------- ----------------  ------------------

  Virtual COM Port
  ----------------
  The serial interface USART1 is directly available as a virtual COM port
  of the PC connected to the ST-LINK/V2-1 USB connector CN7.

    USART1:
    -------------- ---------------- --------------
    STM32L475VGTx  Board Signal     STM32F103CBT6
    -------------- ---------------- --------------
    USART1_TX PB6  ST-LINK-UART1_TX USART2_RX PA3
    UAART1_RX PB7  ST-LINK-UART1_RX USART2_TX PA2
    -------------- ---------------- --------------

  The virtual COM port settings are configured as: 115200 b/s, 8 bits data,
  no parity, 1 stop bit, no flow control.

  Other Options
  -------------

    USART2 - Available on CN10 if solder bridges closed.
    -------------- ----------------  ---------------------------
    STM32L475VGTx  Board Signal      PMOD / Solder Bridges
    -------------- ----------------  ---------------------------
    USART2_RX PD4  PMOD-UART2_RX     CN10 pin1 or 2 (SB12, SB14)
    USART2_TX PD5  PMOD-UART2_TX     CN10 pin2 TX/D1 (SB20)
    -------------- ----------------  ---------------------------

    USART3 - Dedicated to ISM43362-M3G-L44 Serial-to-Wifi Module.
    -------------- ----------------  ------------------
    STM32L475VGTx  Board Signal      Arduino Connector
    -------------- ----------------  ------------------
    USART3_RX PD9  INTERNAL-UART3_RX CN3 pin1 RX/D0
    USART3_TX PD8  INTERNAL-UART3_TX CN3 pin2 TX/D1
    -------------- ----------------  ------------------

Configurations
==============

  Information Common to All Configurations
  ----------------------------------------
  Each  B-L475E-IOT01A configuration is maintained in a sub-directory and
  can be selected as follow:

    cd tools
    ./configure.sh  b-l475e-iot01a/<subdir>
    cd -

  Before building, make sure that:

    1. The PATH environment variable include the correct path to the
       directory than holds your toolchain binaries.
    2. Check the .config file.  Make sure that the configuration is set for
       your build platform (e.g., Linux vs. Windows) and that the toolchain
       is set for the toolchain type you are using.

  The <subdir> that is provided above as an argument to the
  tools/configure.sh must be is one of those listed below.

  And then build NuttX by simply typing the following.  At the conclusion of
  the make, the nuttx binary will reside in an ELF file called, simply,
  nuttx.

    make oldconfig
    make

  Where 'make oldconfig' brings the configuration up to data with the current configuration data and 'make' will compile all of the source
  files and generate the final binary.

  NOTES:

  1. These configurations use the mconf-based configuration tool.  To
    change any of these configurations using that tool, you should:

    a. Build and install the kconfig-mconf tool.  See nuttx/README.txt
       see additional README.txt files in the NuttX tools repository.

    b. Execute 'make menuconfig' in nuttx/ in order to start the
       reconfiguration process.

  2. Unless stated otherwise, all configurations generate console
     output on USART1 (i.e., for ST-Link Virtual COM port).

  3. All of these configurations are set up to build under Windows using the
     "GNU Tools for ARM Embedded Processors" that is maintained by ARM
     (unless stated otherwise in the description of the configuration).

       https://launchpad.net/gcc-arm-embedded

     That toolchain selection can easily be reconfigured using
     'make menuconfig'.  Here are the relevant current settings:

     Build Setup:
       CONFIG_HOST_WINDOWS=y               : Window environment
       CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows

     System Type -> Toolchain:
       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y : GNU ARM EABI toolchain

Configuration sub-directories
-----------------------------