configs/tms570ls31x-usb-kit: Adds support for the TI Hercules TMS570LS31x USB Kit
This commit is contained in:
parent
1efd591cd8
commit
1672f8d0ce
@ -8,7 +8,7 @@
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1>
|
||||
<p>Last Updated: April 15, 2018</p>
|
||||
<p>Last Updated: April 18, 2018</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -322,6 +322,8 @@ nuttx/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/tm4c123g-launchpad/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- tm4c1294-launchpad/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/tm4c1294-launchpad/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- tms570ls31x-usb-kit/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/tms570ls31x-usb-kit/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- twr-k60n512/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/twr-k60n512/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- twr-k64f120m/
|
||||
|
@ -1892,6 +1892,8 @@ nuttx/
|
||||
| | `- README.txt
|
||||
| |- twr-k60n512/
|
||||
| | `- README.txt
|
||||
| |- tms570ls31x-usb-kit/
|
||||
| | `- README.txt
|
||||
| |- twr-k64f120m/
|
||||
| | `- README.txt
|
||||
| |- u-blox-co27/
|
||||
|
@ -1401,6 +1401,16 @@ config ARCH_BOARD_TM4C1294_LAUNCHPAD
|
||||
---help---
|
||||
Tiva EK-TM4C1294XL LaunchPad.
|
||||
|
||||
config ARCH_BOARD_TMS570LS31X_USB_KIT
|
||||
bool "TI TMS570LS31X_USB_KIT"
|
||||
depends on ARCH_CHIP_TMS570LS3137ZWT
|
||||
select ARCH_HAVE_LEDS
|
||||
select ARCH_HAVE_BUTTONS
|
||||
select ARCH_HAVE_IRQBUTTONS
|
||||
---help---
|
||||
TI Hercules TMS570LS31xx Evaluation Kit (TMDS570ls31xx USB Kit)
|
||||
featuring the Hercules TMS570LS3137ZWT chip.
|
||||
|
||||
config ARCH_BOARD_TWR_K60N512
|
||||
bool "FreeScale TWR-K60N512 development board"
|
||||
depends on ARCH_CHIP_MK60N512VMD100
|
||||
@ -1735,6 +1745,7 @@ config ARCH_BOARD
|
||||
default "teensy-lc" if ARCH_BOARD_TEENSY_LC
|
||||
default "tm4c123g-launchpad" if ARCH_BOARD_TM4C123G_LAUNCHPAD
|
||||
default "tm4c1294-launchpad" if ARCH_BOARD_TM4C1294_LAUNCHPAD
|
||||
default "tms570ls31x-usb-kit" if ARCH_BOARD_TMS570LS31X_USB_KIT
|
||||
default "twr-k60n512" if ARCH_BOARD_TWR_K60N512
|
||||
default "twr-k64f120m" if ARCH_BOARD_TWR_K64F120M
|
||||
default "u-blox-c027" if ARCH_BOARD_U_BLOX_C027
|
||||
@ -2182,6 +2193,9 @@ endif
|
||||
if ARCH_BOARD_TM4C1294_LAUNCHPAD
|
||||
source "configs/tm4c1294-launchpad/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_TMS570LS31X_USB_KIT
|
||||
source "configs/tms570ls31x-usb-kit/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_TWR_K60N512
|
||||
source "configs/twr-k60n512/Kconfig"
|
||||
endif
|
||||
|
@ -781,6 +781,10 @@ configs/tm4c1294-launchpad
|
||||
platform for ARM® Cortex™-M4F-based microcontrollers from Texas
|
||||
Instruments.
|
||||
|
||||
configs/tms570ls31x-usb-kit
|
||||
TI Hercules TMS570LS31xx Evaluation Kit (TMDS570ls31xx USB Kit)
|
||||
featuring the Hercules TMS570LS3137ZWT chip.
|
||||
|
||||
configs/twr-k60n512
|
||||
Kinetis K60 Cortex-M4 MCU. This port uses the FreeScale TWR-K60N512
|
||||
development board.
|
||||
|
@ -186,7 +186,7 @@ int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||
#ifdef HAVE_IRQBUTTONS
|
||||
if (id == BUTTON_GIOA7)
|
||||
{
|
||||
return board_button_irqx(GIO_BUTTON, IRQ_BUTTON, irqhandler,i
|
||||
return board_button_irqx(GIO_BUTTON, IRQ_BUTTON, irqhandler,
|
||||
&g_irq_button, arg);
|
||||
}
|
||||
#endif
|
||||
|
8
configs/tms570ls31x-usb-kit/Kconfig
Normal file
8
configs/tms570ls31x-usb-kit/Kconfig
Normal file
@ -0,0 +1,8 @@
|
||||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see the file kconfig-language.txt in the NuttX tools repository.
|
||||
#
|
||||
|
||||
if ARCH_BOARD_TMS570LS31x_USB_KIT
|
||||
|
||||
endif # ARCH_BOARD_TMS570LS31x_USB_KIT
|
114
configs/tms570ls31x-usb-kit/README.txt
Normal file
114
configs/tms570ls31x-usb-kit/README.txt
Normal file
@ -0,0 +1,114 @@
|
||||
README
|
||||
======
|
||||
|
||||
This README provides some information about the port of NuttX to the TI
|
||||
Hercules TMS570LS31x USB Kit featuring the Hercules TMS570LS3137ZWT chip.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
- Status
|
||||
- Toolchain
|
||||
- LEDs and Buttons
|
||||
- Serial Console
|
||||
- Debugging
|
||||
- Configurations
|
||||
|
||||
Status
|
||||
======
|
||||
|
||||
2017-10-18:
|
||||
The basic port to the TMS570 is complete. The NSH with basic commands is
|
||||
up and running. There is support for SCI communication and RTI.
|
||||
|
||||
Toolchain
|
||||
=========
|
||||
|
||||
Build Platform
|
||||
--------------
|
||||
All of these configurations are set up to build with Ubuntu.
|
||||
|
||||
Endian-ness Issues
|
||||
------------------
|
||||
I used a version of the NuttX buildroot toolchain that can be built like
|
||||
this:
|
||||
|
||||
cd buildroot/
|
||||
cp configs/cortexr4f-eabi-defconfig-4.8.5 .config
|
||||
make oldconfig
|
||||
make
|
||||
|
||||
Before building the compiler I installed the following packages which
|
||||
are needed for the compiler build.
|
||||
|
||||
# install or update all apt-get dependencies
|
||||
sudo apt-get update
|
||||
sudo apt-get upgrade
|
||||
sudo apt-get install gcc # not cross
|
||||
sudo apt-get install g++
|
||||
sudo apt-get install make
|
||||
sudo apt-get install bison
|
||||
sudo apt-get install flex
|
||||
sudo apt-get install gawk
|
||||
sudo apt-get install libgmp3-dev
|
||||
sudo apt-get install libmpfr-dev libmpfr-doc libmpfr4 libmpfr4-dbg
|
||||
sudo apt-get install mpc
|
||||
sudo apt-get install texinfo # optional
|
||||
sudo apt-get install libcloog-isl-dev # optional
|
||||
sudo apt-get install build-essential
|
||||
sudo apt-get install glibc-devel
|
||||
sudo apt-get -y install gcc-multilib libc6-i386
|
||||
|
||||
Serial Console
|
||||
==============
|
||||
|
||||
This TMS570ls3137 has a single SCI and one combined SCI/LIN interface.
|
||||
The SCI_RX and TX pins are connected to the FTDI chip which provides a
|
||||
virtual COM port for the usb kit.
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
I used the On Board Debugger.
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
Information Common to All Configurations
|
||||
----------------------------------------
|
||||
Each TMS570LS31X Usb Kit configuration is maintained in a sub-directory and
|
||||
can be selected as follow:
|
||||
|
||||
cd tools
|
||||
./configure.sh tms570ls31x-usb-kit/<subdir>
|
||||
cd -
|
||||
|
||||
Before building, make sure the PATH environment variable includes the
|
||||
correct path to the directory than holds your toolchain binaries.
|
||||
|
||||
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
|
||||
|
||||
The <subdir> that is provided above as an argument to the tools/configure.sh
|
||||
must be is one of the following.
|
||||
|
||||
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.
|
||||
|
||||
Configuration sub-directories
|
||||
-----------------------------
|
||||
|
||||
nsh:
|
||||
|
||||
Configures the NuttShell (nsh) located at examples/nsh.
|
290
configs/tms570ls31x-usb-kit/include/board.h
Normal file
290
configs/tms570ls31x-usb-kit/include/board.h
Normal file
@ -0,0 +1,290 @@
|
||||
/************************************************************************************
|
||||
* configs/tms570ls31x-usb-kit/include/board.h
|
||||
*
|
||||
* Copyright (C) 2017 Ivan Ucherdzhiev. All rights reserved.
|
||||
* Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef __CONFIGS_TMX570LS31X_USB_KIT_INCLUDE_BOARD_H
|
||||
#define __CONFIGS_TMX570LS31X_USB_KIT_INCLUDE_BOARD_H
|
||||
|
||||
/************************************************************************************
|
||||
* Included Files
|
||||
************************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
# include <stdint.h>
|
||||
# include <stdbool.h>
|
||||
#endif
|
||||
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
************************************************************************************/
|
||||
|
||||
/* Clocking *************************************************************************/
|
||||
/* The tms570ls31x-usb-kit has a 16 MHz external crystal. */
|
||||
|
||||
#define BOARD_FCLKIN_FREQUENCY 16000000 /* 16 MHz crystal frequency */
|
||||
|
||||
/* The maximum frequency for the TMS570LS3137 is 180 MHz.
|
||||
*
|
||||
* REFCLKDIV controls input clock divider:
|
||||
*
|
||||
* NR = REFCLKDIV+1
|
||||
* Fintclk = Fclkin / NR
|
||||
*
|
||||
* PLLMUL controls multipler on divided input clock (Fintclk):
|
||||
*
|
||||
* Non-modulated:
|
||||
* NF = (PLLMUL + 256) / 256
|
||||
* Modulated:
|
||||
* NF = (PLLMUL + MULMOD + 256) / 256
|
||||
*
|
||||
* Foutputclk = Fintclk x NF (150MHz - 550MHz)
|
||||
*
|
||||
* ODPLL controls internal PLL output divider:
|
||||
*
|
||||
* OD = ODPLL+1
|
||||
* Fpostodclk = Foutputclock / OD
|
||||
*
|
||||
* Final divisor, R, controls PLL output:
|
||||
*
|
||||
* R = PLLDIV + 1
|
||||
* Fpllclock = Fpostodclk / R
|
||||
*
|
||||
* Or:
|
||||
*
|
||||
* Fpllclock = = (Fclkin / NR) x NF / OD / R
|
||||
*
|
||||
* In this case, we have:
|
||||
*
|
||||
* Fclkin = 16,000,000
|
||||
* NR = 6 (REFCLKDIV=5)
|
||||
* NF = 120 (PLLMUL = 119 * 256)
|
||||
* OD = 1 (ODPLL = 0)
|
||||
* R = 2 (PLLDIV=1)
|
||||
*
|
||||
* Then:
|
||||
*
|
||||
* Fintclk = 16 MHz / 6 = 2.667 MHz
|
||||
* Foutputclock = 2.667 MHz * 135 = 360 MHz
|
||||
* Fpostodclock = 320 MHz / 2 = 180 MHz
|
||||
* Fpllclock = 160 MHz / 1 = 180 MHz
|
||||
*/
|
||||
|
||||
#define BOARD_PLL_NR 6 /* REFCLKDIV = 5 */
|
||||
#define BOARD_PLL_NF 135 /* PLLMUL = 119 * 256 */
|
||||
#define BOARD_PLL_OD 2 /* ODPLL = 1 */
|
||||
#define BOARD_PLL_R 1 /* PLLDIV = 1 */
|
||||
#define BOARD_PLL_FREQUENCY 180000000
|
||||
|
||||
/* Clock Sources / Dividers
|
||||
*
|
||||
* GCLK and HCLK are both driven by PLL1.
|
||||
* VCLK is driven by HCLK (optionally by HCLK/2)
|
||||
* RTICLK source is VCLK/2 (optionally from VCLK)
|
||||
*/
|
||||
|
||||
#define BOARD_VCLK_DIVIDER 2
|
||||
#define BOARD_VCLK2_DIVIDER 2
|
||||
#define BOARD_VCLK3_DIVIDER 2
|
||||
#define BOARD_RTICLK_DIVIDER 1
|
||||
#define BOARD_VCLK4_DIVIDER 1
|
||||
|
||||
/* Resulting frequencies:
|
||||
*
|
||||
* GCLK and HCLK are both driven by PLL1.
|
||||
* VCLK is driven by HCLK (optionally by HCLK/2)
|
||||
* RTICLK source is VCLK/2 (optionally from VCLK)
|
||||
*/
|
||||
|
||||
#define BOARD_GCLK_FREQUENCY BOARD_PLL_FREQUENCY
|
||||
#define BOARD_HCLK_FREQUENCY BOARD_PLL_FREQUENCY
|
||||
#define BOARD_VCLK_FREQUENCY BOARD_PLL_FREQUENCY/ BOARD_VCLK_DIVIDER
|
||||
#define BOARD_VCLK2_FREQUENCY BOARD_PLL_FREQUENCY / BOARD_VCLK2_DIVIDER
|
||||
#define BOARD_VCLK3_FREQUENCY BOARD_PLL_FREQUENCY / BOARD_VCLK3_DIVIDER
|
||||
#define BOARD_VCLKA1_FREQUENCY BOARD_VCLK1_FREQUENCY
|
||||
#define BOARD_VCLKA2_FREQUENCY BOARD_VCLK1_FREQUENCY
|
||||
#define BOARD_RTICLK_FREQUENCY (BOARD_PLL_FREQUENCY / (1 << BOARD_RTICLK_DIVIDER ))
|
||||
#define BOARD_VCLKA4_FREQUENCY BOARD_VCLK1_FREQUENCY / BOARD_VCLK4_DIVIDER
|
||||
|
||||
/* FLASH wait states */
|
||||
|
||||
#define BOARD_ASWAIT 1 /* No address setup wait states */
|
||||
#define BOARD_RWAIT 3 /* One read access wait state */
|
||||
#define BOARD_EWAIT 3 /* Four wait states for EEPROM access */
|
||||
|
||||
/* PIN Multiplexor Initializer ******************************************************/
|
||||
|
||||
/* You may specify one alternative from each set (the first is the default and,
|
||||
* hence, could probably be omitted):
|
||||
*
|
||||
* 1. {GIOA0, SPI3nCS3}
|
||||
* 2. {GIOA1, SPI3nCS2}
|
||||
* 3. {GIOA2, SPI3nCS1}
|
||||
* 4. {GIOA3, SPI2nCS3}
|
||||
* 5. {GIOA4, SPI2nCS2}
|
||||
* 6. {GIOA5, EXTCLKIN}
|
||||
* 7. {GIOA6, SPI2nCS1, N2HET31}
|
||||
* 8. {GIOA7, N2HET29}
|
||||
* 9. {MIBSPI1nCS2, N2HET20, N2HET19}
|
||||
* 10. {SPI3CLK, EQEPA}
|
||||
* 11. {SPI3nENA, EQEPB}
|
||||
* 12. {SPI3nCS0, EQEPI}}
|
||||
* 13. {MIBSPI1nCS3, N2HET26}
|
||||
* 14. {ADEVT, N2HET28}
|
||||
* 15. {MIBSPI1nENA, N2HET23, NHET30}
|
||||
* 16. {MIBSPI1nCS1, EQEPS, N2HET17}
|
||||
*/
|
||||
|
||||
#define BOARD_PINMUX_INITIALIZER \
|
||||
PINMUX_GIOA0_PIN, \
|
||||
PINMUX_GIOA1_PIN, \
|
||||
PINMUX_GIOA2_PIN, \
|
||||
PINMUX_GIOA3_PIN, \
|
||||
PINMUX_GIOA4_PIN, \
|
||||
PINMUX_GIOA5_PIN, \
|
||||
PINMUX_GIOA6_PIN, \
|
||||
PINMUX_GIOA7_PIN, \
|
||||
PINMUX_MIBSPI1NCS2_PIN, \
|
||||
PINMUX_SPI3CLK_PIN, \
|
||||
PINMUX_SPI3NENA_PIN, \
|
||||
PINMUX_SPI3NCS0_PIN, \
|
||||
PINMUX_MIBSPI1NCS3_PIN, \
|
||||
PINMUX_ADEVT_PIN, \
|
||||
PINMUX_MIBSPI1NENA_PIN, \
|
||||
PINMUX_MIBSPI1NCS1_PIN
|
||||
|
||||
/* LED definitions ******************************************************************/
|
||||
/* LEDs
|
||||
*
|
||||
* The launchpad has several LEDs:
|
||||
*
|
||||
* - LEd D1 (white) that connects to the USB +5V supply,
|
||||
* - LED D10 (red) that connects to the TMS570's NERROR pin,
|
||||
* - D5 (blue), D6 (blue), and D8 (blue) connect to the XDS100 FT2322,
|
||||
* - D7 (blue) connects to the XSD100 CPLD, and
|
||||
* - Two white, user LEDs labeled D12 that connects to the NHET08
|
||||
* pin and D11 that connects to GIOA2.
|
||||
*
|
||||
* NHET08 is one of 32 N2HET pins than can be available to the user if not used by
|
||||
* N2HET. This implementation, however, uses only the single LED driven by GIOA2.
|
||||
* That LED is tied to ground and illuminated with a high level output value.
|
||||
*/
|
||||
|
||||
/* LED index values for use with board_userled() */
|
||||
|
||||
#define BOARD_LED_D11 0
|
||||
#define BOARD_NLEDS 1
|
||||
|
||||
/* LED bits for use with board_userled_all() */
|
||||
|
||||
#define BOARD_LED_D11_BIT (1 << BOARD_LED_D11)
|
||||
|
||||
/* SPI1 Chip Select pin */
|
||||
|
||||
#define SPI1_SDCARD_CS PIN_HIGH | PIN_PULLUP | PIN_PUPD_DIS | PIN_OPEN_DRAIN_DIS | \
|
||||
PIN_DIR_OUTPUT | GIO_FUNC | SPI_PORT1 | SPI_GIO_CS1
|
||||
|
||||
/* Spi4 Chip Select pin */
|
||||
|
||||
#define SPI4_SDCARD_CS PIN_HIGH | PIN_PULLUP | PIN_PUPD_DIS | PIN_OPEN_DRAIN_DIS | \
|
||||
PIN_DIR_OUTPUT | GIO_FUNC | SPI_PORT4 | SPI_GIO_CS0
|
||||
|
||||
/* These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
|
||||
* defined. In that case, the usage by the board port is defined in
|
||||
* include/board.h and src/sam_autoleds.c. The LEDs are used to encode
|
||||
* OS-related events as follows:
|
||||
*
|
||||
* ---------------------- ---------------------------- ------
|
||||
* SYMBOL Meaning LED
|
||||
* ---------------------- ---------------------------- ------ */
|
||||
|
||||
#define LED_STARTED 1 /* NuttX has been started OFF */
|
||||
#define LED_HEAPALLOCATE 0 /* Heap has been allocated OFF */
|
||||
#define LED_IRQSENABLED 0 /* Interrupts enabled OFF */
|
||||
#define LED_STACKCREATED 1 /* Idle stack created ON */
|
||||
#define LED_INIRQ 2 /* In an interrupt N/C */
|
||||
#define LED_SIGNAL 2 /* In a signal handler N/C */
|
||||
#define LED_ASSERTION 2 /* An assertion failed N/C */
|
||||
#define LED_PANIC 3 /* The system has crashed FLASH */
|
||||
#undef LED_IDLE /* MCU is is sleep mode Not used */
|
||||
|
||||
/* Thus if the LED is statically on, NuttX has successfully booted and is,
|
||||
* apparently, running normally. If the LED is flashing at approximately
|
||||
* 2Hz, then a fatal error has been detected and the system has halted.
|
||||
*/
|
||||
|
||||
/* Button definitions ***************************************************************/
|
||||
/* Buttons
|
||||
*
|
||||
* The launchpad has three mechanical buttons. Two of these are reset buttons: One
|
||||
* button is labeled PORRST performs a power-on reset and one labeled RST performs
|
||||
* an MCU reset. Only one button is available for general software usage. That
|
||||
* button is labeled GIOA7 and is, obviously, sensed on GIOA7.
|
||||
*
|
||||
* GIOA7 is tied to ground, but will be pulled high if the GIOA7 button is
|
||||
* depressed.
|
||||
*/
|
||||
|
||||
#define BUTTON_GIOA7 0
|
||||
#define NUM_BUTTONS 1
|
||||
|
||||
#define BUTTON_GIOA7_BIT (1 << BUTTON_GIOA7)
|
||||
|
||||
/************************************************************************************
|
||||
* Public Data
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#undef EXTERN
|
||||
#if defined(__cplusplus)
|
||||
#define EXTERN extern "C"
|
||||
extern "C"
|
||||
{
|
||||
#else
|
||||
#define EXTERN extern
|
||||
#endif
|
||||
|
||||
/************************************************************************************
|
||||
* Public Function Prototypes
|
||||
************************************************************************************/
|
||||
|
||||
#undef EXTERN
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __CONFIGS_LAUNCHXL_TMS57004_INCLUDE_BOARD_H */
|
42
configs/tms570ls31x-usb-kit/include/nsh_romfsimg.h
Normal file
42
configs/tms570ls31x-usb-kit/include/nsh_romfsimg.h
Normal file
@ -0,0 +1,42 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2013 PX4 Development Team. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name PX4 nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/**
|
||||
* nsh_romfsetc.h
|
||||
*
|
||||
* This file is a stub for 'make export' purposes; the actual ROMFS
|
||||
* must be supplied by the library client.
|
||||
*/
|
||||
|
||||
extern unsigned char romfs_img[];
|
||||
extern unsigned int romfs_img_len;
|
50
configs/tms570ls31x-usb-kit/nsh/defconfig
Normal file
50
configs/tms570ls31x-usb-kit/nsh/defconfig
Normal file
@ -0,0 +1,50 @@
|
||||
# CONFIG_ARCH_RAMFUNCS is not set
|
||||
CONFIG_ARCH_BOARD_TMS570LS31X_USB_KIT=y
|
||||
CONFIG_ARCH_BOARD="tms570ls31x-usb-kit"
|
||||
CONFIG_ARCH_BUTTONS=y
|
||||
CONFIG_ARCH_CHIP_TMS570=y
|
||||
CONFIG_ARCH_CHIP_TMS570LS3137ZWT=y
|
||||
CONFIG_ARCH_INTERRUPTSTACK=2048
|
||||
CONFIG_ARCH_IRQBUTTONS=y
|
||||
CONFIG_ARCH_LOWVECTORS=y
|
||||
CONFIG_ARCH_STACKDUMP=y
|
||||
CONFIG_ARCH="arm"
|
||||
CONFIG_BUILTIN=y
|
||||
CONFIG_DISABLE_POLL=y
|
||||
CONFIG_ELF=y
|
||||
CONFIG_EXAMPLES_NSH=y
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FS_FAT=y
|
||||
CONFIG_FS_PROCFS=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_MAX_TASKS=16
|
||||
CONFIG_MAX_WDOGPARMS=2
|
||||
CONFIG_NFILE_DESCRIPTORS=8
|
||||
CONFIG_NFILE_STREAMS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_BUILTIN_APPS=y
|
||||
CONFIG_NSH_FILEIOSIZE=512
|
||||
CONFIG_NSH_LINELEN=64
|
||||
CONFIG_NSH_READLINE=y
|
||||
CONFIG_PREALLOC_MQ_MSGS=4
|
||||
CONFIG_PREALLOC_TIMERS=4
|
||||
CONFIG_RAM_SIZE=262143
|
||||
CONFIG_RAM_START=0x08000000
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_RR_INTERVAL=200
|
||||
CONFIG_SCHED_HPWORK=y
|
||||
CONFIG_SCHED_WAITPID=y
|
||||
CONFIG_SCI1_2STOP=1
|
||||
CONFIG_SCI1_BAUD=9600
|
||||
CONFIG_SCI1_SERIAL_CONSOLE=y
|
||||
CONFIG_SDCLONE_DISABLE=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_START_DAY=10
|
||||
CONFIG_START_MONTH=3
|
||||
CONFIG_START_YEAR=2014
|
||||
CONFIG_SYSTEM_RAMTEST=y
|
||||
CONFIG_TMS570_GIO_IRQ=y
|
||||
CONFIG_TMS570_SCI1=y
|
||||
CONFIG_USER_ENTRYPOINT="nsh_main"
|
137
configs/tms570ls31x-usb-kit/scripts/Make.defs
Normal file
137
configs/tms570ls31x-usb-kit/scripts/Make.defs
Normal file
@ -0,0 +1,137 @@
|
||||
############################################################################
|
||||
# configs/tms570ls31x-usb-kit/scripts/Make.defs
|
||||
#
|
||||
# Copyright (C) 2017 Ivan Ucherdzhiev. All rights reserved.
|
||||
# Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
include ${TOPDIR}/.config
|
||||
include ${TOPDIR}/tools/Config.mk
|
||||
include ${TOPDIR}$(DELIM)arch$(DELIM)arm$(DELIM)src$(DELIM)armv7-r$(DELIM)Toolchain.defs
|
||||
|
||||
LDSCRIPT = flash-sram.ld
|
||||
|
||||
ifeq ($(WINTOOL),y)
|
||||
# Windows-native toolchains
|
||||
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}"
|
||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}" -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include$(DELIM)cxx}"
|
||||
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)$(LDSCRIPT)}"
|
||||
else
|
||||
# Linux/Cygwin-native toolchain
|
||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include
|
||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include -isystem $(TOPDIR)$(DELIM)include$(DELIM)cxx
|
||||
ARCHSCRIPT = -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
|
||||
endif
|
||||
|
||||
CC = $(CROSSDEV)gcc
|
||||
CXX = $(CROSSDEV)g++
|
||||
CPP = $(CROSSDEV)gcc -E
|
||||
LD = $(CROSSDEV)ld
|
||||
AR = $(ARCROSSDEV)ar rcs
|
||||
NM = $(ARCROSSDEV)nm
|
||||
OBJCOPY = $(CROSSDEV)objcopy
|
||||
OBJDUMP = $(CROSSDEV)objdump
|
||||
|
||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
ARCHOPTIMIZATION = -g
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_DEBUG_NOOPT),y)
|
||||
ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
|
||||
endif
|
||||
|
||||
ARCHCPUFLAGS = -mcpu=cortex-r4f -march=armv7-r -mbig-endian -mfpu=vfpv3-d16 -mfloat-abi=hard
|
||||
ARCHCFLAGS = -fno-builtin
|
||||
ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fcheck-new -fno-rtti
|
||||
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
|
||||
ARCHWARNINGSXX = -Wall -Wshadow -Wundef
|
||||
ARCHDEFINES =
|
||||
ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
|
||||
|
||||
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
|
||||
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
|
||||
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
||||
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
|
||||
|
||||
# NXFLAT module definitions
|
||||
|
||||
NXFLATLDFLAGS1 = -r -d -warn-common
|
||||
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)$(DELIM)binfmt$(DELIM)libnxflat$(DELIM)gnu-nxflat-pcrel.ld -no-check-sections
|
||||
LDNXFLATFLAGS = -e main -s 2048
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
CELFFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
CXXELFFLAGS = $(CXXFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
ifeq ($(WINTOOL),y)
|
||||
LDELFFLAGS += -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/gnu-elf.ld}"
|
||||
else
|
||||
LDELFFLAGS += -T $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/gnu-elf.ld
|
||||
endif
|
||||
|
||||
ASMEXT = .S
|
||||
OBJEXT = .o
|
||||
LIBEXT = .a
|
||||
EXEEXT =
|
||||
|
||||
ifneq ($(CROSSDEV),arm-nuttx-elf-)
|
||||
ifneq ($(CROSSDEV),armeb-nuttx-elf-)
|
||||
LDFLAGS += -nostartfiles -nodefaultlibs
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
LDFLAGS += -g
|
||||
endif
|
||||
|
||||
HOSTCC = gcc
|
||||
HOSTINCLUDES = -I.
|
||||
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
|
||||
HOSTLDFLAGS =
|
||||
ifeq ($(CONFIG_HOST_WINDOWS),y)
|
||||
HOSTEXEEXT = .exe
|
||||
else
|
||||
HOSTEXEEXT =
|
||||
endif
|
||||
|
||||
ifeq ($(WINTOOL),y)
|
||||
# Windows-native host tools
|
||||
DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)copydir.sh
|
||||
DIRUNLINK = $(TOPDIR)$(DELIM)tools$(DELIM)unlink.sh
|
||||
MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mkwindeps.sh
|
||||
else
|
||||
# Linux/Cygwin-native host tools
|
||||
MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mkdeps$(HOSTEXEEXT)
|
||||
endif
|
125
configs/tms570ls31x-usb-kit/scripts/flash-sram.ld
Normal file
125
configs/tms570ls31x-usb-kit/scripts/flash-sram.ld
Normal file
@ -0,0 +1,125 @@
|
||||
/****************************************************************************
|
||||
* configs/tms570ls31x-usb-kit/scripts/flash-sram.ld
|
||||
*
|
||||
* Copyright (C) 2017 Ivan Ucherdzhiev. All rights reserved.
|
||||
* Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* The TMS570LS3137ZWT has 3MB of FLASH beginning at address 0x0000:0000 and
|
||||
* 256Kb of SRAM beginning at 0x0800:0000
|
||||
*/
|
||||
|
||||
/* Specify the memory areas */
|
||||
|
||||
MEMORY
|
||||
{
|
||||
flash (rx) : ORIGIN = 0x00000000, LENGTH = (0x0017FFE0 + 0x00180000 + 0x00000020 )
|
||||
sram (rwx) : ORIGIN = 0x08000000, LENGTH = (0x0003EB00 + 0x00001500)
|
||||
}
|
||||
|
||||
OUTPUT_ARCH(arm)
|
||||
OUTPUT_FORMAT(elf32-bigarm)
|
||||
EXTERN(_vectors)
|
||||
ENTRY(_stext)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.text :
|
||||
{
|
||||
_stext = ABSOLUTE(.);
|
||||
*(.vectors)
|
||||
*(.text .text.*)
|
||||
*(.fixup)
|
||||
*(.gnu.warning)
|
||||
*(.rodata .rodata.*)
|
||||
*(.gnu.linkonce.t.*)
|
||||
*(.glue_7)
|
||||
*(.glue_7t)
|
||||
*(.got)
|
||||
*(.gcc_except_table)
|
||||
*(.gnu.linkonce.r.*)
|
||||
_etext = ABSOLUTE(.);
|
||||
} > flash
|
||||
|
||||
.init_section :
|
||||
{
|
||||
_sinit = ABSOLUTE(.);
|
||||
*(.init_array .init_array.*)
|
||||
_einit = ABSOLUTE(.);
|
||||
} > flash
|
||||
|
||||
.ARM.extab :
|
||||
{
|
||||
*(.ARM.extab*)
|
||||
} > flash
|
||||
|
||||
__exidx_start = ABSOLUTE(.);
|
||||
.ARM.exidx :
|
||||
{
|
||||
*(.ARM.exidx*)
|
||||
} > flash
|
||||
__exidx_end = ABSOLUTE(.);
|
||||
|
||||
_eronly = ABSOLUTE(.);
|
||||
|
||||
.data :
|
||||
{
|
||||
_sdata = ABSOLUTE(.);
|
||||
*(.data .data.*)
|
||||
*(.gnu.linkonce.d.*)
|
||||
CONSTRUCTORS
|
||||
_edata = ABSOLUTE(.);
|
||||
} > sram AT > flash
|
||||
|
||||
.bss :
|
||||
{
|
||||
_sbss = ABSOLUTE(.);
|
||||
*(.bss .bss.*)
|
||||
*(.gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
_ebss = ABSOLUTE(.);
|
||||
} > sram
|
||||
|
||||
/* Stabs debugging sections. */
|
||||
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
}
|
59
configs/tms570ls31x-usb-kit/src/Makefile
Normal file
59
configs/tms570ls31x-usb-kit/src/Makefile
Normal file
@ -0,0 +1,59 @@
|
||||
############################################################################
|
||||
# configs/launchxl-tms57004/src/Makefile
|
||||
#
|
||||
# Copyright (C) 2015 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
|
||||
ASRCS =
|
||||
CSRCS = tms570_initialize.c tms570_bringup.c tms570_spi.c
|
||||
|
||||
ifeq ($(CONFIG_LIB_BOARDCTL),y)
|
||||
CSRCS += tms570_appinit.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_LEDS),y)
|
||||
CSRCS += tms570_autoleds.c
|
||||
else
|
||||
CSRCS += tms570_userleds.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_BUTTONS),y)
|
||||
CSRCS += tms570_buttons.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_MMCSD),y)
|
||||
CSRCS += tms570_sdmmc.c
|
||||
endif
|
||||
|
||||
include $(TOPDIR)/configs/Board.mk
|
85
configs/tms570ls31x-usb-kit/src/tms570_appinit.c
Normal file
85
configs/tms570ls31x-usb-kit/src/tms570_appinit.c
Normal file
@ -0,0 +1,85 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl_tms57004/src/sim_appinit.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <nuttx/board.h>
|
||||
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_app_initialize
|
||||
*
|
||||
* Description:
|
||||
* Perform architecture specific initialization
|
||||
*
|
||||
* Input Parameters:
|
||||
* arg - The boardctl() argument is passed to the board_app_initialize()
|
||||
* implementation without modification. The argument has no
|
||||
* meaning to NuttX; the meaning of the argument is a contract
|
||||
* between the board-specific initialization logic and the
|
||||
* matching application logic. The value cold be such things as a
|
||||
* mode enumeration value, a set of DIP switch switch settings, a
|
||||
* pointer to configuration data read from a file or serial FLASH,
|
||||
* or whatever you would like to do with it. Every implementation
|
||||
* should accept zero/NULL as a default configuration.
|
||||
*
|
||||
* Returned Value:
|
||||
* Zero (OK) is returned on success; a negated errno value is returned on
|
||||
* any failure to indicate the nature of the failure.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_LIB_BOARDCTL
|
||||
int board_app_initialize(uintptr_t arg)
|
||||
{
|
||||
#ifndef CONFIG_BOARD_INITIALIZE
|
||||
/* Perform application level board initialization (if that was not already
|
||||
* done in board_initialize().
|
||||
*/
|
||||
|
||||
tms570_bringup();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_LIB_BOARDCTL */
|
127
configs/tms570ls31x-usb-kit/src/tms570_autoleds.c
Normal file
127
configs/tms570ls31x-usb-kit/src/tms570_autoleds.c
Normal file
@ -0,0 +1,127 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-tms57004/include/tms570_autoleds.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* LEDs
|
||||
*
|
||||
* The launchpad has several LEDs:
|
||||
*
|
||||
* - LEd D1 (white) that connects to the USB +5V supply,
|
||||
* - LED D10 (red) that connects to the TMS570's NERROR pin,
|
||||
* - D5 (blue), D6 (blue), and D8 (blue) connect to the XDS100 FT2322,
|
||||
* - D7 (blue) connects to the XSD100 CPLD, and
|
||||
* - Two white, user LEDs labeled D12 that connects to the NHET08
|
||||
* pin and D11 that connects to GIOA2.
|
||||
*
|
||||
* NHET08 is one of 32 N2HET pins than can be available to the user if
|
||||
* not used by N2HET. This implementation, however, uses only the single
|
||||
* LED driven by GIOA2. That LED is tied to ground and illuminated
|
||||
* with a high level output value.
|
||||
*
|
||||
* This LED is not used by the board port unless CONFIG_ARCH_LEDS is
|
||||
* defined. In that case, the usage by the board port is defined in
|
||||
* include/board.h and src/tms570_autoleds.c. The LED is used to encode
|
||||
* OS-related events as follows:
|
||||
*
|
||||
* ------------------- ----------------------- ------
|
||||
* SYMBOL Meaning LED
|
||||
* ------------------- ----------------------- ------
|
||||
* LED_STARTED NuttX has been started OFF
|
||||
* LED_HEAPALLOCATE Heap has been allocated OFF
|
||||
* LED_IRQSENABLED Interrupts enabled OFF
|
||||
* LED_STACKCREATED Idle stack created ON
|
||||
* LED_INIRQ In an interrupt N/C
|
||||
* LED_SIGNAL In a signal handler N/C
|
||||
* LED_ASSERTION An assertion failed N/C
|
||||
* LED_PANIC The system has crashed FLASH
|
||||
*
|
||||
* Thus if the LED is statically on, NuttX has successfully booted and is,
|
||||
* apparently, running normally. If the LED is flashing at approximately
|
||||
* 2Hz, then a fatal error has been detected and the system has halted.
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "tms570_gio.h"
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_initialize
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_initialize(void)
|
||||
{
|
||||
/* Configure LED GIOs for output */
|
||||
|
||||
tms570_configgio(GIO_LED_D11);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_on
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_on(int led)
|
||||
{
|
||||
if (led == 1 || led == 3)
|
||||
{
|
||||
tms570_giowrite(GIO_LED_D11, true); /* High illuminates */
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_off
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_off(int led)
|
||||
{
|
||||
if (led == 3)
|
||||
{
|
||||
tms570_giowrite(GIO_LED_D11, false); /* Low extinguishes */
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* CONFIG_ARCH_LEDS */
|
92
configs/tms570ls31x-usb-kit/src/tms570_bringup.c
Normal file
92
configs/tms570ls31x-usb-kit/src/tms570_bringup.c
Normal file
@ -0,0 +1,92 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-tms57004/src/tms570_bringup.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/mount.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <syslog.h>
|
||||
#include <debug.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Checking needed by MMC/SDCard */
|
||||
|
||||
#ifdef CONFIG_NSH_MMCSDMINOR
|
||||
# define MMCSD_MINOR CONFIG_NSH_MMCSDMINOR
|
||||
#else
|
||||
# define MMCSD_MINOR 0
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: tms570_bringup
|
||||
*
|
||||
* Description:
|
||||
* Bring up simulated board features
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int tms570_bringup(void)
|
||||
{
|
||||
int ret = OK;
|
||||
|
||||
#ifdef CONFIG_MMCSD
|
||||
tms570_spidev_initialize();
|
||||
ret = tms570_mmcsd_initialize(MMCSD_MINOR);
|
||||
if (ret < 0)
|
||||
{
|
||||
serr( "Failed to initialize SD slot %d: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
UNUSED(ret);
|
||||
return OK;
|
||||
}
|
197
configs/tms570ls31x-usb-kit/src/tms570_buttons.c
Normal file
197
configs/tms570ls31x-usb-kit/src/tms570_buttons.c
Normal file
@ -0,0 +1,197 @@
|
||||
/****************************************************************************
|
||||
* configs/sam4e-ek/src/tms570_buttons.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/board.h>
|
||||
#include <nuttx/irq.h>
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_arch.h"
|
||||
#include "tms570_gio.h"
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
|
||||
#ifdef CONFIG_ARCH_BUTTONS
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#undef HAVE_IRQBUTTONS
|
||||
#if defined(CONFIG_ARCH_IRQBUTTONS) && defined(CONFIG_TMS570_GIO_IRQ)
|
||||
# define HAVE_IRQBUTTONS 1
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef HAVE_IRQBUTTONS
|
||||
static xcpt_t g_irq_button;
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_button_irqx
|
||||
*
|
||||
* Description:
|
||||
* This function implements the core of the board_button_irq() logic.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef HAVE_IRQBUTTONS
|
||||
static int board_button_irqx(gio_pinset_t pinset, int irq,
|
||||
xcpt_t irqhandler, xcpt_t *store, void *arg)
|
||||
{
|
||||
irqstate_t flags;
|
||||
|
||||
/* Disable interrupts until we are done. This guarantees that the following
|
||||
* operations are atomic.
|
||||
*/
|
||||
|
||||
flags = enter_critical_section();
|
||||
|
||||
/* Get the old button interrupt handler and save the new one */
|
||||
|
||||
*store = irqhandler;
|
||||
|
||||
/* Are we attaching or detaching? */
|
||||
|
||||
if (irqhandler != NULL)
|
||||
{
|
||||
/* Configure the interrupt */
|
||||
|
||||
tms570_gioirq(pinset);
|
||||
(void)irq_attach(irq, irqhandler, arg);
|
||||
tms570_gioirqenable(irq);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Detach and disable the interrupt */
|
||||
|
||||
(void)irq_detach(irq);
|
||||
tms570_gioirqdisable(irq);
|
||||
}
|
||||
|
||||
leave_critical_section(flags);
|
||||
|
||||
/* Return the old button handler (so that it can be restored) */
|
||||
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_button_initialize
|
||||
*
|
||||
* Description:
|
||||
* board_button_initialize() must be called to initialize button resources.
|
||||
* After that, board_buttons() may be called to collect the current state
|
||||
* of all buttons or board_button_irq() may be called to register button
|
||||
* interrupt handlers.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void board_button_initialize(void)
|
||||
{
|
||||
/* Configure button GIOs */
|
||||
|
||||
(void)tms570_configgio(GIO_BUTTON);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_buttons
|
||||
*
|
||||
* Description:
|
||||
* After board_button_initialize() has been called, board_buttons() may be
|
||||
* called to collect the state of all buttons. board_buttons() returns an
|
||||
* 32-bit bit set with each bit associated with a button. See the BUTTON*
|
||||
* definitions above for the meaning of each bit in the returned value.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
uint32_t board_buttons(void)
|
||||
{
|
||||
return tms570_gioread(GIO_BUTTON) ? BUTTON_GIOA7_BIT : 0;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_button_irq
|
||||
*
|
||||
* Description:
|
||||
* This function may be called to register an interrupt handler that will
|
||||
* be called when a button is depressed or released. The ID value is one
|
||||
* of the BUTTON* definitions provided above.
|
||||
*
|
||||
* Configuration Notes:
|
||||
* Configuration CONFIG_AVR32_GIOIRQ must be selected to enable the
|
||||
* overall GIO IRQ feature and CONFIG_AVR32_GIOIRQSETA and/or
|
||||
* CONFIG_AVR32_GIOIRQSETB must be enabled to select GIOs to support
|
||||
* interrupts on. For button support, bits 2 and 3 must be set in
|
||||
* CONFIG_AVR32_GIOIRQSETB (PB2 and PB3).
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||
{
|
||||
#ifdef HAVE_IRQBUTTONS
|
||||
if (id == BUTTON_GIOA7)
|
||||
{
|
||||
return board_button_irqx(GIO_BUTTON, IRQ_BUTTON, irqhandler,
|
||||
&g_irq_button, arg);
|
||||
}
|
||||
#endif
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_ARCH_BUTTONS */
|
128
configs/tms570ls31x-usb-kit/src/tms570_initialize.c
Normal file
128
configs/tms570ls31x-usb-kit/src/tms570_initialize.c
Normal file
@ -0,0 +1,128 @@
|
||||
/****************************************************************************
|
||||
* config/launchxl-tms57004/src/moxart_boot.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: tms570_boardinitialize
|
||||
*
|
||||
* Description:
|
||||
* All TMS570 architectures must provide the following entry point. This
|
||||
* function is called near the beginning of _start. This function is
|
||||
* called after clocking has been configured but before caches have been
|
||||
* enabled and before any devices have been initialized. .data/.bss
|
||||
* memory may or may not have been initialized (see the "special
|
||||
* precautions" below).
|
||||
*
|
||||
* This function must perform low level initialization including
|
||||
*
|
||||
* - Initialization of board-specific memory resources (e.g., SDRAM)
|
||||
* - Configuration of board specific resources (GPIOs, LEDs, etc).
|
||||
* - Setup of the console UART. This UART done early so that the serial
|
||||
* console is available for debugging very early in the boot sequence.
|
||||
*
|
||||
* Special precautions must be taken if .data/.bss lie in SRAM. in that
|
||||
* case, the boot logic cannot initialize .data or .bss. The function
|
||||
* must then:
|
||||
*
|
||||
* - Take precautions to assume that logic does not access any global
|
||||
* data that might lie in SDRAM.
|
||||
* - Call the function arm_data_initialize() as soon as SDRAM has been
|
||||
* properly configured for use.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void tms570_board_initialize(void)
|
||||
{
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
board_autoled_initialize();
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
putreg32(0x01000001, 0xfff7b800 + 0);
|
||||
|
||||
/* - PULL functinality is enabled */
|
||||
|
||||
putreg32(0x00000000, 0xfff7b800 + 0x64);
|
||||
|
||||
/* - This if statement is a placeholder for ArgoBoard/USBStick check */
|
||||
/* - Configure NHET pins as output */
|
||||
|
||||
putreg32(0xaa178035, 0xfff7b800 + 0x004c);
|
||||
/* - Turn all LEDs off */
|
||||
|
||||
putreg32(0x08110034, 0xfff7b800 + 0x0054);
|
||||
|
||||
/* - Set only NHET[25,0] */
|
||||
|
||||
putreg32(0x0a110035, 0xfff7b800 + 0x0054);
|
||||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_initialize
|
||||
*
|
||||
* Description:
|
||||
* If CONFIG_BOARD_INITIALIZE is selected, then an additional
|
||||
* initialization call will be performed in the boot-up sequence to a
|
||||
* function called board_initialize(). board_initialize() will be
|
||||
* called immediately after up_initialize() is called and just before the
|
||||
* initial application is started. This additional initialization phase
|
||||
* may be used, for example, to initialize board-specific device drivers.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_BOARD_INITIALIZE
|
||||
void board_initialize(void)
|
||||
{
|
||||
/* Perform application level board initialization */
|
||||
|
||||
tms570_bringup();
|
||||
}
|
||||
#endif
|
128
configs/tms570ls31x-usb-kit/src/tms570_sdmmc.c
Normal file
128
configs/tms570ls31x-usb-kit/src/tms570_sdmmc.c
Normal file
@ -0,0 +1,128 @@
|
||||
/*****************************************************************************
|
||||
* configs/tms570f103-minimum/src/tms570_mmcsd.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Alan Carvalho de Assis <acassis@gmail.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <debug.h>
|
||||
#include <nuttx/config.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
#include <nuttx/spi/spi.h>
|
||||
#include <pthread.h>
|
||||
#include <sched.h>
|
||||
#include <semaphore.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
#include "tms570_spi.h"
|
||||
|
||||
/*****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CONFIG_TMS570_SPI1
|
||||
# error "SD driver requires CONFIG_STM32_SPI1 to be enabled"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DISABLE_MOUNTPOINT
|
||||
# error "SD driver requires CONFIG_DISABLE_MOUNTPOINT to be disabled"
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* Private Definitions
|
||||
****************************************************************************/
|
||||
|
||||
static const int SD_SPI_PORT = CONFIG_NSH_MMCSDSPIPORTNO; /* SD is connected to SPI1 port */
|
||||
static const int SD_SLOT_NO = 0; /* There is only one SD slot */
|
||||
|
||||
/*****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/* NOTE: We are using a SDCard adapter/module without Card Detect pin!
|
||||
* Then we don't need to Card Detect callback here.
|
||||
*/
|
||||
|
||||
/*****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
* Name: tms570_spi1register
|
||||
*
|
||||
* Description:
|
||||
* Registers media change callback
|
||||
****************************************************************************/
|
||||
|
||||
int tms570_spi1register(struct spi_dev_s *dev, spi_mediachange_t callback,
|
||||
void *arg)
|
||||
{
|
||||
spiinfo("INFO: Registering spi1 device\n");
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* Name: tms570_mmcsd_initialize
|
||||
*
|
||||
* Description:
|
||||
* Initialize SPI-based SD card and card detect thread.
|
||||
****************************************************************************/
|
||||
|
||||
int tms570_mmcsd_initialize(int minor)
|
||||
{
|
||||
struct spi_dev_s *spi;
|
||||
int rv;
|
||||
|
||||
mcinfo("INFO: Initializing mmcsd card\n");
|
||||
|
||||
spi = tms570_spibus_initialize(SD_SPI_PORT);
|
||||
if (spi == NULL)
|
||||
{
|
||||
mcerr("ERROR: Failed to initialize SPI port %d\n", SD_SPI_PORT);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
rv = mmcsd_spislotinitialize(minor, SD_SLOT_NO, spi);
|
||||
if (rv < 0)
|
||||
{
|
||||
mcerr("ERROR: Failed to bind SPI port %d to SD slot %d\n",
|
||||
SD_SPI_PORT, SD_SLOT_NO);
|
||||
return rv;
|
||||
}
|
||||
|
||||
spiinfo("INFO: mmcsd card has been initialized successfully\n");
|
||||
return OK;
|
||||
}
|
160
configs/tms570ls31x-usb-kit/src/tms570_spi.c
Normal file
160
configs/tms570ls31x-usb-kit/src/tms570_spi.c
Normal file
@ -0,0 +1,160 @@
|
||||
/************************************************************************************
|
||||
* configs/tms570f103-minimum/src/tms570_spi.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
* Laurent Latil <laurent@latil.nom.fr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Included Files
|
||||
************************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/spi/spi.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_arch.h"
|
||||
#include "chip.h"
|
||||
#include "tms570_spi.h"
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
|
||||
#if defined(CONFIG_TMS570_SPI1) || defined(CONFIG_TMS570_SPI4)
|
||||
|
||||
/************************************************************************************
|
||||
* Public Functions
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Name: tms570_spidev_initialize
|
||||
*
|
||||
* Description:
|
||||
* Called to configure SPI chip select GPIO pins for the HY-MiniTMS570 board.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
void tms570_spidev_initialize(void)
|
||||
{
|
||||
#ifdef CONFIG_MMCSD_SPI
|
||||
#if defined (CONFIG_TMS570_SPI1)
|
||||
tms570_spi_gio_config(SPI1_SDCARD_CS); /* SD/MMC Card chip select */
|
||||
#endif
|
||||
#if defined (CONFIG_TMS570_SPI4)
|
||||
tms570_spi_gio_config(SPI4_SDCARD_CS);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: tms570_spi1/2select and tms570_spi1/2status
|
||||
*
|
||||
* Description:
|
||||
* The external functions, tms570_spi1/2/3select and tms570_spi1/2/3status must be
|
||||
* provided by board-specific logic. They are implementations of the select
|
||||
* and status methods of the SPI interface defined by struct spi_ops_s (see
|
||||
* include/nuttx/spi/spi.h). All other methods (including tms570_spibus_initialize())
|
||||
* are provided by common TMS570 logic. To use this common SPI logic on your
|
||||
* board:
|
||||
*
|
||||
* 1. Provide logic in tms570_boardinitialize() to configure SPI chip select
|
||||
* pins.
|
||||
* 2. Provide tms570_spi1/2/3select() and tms570_spi1/2/3status() functions in your
|
||||
* board-specific logic. These functions will perform chip selection and
|
||||
* status operations using GPIOs in the way your board is configured.
|
||||
* 3. Add a calls to tms570_spibus_initialize() in your low level application
|
||||
* initialization logic
|
||||
* 4. The handle returned by tms570_spibus_initialize() may then be used to bind the
|
||||
* SPI driver to higher level logic (e.g., calling
|
||||
* mmcsd_spislotinitialize(), for example, will bind the SPI driver to
|
||||
* the SPI MMC/SD driver).
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TMS570_SPI1
|
||||
void tms570_spi1select(FAR struct spi_dev_s *dev, uint32_t devid,
|
||||
bool selected)
|
||||
{
|
||||
#ifdef CONFIG_MMCSD_SPI
|
||||
if (devid == SPIDEV_MMCSD(0))
|
||||
{
|
||||
tms570_spi_giowrite(SPI1_SDCARD_CS, !selected);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t tms570_spi1status(FAR struct spi_dev_s *dev, uint32_t devid)
|
||||
{
|
||||
uint8_t status = 0;
|
||||
|
||||
#ifdef CONFIG_MMCSD_SPI
|
||||
if (devid == SPIDEV_MMCSD(0))
|
||||
{
|
||||
status |= SPI_STATUS_PRESENT;
|
||||
}
|
||||
#endif
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_TMS570_SPI4
|
||||
void tms570_spi4select(FAR struct spi_dev_s *dev, uint32_t devid,
|
||||
bool selected)
|
||||
{
|
||||
#ifdef CONFIG_MMCSD_SPI
|
||||
if (devid == SPIDEV_MMCSD(0))
|
||||
{
|
||||
tms570_spi_giowrite(SPI4_SDCARD_CS, !selected);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t tms570_spi4status(FAR struct spi_dev_s *dev, uint32_t devid)
|
||||
{
|
||||
uint8_t status = 0;
|
||||
|
||||
#ifdef CONFIG_MMCSD_SPI
|
||||
if (devid == SPIDEV_MMCSD(0))
|
||||
{
|
||||
status |= SPI_STATUS_PRESENT;
|
||||
}
|
||||
#endif
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_TMS570_SPI1 || CONFIG_TMS570_SPI2 */
|
104
configs/tms570ls31x-usb-kit/src/tms570_userleds.c
Normal file
104
configs/tms570ls31x-usb-kit/src/tms570_userleds.c
Normal file
@ -0,0 +1,104 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-tms57004/src/tms570_userleds.c
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* LEDs
|
||||
*
|
||||
* The launchpad has several LEDs:
|
||||
*
|
||||
* - LEd D1 (white) that connects to the USB +5V supply,
|
||||
* - LED D10 (red) that connects to the TMS570's NERROR pin,
|
||||
* - D5 (blue), D6 (blue), and D8 (blue) connect to the XDS100 FT2322,
|
||||
* - D7 (blue) connects to the XSD100 CPLD, and
|
||||
* - Two white, user LEDs labeled D12 that connects to the NHET08
|
||||
* pin and D11 that connects to GIOA2.
|
||||
*
|
||||
* NHET08 is one of 32 N2HET pins than can be available to the user if
|
||||
* not used by N2HET. This implementation, however, uses only the single
|
||||
* LED driven by GIOA2. That LED is tied to ground and illuminated
|
||||
* with a high level output value.
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "tms570_gio.h"
|
||||
#include "tms570ls31x_usb_kit.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_userled_initialize
|
||||
****************************************************************************/
|
||||
|
||||
void board_userled_initialize(void)
|
||||
{
|
||||
/* Configure LED PIOs for output */
|
||||
|
||||
tms570_configgio(GIO_LED_D11);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_userled
|
||||
****************************************************************************/
|
||||
|
||||
void board_userled(int led, bool ledon)
|
||||
{
|
||||
if (led == BOARD_LED_D11)
|
||||
{
|
||||
tms570_giowrite(GIO_LED_D11, !ledon); /* Low illuminates */
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_userled_all
|
||||
****************************************************************************/
|
||||
|
||||
void board_userled_all(uint8_t ledset)
|
||||
{
|
||||
/* Low illuminates */
|
||||
|
||||
tms570_giowrite(GIO_LED_D11, (ledset & BOARD_LED_D11_BIT) == 0));
|
||||
}
|
110
configs/tms570ls31x-usb-kit/src/tms570ls31x_usb_kit.h
Normal file
110
configs/tms570ls31x-usb-kit/src/tms570ls31x_usb_kit.h
Normal file
@ -0,0 +1,110 @@
|
||||
/****************************************************************************
|
||||
* config/tms570ls31x-usb-kit/src/tms570ls31x_usb_kit.h
|
||||
*
|
||||
* Copyright (C) 2018 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __CONFIGS_LAUNCHXL_TMS57004_SRC_LAUNCHXL_TMS57004_H
|
||||
#define __CONFIGS_LAUNCHXL_TMS57004_SRC_LAUNCHXL_TMS57004_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* LEDs
|
||||
*
|
||||
* The launchpad has several LEDs:
|
||||
*
|
||||
* - LEd D1 (white) that connects to the USB +5V supply,
|
||||
* - LED D10 (red) that connects to the TMS570's NERROR pin,
|
||||
* - D5 (blue), D6 (blue), and D8 (blue) connect to the XDS100 FT2322,
|
||||
* - D7 (blue) connects to the XSD100 CPLD, and
|
||||
* - Two white, user LEDs labeled D12 that connects to the NHET08
|
||||
* pin and D11 that connects to GIOA2.
|
||||
*
|
||||
* NHET08 is one of 32 N2HET pins than can be available to the user if not
|
||||
* used by N2HET. This implementation, however, uses only the single LED
|
||||
* driven by GIOA2. That LED is tied to ground and illuminated with a high
|
||||
* level output value.
|
||||
*/
|
||||
|
||||
#define GIO_LED_D11 (GIO_OUTPUT | GIO_CFG_DEFAULT | GIO_OUTPUT_CLEAR | \
|
||||
GIO_PORT_GIOA | GIO_PIN1)
|
||||
|
||||
/* Buttons
|
||||
*
|
||||
* The launchpad has three mechanical buttons. Two of these are reset
|
||||
* buttons: One button is labeled PORRST performs a power-on reset and one
|
||||
* labeled RST performs an MCU reset. Only one button is available for
|
||||
* general software usage. That button is labeled GIOA7 and is, obviously,
|
||||
* sensed on GIOA7.
|
||||
*
|
||||
* GIOA7 is tied to ground, but will be pulled high if the GIOA7 button is
|
||||
* depressed.
|
||||
*/
|
||||
|
||||
#define GIO_BUTTON (GIO_INPUT | GIO_CFG_PULLUP | GIO_INT_BOTHEDGES | \
|
||||
GIO_PORT_GIOA | GIO_PIN7)
|
||||
#define IRQ_BUTTON TMS570_IRQ_GIOA7
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: tms570_bringup
|
||||
*
|
||||
* Description:
|
||||
* Bring up simulated board features
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int tms570_bringup(void);
|
||||
|
||||
/*****************************************************************************
|
||||
* Name: tms570_mmcsd_initialize
|
||||
*
|
||||
* Description:
|
||||
* Initialize SPI-based SD card and card detect thread.
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_MMCSD
|
||||
int tms570_mmcsd_initialize(int minor);
|
||||
#endif
|
||||
|
||||
#endif /* __CONFIGS_LAUNCHXL_TMS57004_SRC_LAUNCHXL_TMS57004_H */
|
Loading…
Reference in New Issue
Block a user