nuttx/boards/arm/s32k1xx/ucans32k146
Alan Rosenthal 8defb843aa Remove duplicate linker script definitions
## Summary
A lot of linker scripts were listed twice, once for unix, once for windows.

This PR cleans up the logic so they're only listed once.

 ## Impact
Any opportunity to use a single source of truth and reduce lines of code is a win!

 ## Testing
CI will test all build
2022-02-17 02:55:25 +08:00
..
configs sched: Remove SDCLONE_DISABLE option and config 2022-01-31 19:03:20 +01:00
include
scripts Remove duplicate linker script definitions 2022-02-17 02:55:25 +08:00
src S32K1XX boards: Implement userled_getall function 2021-10-18 12:30:18 -07:00
Kconfig
README.txt UCANS32K146 board: Add CAN configuraton 2021-09-17 09:28:50 -05:00

README
======

This directory holds the port to the NXP UCANS32K146 boards.  There exist a
few different revisions/variants of this board.  All variants with the
S32K146 microcontroller are supported.

Contents
========

  o Status
  o Serial Console
  o LEDs and Buttons
  o Thread-Aware Debugging with Eclipse
  o Configurations

Status
======

  2020-01-23:  Configuration created (copy-paste from S32K146EVB).
    Tested: Serial console, I2C, SPI.

  2020-06-15:  Added FlexCAN driver with SocketCAN support to the S32K1XX
    arch, which has been tested with the UCANS32K146 board as well.

  2020-06-16:  Added Emulated EEPROM driver and initialization.

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

  By default, the serial console will be provided on the DCD-LZ UART
  (available on the 7-pin DCD-LZ debug connector P6):

    OpenSDA UART RX  PTC6  (LPUART1_RX)
    OpenSDA UART TX  PTC7  (LPUART1_TX)

  USB drivers for the PEmicro CDC Serial Port are available here:
  http://www.pemicro.com/opensda/

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

  LEDs
  ----
  The UCANS32K146 has one RGB LED:

    RedLED    PTD15  (FTM0 CH0)
    GreenLED  PTD16  (FTM0 CH1)
    BlueLED   PTD0   (FTM0 CH2)

  An output of '0' illuminates the LED.

  If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in
  any way.  The following definitions are used to access individual RGB
  components (see ucans32k146.h):

    GPIO_LED_R
    GPIO_LED_G
    GPIO_LED_B

  The RGB components could, alternatively, be controlled through PWM using
  the common RGB LED driver.

  If CONFIG_ARCH_LEDs is defined, then NuttX will control the LEDs on board
  the UCANS32K146.  The following definitions describe how NuttX controls the
  LEDs:

    ==========================================+========+========+=========
                                                 RED     GREEN     BLUE
    ==========================================+========+========+=========

    LED_STARTED      NuttX has been started      OFF      OFF      OFF
    LED_HEAPALLOCATE Heap has been allocated     OFF      OFF      ON
    LED_IRQSENABLED  Interrupts enabled          OFF      OFF      ON
    LED_STACKCREATED Idle stack created          OFF      ON       OFF
    LED_INIRQ        In an interrupt                   (no change)
    LED_SIGNAL       In a signal handler               (no change)
    LED_ASSERTION    An assertion failed               (no change)
    LED_PANIC        The system has crashed      FLASH    OFF      OFF
    LED_IDLE         S32K146 in sleep mode             (no change)
    ==========================================+========+========+=========

  Buttons
  -------
  The UCANS32K146 supports one button:

    SW3  PTC14

Thread-Aware Debugging with Eclipse
===================================

  Thread-aware debugging is possible with openocd-nuttx
  ( https://github.com/sony/openocd-nuttx ) and was tested together with the
  Eclipse-based S32 Design Studio for Arm:  
  https://www.nxp.com/design/software/development-software/s32-design-studio-ide/s32-design-studio-for-arm:S32DS-ARM

  NOTE: This method was last tested with NuttX 8.2 and S32DS for Arm 2018.R1.
  It may not work anymore with recent releases of NuttX and/or S32DS.

  1. NuttX should be build with debug symbols enabled.

  2. Build OpenOCD as described here (using the same parameters as well):
     https://micro.ros.org/docs/tutorials/old/debugging/

  3. A s32k146.cfg file is available in the scripts/ folder.  Start OpenOCD
     with the following command (adapt the path info):
     /usr/local/bin/openocd -f /usr/share/openocd/scripts/interface/jlink.cfg \
     -f boards/s32k1xx/ucans32k146/scripts/s32k146.cfg -c init -c "reset halt"

  4. Setup a GDB debug session in Eclipse.  The resulting debug window shows
     the NuttX threads.  The full stack details can be viewed.

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

  Common Information
  ------------------
  Each UCANS32K146 configuration is maintained in a sub-directory and can be
  selected as follows:

    tools/configure.sh ucans32k146:<subdir>

  Where <subdir> is one of the sub-directories listed in the next paragraph.

    NOTES (common for all configurations):

    1. This configuration uses the mconf-based configuration tool.  To change
       this configuration using that tool, you should:

       a. Build and install the kconfig-mconf tool.  See nuttx/README.txt.
          Also 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 otherwise stated, the serial console used is LPUART1 at
       115,200 8N1.  This corresponds to the OpenSDA VCOM port.

  Configuration Sub-directories
  -----------------------------

    nsh:
    ---
      Configures the NuttShell (nsh) located at apps/examples/nsh.  Support
      for builtin applications is enabled, but in the base configuration the
      only application selected is the "Hello, World!" example.

    can:
    ---
      Besides the NuttShell this configuration also enables (Socket)CAN
      support, as well as I2C and SPI support.  It includes the SLCAN and
      can-utils applications for monitoring and debugging CAN applications.