mirror of
https://github.com/apache/nuttx.git
synced 2026-05-20 20:44:39 +08:00
arch/arm/src/tiva/cc13xx: The trim files from the TI DriverLib now compile successfully. This merge also brings in the ROM files from the TI DriverLib which do NOT year compile correctly. This is still a work in progress. There merge also adds unverified support for the LaunchXL-CC1310.
Squashed commit of the following:
confgs/launchxl-cc1310: Add board support for the LaunchXL-CC1310. This is a work in progress and does not yet build error free.
arch/arm/src/tiva/cc13xx: cc13x0_trim.c now compiles; Make xxx_rom.h header files conform a little more closely to the NuttX coding style.
arch/arm/src/tiva/cc13xx: CC13x2 (V1 and V2) rom.c files now build with no errors or warnings. Still have to work through the CC13x0 version.
arch/arm/src/tiva/hardware: Add CC13x0/CC13x2_CC26x2 AON BATMON register definition header file.
arch/arm/src/tiva/cc13xx: A little more progress converting TI DriverLib ROM code to NuttX coding style. Lots of possibilities for breakage here!
arch/arm/src/tiva/cc13xx: Remove functions from cc13x._rom.c that are defined from ROM access in cc13x._rom.h; Add prototypes in cc13x._rom.h for functions in cc13x._rom.c that are not defined in cc13x._rom.h.
arch/arm/src/tiva/cc13xx: Remove some dangling whitespace at the end of lines.
arch/arm/src/tiva/cc13xx: Second (and final) round of name changes to get ROM function-like defines consistent with NuttX coding standard
arch/arm/src/tiva/cc13xx: Fix a few errors in last big name conversion.
arch/arm/src/tiva/cc13xx: First round of name changes to get ROM function-like defines consistent with NuttX coding standard
arch/arm/src/tiva/cc13xx: Remove ROM_ prefix from function-like defines.
This commit is contained in:
@@ -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: January 5, 2019</p>
|
||||
<p>Last Updated: January 22, 2019</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -125,6 +125,8 @@ nuttx/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/imxrt1050-evk/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- kwikstik-k40/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/kwikstik-k40/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- launchxl-cc1310/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/launchxl-cc1310/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- launchxl-cc1312r1/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/launchxl-cc1312r1/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- launchxl-tms57004/
|
||||
|
||||
@@ -1799,6 +1799,8 @@ nuttx/
|
||||
| | `- README.txt
|
||||
| |- kwikstik-k40/
|
||||
| | `- README.txt
|
||||
| |- launchxl-cc1310/
|
||||
| | `- README.txt
|
||||
| |- launchxl-cc1312r1/
|
||||
| | `- README.txt
|
||||
| |- launchxl-tms57004/
|
||||
|
||||
@@ -103,13 +103,13 @@ endif
|
||||
else ifeq ($(CONFIG_ARCH_CHIP_CC13X0),y)
|
||||
CHIP_CSRCS += cc13xx_start.c cc13xx_prcm.c cc13xx_chipinfo.c cc13xx_gpio.c
|
||||
CHIP_CSRCS += cc13xx_gpioirq.c cc13xx_enableclks.c cc13xx_enablepwr.c
|
||||
CHIP_CSRCS += cc13x0_trim.c
|
||||
CHIP_CSRCS += cc13x0_trim.c cc13x0_rom.c
|
||||
else ifeq ($(CONFIG_ARCH_CHIP_CC13X2),y)
|
||||
CHIP_CSRCS += cc13xx_start.c cc13xx_prcm.c cc13xx_chipinfo.c cc13xx_gpio.c
|
||||
CHIP_CSRCS += cc13xx_gpioirq.c cc13xx_enableclks.c cc13xx_enablepwr.c
|
||||
CHIP_CSRCS += cc13x2_aux_sysif.c
|
||||
ifeq ($(CONFIG_ARCH_CHIP_CC13XX_V1),y)
|
||||
CHIP_CSRCS += cc13x2_v1_trim.c
|
||||
CHIP_CSRCS += cc13x2_v1_trim.c cc13x2_cc26x2_v1_rom.c
|
||||
else
|
||||
CHIP_CSRCS += cc13x2_v2_trim.c
|
||||
endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -136,11 +136,18 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
TIVA_ADI3_REFSYS_MASK4B + (TIVA_ADI3_REFSYS_DCDCCTL5_OFFSET * 2));
|
||||
}
|
||||
|
||||
/* Enable for JTAG to be powered down(will still be powered on if debugger
|
||||
* is connected)
|
||||
/* Enable for JTAG to be powered down. The JTAG domain is automatically
|
||||
* powered up on if a debugger is connected. If a debugger is not
|
||||
* connected this function can be used to power off the JTAG domain.
|
||||
* Achieving the lowest power modes (shutdown/powerdown) requires the
|
||||
* JTAG domain to be turned off. In general the JTAG domain should never
|
||||
* be powered in production code.
|
||||
*
|
||||
* NOTE: This logic comes from the aon_wuc.h header file in the TI
|
||||
* DriverLib.
|
||||
*/
|
||||
|
||||
AONWUCJtagPowerOff();
|
||||
putreg32(0, TIVA_AON_WUC_JTAGCFG);
|
||||
|
||||
/* read the MODE_CONF register in CCFG */
|
||||
|
||||
@@ -151,14 +158,13 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
* -Configure DCDC.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg1(ccfg_modeconf);
|
||||
rom_setup_coldreset_from_shutdown_cfg1(ccfg_modeconf);
|
||||
|
||||
/* Second part of trim done after cold reset and wakeup from shutdown:
|
||||
* -Configure XOSC.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg2(fcfg1_revision,
|
||||
ccfg_modeconf);
|
||||
rom_setup_coldreset_from_shutdown_cfg2(fcfg1_revision, ccfg_modeconf);
|
||||
|
||||
/* Increased margin between digital supply voltage and VDD BOD during
|
||||
* standby. VTRIM_UDIG: signed 4 bits value to be incremented by 2 (max = 7)
|
||||
@@ -213,11 +219,11 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
* -Configure HPOSC. -Setup the LF clock.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg3(ccfg_modeconf);
|
||||
rom_setup_coldreset_from_shutdown_cfg3(ccfg_modeconf);
|
||||
|
||||
/* Allow AUX to power down */
|
||||
|
||||
AUXWUCPowerCtrl(AUX_WUC_POWER_DOWN);
|
||||
rom_aonwuc_powerctrl(AUX_WUC_POWER_DOWN);
|
||||
|
||||
/* Leaving on AUX and clock for AUX_DDI0_OSC on but turn off clock for
|
||||
* AUX_ADI4
|
||||
@@ -309,7 +315,7 @@ void cc13xx_trim_device(void)
|
||||
|
||||
/* Select correct CACHE mode and set correct CACHE configuration */
|
||||
|
||||
SetupSetCacheModeAccordingToCcfgSetting();
|
||||
rom_setup_cachemode();
|
||||
|
||||
/* 1. Check for powerdown 2. Check for shutdown 3. Assume cold reset if none
|
||||
* of the above. It is always assumed that the application will freeze the
|
||||
|
||||
@@ -0,0 +1,228 @@
|
||||
/************************************************************************************
|
||||
* arch/arm/src/tiva/cc13xx/cc13x2_cc26x2_v1_rom.c
|
||||
*
|
||||
* Copyright (C) 2019 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* This is a port of TI's setup_rom.c file which has a fully compatible BSD license:
|
||||
*
|
||||
* Copyright (c) 2015-2017, Texas Instruments Incorporated
|
||||
* 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 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 <stdint.h>
|
||||
|
||||
#include "up_arch.h"
|
||||
|
||||
#include "hardware/tiva_adi2_refsys.h"
|
||||
#include "hardware/tiva_adi3_refsys.h"
|
||||
#include "hardware/tiva_adi4_aux.h"
|
||||
#include "hardware/tiva_aon_batmon.h"
|
||||
#include "hardware/tiva_aon_pmctl.h"
|
||||
#include "hardware/tiva_aon_rtc.h"
|
||||
#include "hardware/tiva_aux_sysif.h"
|
||||
#include "hardware/tiva_ccfg.h"
|
||||
#include "hardware/tiva_ddi0_osc.h"
|
||||
#include "hardware/tiva_fcfg1.h"
|
||||
|
||||
#include "cc13xx/cc13x2_cc26x2_v1_rom.h"
|
||||
|
||||
/************************************************************************************
|
||||
* Public Functions
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Name: rom_setup_stepvaddrtrimto
|
||||
************************************************************************************/
|
||||
|
||||
void rom_setup_stepvaddrtrimto(uint32_t tocode)
|
||||
{
|
||||
uint32_t pmctl_regsetctrl;
|
||||
int32_t target_trim;
|
||||
int32_t current_trim;
|
||||
|
||||
target_trim =
|
||||
rom_signextend_vddrtrim(tocode &
|
||||
(ADI3_REFSYS_DCDCCTL0_VDDR_TRIM_MASK >>
|
||||
ADI3_REFSYS_DCDCCTL0_VDDR_TRIM_SHIFT));
|
||||
current_trim =
|
||||
rom_signextend_vddrtrim((getreg16(TIVA_ADI3_REFSYS_DCDCCTL0) &
|
||||
ADI3_REFSYS_DCDCCTL0_VDDR_TRIM_MASK) >>
|
||||
ADI3_REFSYS_DCDCCTL0_VDDR_TRIM_SHIFT);
|
||||
|
||||
if (target_trim != current_trim)
|
||||
{
|
||||
pmctl_regsetctrl =
|
||||
(getreg32(TIVA_AON_PMCTL_RESETCTL) &
|
||||
~AON_PMCTL_RESETCTL_MCU_WARM_RESET);
|
||||
if (pmctl_regsetctrl & AON_PMCTL_RESETCTL_VDDR_LOSS_EN)
|
||||
{
|
||||
putreg32(pmctl_regsetctrl & ~AON_PMCTL_RESETCTL_VDDR_LOSS_EN,
|
||||
TIVA_AON_PMCTL_RESETCTL);
|
||||
(void)getreg32(TIVA_AON_RTC_SYNC); /* Wait for VDDR_LOSS_EN
|
||||
* setting to propagate */
|
||||
}
|
||||
|
||||
while (target_trim != current_trim)
|
||||
{
|
||||
(void)getreg32(TIVA_AON_RTC_SYNCLF); /* Wait for next edge
|
||||
* on SCLK_LF (positive
|
||||
* or negative) */
|
||||
|
||||
if (target_trim > current_trim)
|
||||
current_trim++;
|
||||
else
|
||||
current_trim--;
|
||||
|
||||
putreg8(((getreg8(TIVA_ADI3_REFSYS_DCDCCTL0) &
|
||||
~ADI3_REFSYS_DCDCCTL0_VDDR_TRIM_MASK) |
|
||||
((((uint32_t)current_trim) <<
|
||||
ADI3_REFSYS_DCDCCTL0_VDDR_TRIM_SHIFT) &
|
||||
ADI3_REFSYS_DCDCCTL0_VDDR_TRIM_MASK)),
|
||||
TIVA_ADI3_REFSYS_DCDCCTL0);
|
||||
}
|
||||
|
||||
(void)getreg32(TIVA_AON_RTC_SYNCLF); /* Wait for next edge on
|
||||
* SCLK_LF (positive or
|
||||
* negative) */
|
||||
|
||||
if (pmctl_regsetctrl & AON_PMCTL_RESETCTL_VDDR_LOSS_EN)
|
||||
{
|
||||
(void)getreg32(TIVA_AON_RTC_SYNCLF); /* Wait for next edge
|
||||
* on SCLK_LF (positive
|
||||
* or negative) */
|
||||
|
||||
(void)getreg32(TIVA_AON_RTC_SYNCLF); /* Wait for next edge
|
||||
* on SCLK_LF (positive
|
||||
* or negative) */
|
||||
|
||||
putreg32(pmctl_regsetctrl, TIVA_AON_PMCTL_RESETCTL);
|
||||
(void)getreg32(TIVA_AON_RTC_SYNC); /* And finally wait for
|
||||
* VDDR_LOSS_EN setting to
|
||||
* propagate */
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************************
|
||||
* Name: rom_setup_coldreset_from_shutdown_cfg1
|
||||
************************************************************************************/
|
||||
|
||||
void rom_setup_coldreset_from_shutdown_cfg1(uint32_t ccfg_modeconf)
|
||||
{
|
||||
uint32_t setbits;
|
||||
uint32_t clrbits;
|
||||
|
||||
/* Check for CC1352 boost mode The combination VDDR_EXT_LOAD=0 and
|
||||
* VDDS_BOD_LEVEL=1 is defined to select boost mode */
|
||||
|
||||
if (((ccfg_modeconf & CCFG_MODE_CONF_VDDR_EXT_LOAD) == 0) &&
|
||||
((ccfg_modeconf & CCFG_MODE_CONF_VDDS_BOD_LEVEL) != 0))
|
||||
{
|
||||
/* Set VDDS_BOD trim - using masked write {MASK8:DATA8} - TRIM_VDDS_BOD
|
||||
* is bits[7:3] of ADI3..REFSYSCTL1 - Needs a positive transition on
|
||||
* BOD_BG_TRIM_EN (bit[7] of REFSYSCTL3) to latch new VDDS BOD. Set to 0
|
||||
* first to guarantee a positive transition. */
|
||||
|
||||
putreg8(ADI3_REFSYS_REFSYSCTL3_BOD_BG_TRIM_EN,
|
||||
TIVA_ADI3_REFSYS_CLR + TIVA_ADI3_REFSYS_REFSYSCTL3_OFFSET);
|
||||
|
||||
/* VDDS_BOD_LEVEL = 1 means that boost mode is selected
|
||||
* -Max out the VDDS_BOD trim( = VDDS_BOD_POS_31)
|
||||
*/
|
||||
|
||||
putreg16((ADI3_REFSYS_REFSYSCTL1_TRIM_VDDS_BOD_MASK << 8) |
|
||||
(ADI3_REFSYS_REFSYSCTL1_TRIM_VDDS_BOD_POS_31),
|
||||
TIVA_ADI3_REFSYS_MASK8B + (TIVA_ADI3_REFSYS_REFSYSCTL1_OFFSET * 2));
|
||||
|
||||
putreg8(ADI3_REFSYS_REFSYSCTL3_BOD_BG_TRIM_EN,
|
||||
TIVA_ADI3_REFSYS_SET + TIVA_ADI3_REFSYS_REFSYSCTL3_OFFSET);
|
||||
|
||||
rom_setup_stepvaddrtrimto((getreg32(TIVA_FCFG1_VOLT_TRIM) &
|
||||
FCFG1_VOLT_TRIM_VDDR_TRIM_HH_MASK) >>
|
||||
FCFG1_VOLT_TRIM_VDDR_TRIM_HH_SHIFT);
|
||||
}
|
||||
|
||||
/* 1. Do not allow DCDC to be enabled if in external regulator mode.
|
||||
* Preventing this by setting both the RECHARGE and the ACTIVE bits bit in
|
||||
* the CCFG_MODE_CONF copy register (ccfg_modeconf). 2. Adjusted battery
|
||||
* monitor low limit in internal regulator mode. This is done by setting
|
||||
* AON_BATMON_FLASHPUMPP0_LOWLIM=0 in internal regulator mode.
|
||||
*/
|
||||
|
||||
if (getreg32(TIVA_AON_PMCTL_PWRCTL) &
|
||||
AON_PMCTL_PWRCTL_EXT_REG_MODE)
|
||||
{
|
||||
ccfg_modeconf |= (CCFG_MODE_CONF_DCDC_RECHARGE |
|
||||
CCFG_MODE_CONF_DCDC_ACTIVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
modifyreg32(TIVA_AON_BATMON_FLASHPUMPP0,
|
||||
AON_BATMON_FLASHPUMPP0_LOWLIM, 0);
|
||||
}
|
||||
|
||||
/* Set the RECHARGE source based upon CCFG:MODE_CONF:DCDC_RECHARGE Note:
|
||||
* Inverse polarity
|
||||
*/
|
||||
|
||||
setbits = 0;
|
||||
clrbits = 0;
|
||||
|
||||
if ((ccfg_modeconf & CCFG_MODE_CONF_DCDC_RECHARGE) != 0)
|
||||
{
|
||||
clrbits |= AON_PMCTL_PWRCTL_DCDC_EN;
|
||||
}
|
||||
else
|
||||
{
|
||||
setbits |= AON_PMCTL_PWRCTL_DCDC_EN;
|
||||
}
|
||||
|
||||
/* Set the ACTIVE source based upon CCFG:MODE_CONF:DCDC_ACTIVE Note: Inverse
|
||||
* polarity
|
||||
*/
|
||||
|
||||
if ((ccfg_modeconf & CCFG_MODE_CONF_DCDC_ACTIVE) != 0)
|
||||
{
|
||||
clrbits |= AON_PMCTL_PWRCTL_DCDC_ACTIVE;
|
||||
}
|
||||
else
|
||||
{
|
||||
setbits |= AON_PMCTL_PWRCTL_DCDC_ACTIVE;
|
||||
}
|
||||
|
||||
modifyreg32(TIVA_AON_PMCTL_PWRCTL, clrbits, setbits);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -261,13 +261,13 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
* the VDDR_TRIM_SLEEP value. -Configure DCDC.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg1(ccfg_modeconf);
|
||||
rom_setup_coldreset_from_shutdown_cfg1(ccfg_modeconf);
|
||||
|
||||
/* Second part of trim done after cold reset and wakeup from shutdown:
|
||||
* -Configure XOSC.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg2(fcfg1_revision,
|
||||
rom_setup_coldreset_from_shutdown_cfg2(fcfg1_revision,
|
||||
ccfg_modeconf);
|
||||
|
||||
/* Special shadow register trim propagation on first batch of devices */
|
||||
@@ -345,7 +345,7 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
|
||||
/* The VDDS_BOD trim and the VDDR trim is already stepped up to max/HH if
|
||||
* "CC1352 boost mode" is requested. See function
|
||||
* SetupAfterColdResetWakeupFromShutDownCfg1() in setup_rom.c for details.
|
||||
* rom_setup_coldreset_from_shutdown_cfg1() in setup_rom.c for details.
|
||||
*/
|
||||
|
||||
if (((ccfg_modeconf & CCFG_MODE_CONF_VDDR_EXT_LOAD) != 0) ||
|
||||
@@ -390,7 +390,7 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
regval8 |= ADI3_REFSYS_REFSYSCTL3_BOD_BG_TRIM_EN;
|
||||
putreg8(regval8, TIVA_ADI3_REFSYS_REFSYSCTL3);
|
||||
|
||||
SetupStepVddrTrimTo((fusedata &
|
||||
rom_setup_stepvaddrtrimto((fusedata &
|
||||
FCFG1_SHDW_ANA_TRIM_VDDR_TRIM_MASK) >>
|
||||
FCFG1_SHDW_ANA_TRIM_VDDR_TRIM_SHIFT);
|
||||
}
|
||||
@@ -458,7 +458,7 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
* -Configure HPOSC. -Setup the LF clock.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg3(ccfg_modeconf);
|
||||
rom_setup_coldreset_from_shutdown_cfg3(ccfg_modeconf);
|
||||
|
||||
/* Set AUX into power down active mode */
|
||||
|
||||
@@ -531,7 +531,7 @@ void cc13xx_trim_device(void)
|
||||
|
||||
/* Select correct CACHE mode and set correct CACHE configuration */
|
||||
|
||||
SetupSetCacheModeAccordingToCcfgSetting();
|
||||
rom_setup_cachemode();
|
||||
|
||||
/* 1. Check for powerdown 2. Check for shutdown 3. Assume cold reset if none
|
||||
* of the above. It is always assumed that the application will freeze the
|
||||
|
||||
@@ -141,13 +141,13 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
* the VDDR_TRIM_SLEEP value. -Configure DCDC.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg1(ccfg_modeconf);
|
||||
rom_setup_coldreset_from_shutdown_cfg1(ccfg_modeconf);
|
||||
|
||||
/* Second part of trim done after cold reset and wakeup from shutdown:
|
||||
* -Configure XOSC.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg2(fcfg1_revision,
|
||||
rom_setup_coldreset_from_shutdown_cfg2(fcfg1_revision,
|
||||
ccfg_modeconf);
|
||||
|
||||
{
|
||||
@@ -202,7 +202,7 @@ static void trim_wakeup_fromshutdown(uint32_t fcfg1_revision)
|
||||
* -Configure HPOSC. -Setup the LF clock.
|
||||
*/
|
||||
|
||||
SetupAfterColdResetWakeupFromShutDownCfg3(ccfg_modeconf);
|
||||
rom_setup_coldreset_from_shutdown_cfg3(ccfg_modeconf);
|
||||
|
||||
/* Set AUX into power down active mode */
|
||||
|
||||
@@ -277,7 +277,7 @@ void cc13xx_trim_device(void)
|
||||
|
||||
/* Select correct CACHE mode and set correct CACHE configuration */
|
||||
|
||||
SetupSetCacheModeAccordingToCcfgSetting();
|
||||
rom_setup_cachemode();
|
||||
|
||||
/* 1. Check for powerdown 2. Check for shutdown 3. Assume cold reset if none
|
||||
* of the above. It is always assumed that the application will freeze the
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
* domain. */
|
||||
|
||||
#define PRCM_DOMAIN_VIMS_OFF_NO_WAKEUP \
|
||||
0x00020010 /* For function PRCMPowerDomainOff()
|
||||
0x00020010 /* For function rom_prcm_powerdomain_off()
|
||||
* it is an option to select that
|
||||
* VIMS power domain shall not
|
||||
* power up during the next wake
|
||||
|
||||
@@ -0,0 +1,181 @@
|
||||
/********************************************************************************************************************
|
||||
* arch/arm/src/tiva/hardware/cc13x0/cc13x0_aon_batmon.h
|
||||
*
|
||||
* Copyright (C) 2019 Gregory Nutt. All rights reserved.
|
||||
* Authors: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Technical content derives from a TI header file that has a compatible BSD license:
|
||||
*
|
||||
* Copyright (c) 2015-2017, Texas Instruments Incorporated
|
||||
* 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 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 __ARCH_ARM_SRC_TIVA_HARDWARE_CC13X0_CC13X0_AON_BATMON_H
|
||||
#define __ARCH_ARM_SRC_TIVA_HARDWARE_CC13X0_CC13X0_AON_BATMON_H
|
||||
|
||||
/********************************************************************************************************************
|
||||
* Included Files
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include "hardware/tiva_memorymap.h"
|
||||
|
||||
/********************************************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
********************************************************************************************************************/
|
||||
|
||||
/* AON BATMON Register Offsets **************************************************************************************/
|
||||
|
||||
#define TIVA_AON_BATMON_CTL_OFFSET 0x0000
|
||||
#define TIVA_AON_BATMON_MEASCFG_OFFSET 0x0004
|
||||
#define TIVA_AON_BATMON_TEMPP0_OFFSET 0x000c
|
||||
#define TIVA_AON_BATMON_TEMPP1_OFFSET 0x0010
|
||||
#define TIVA_AON_BATMON_TEMPP2_OFFSET 0x0014
|
||||
#define TIVA_AON_BATMON_BATMONP0_OFFSET 0x0018
|
||||
#define TIVA_AON_BATMON_BATMONP1_OFFSET 0x001c
|
||||
#define TIVA_AON_BATMON_IOSTRP0_OFFSET 0x0020
|
||||
#define TIVA_AON_BATMON_FLASHPUMPP0_OFFSET 0x0024
|
||||
#define TIVA_AON_BATMON_BAT_OFFSET 0x0028 /* Last Measured Battery Voltage */
|
||||
#define TIVA_AON_BATMON_BATUPD_OFFSET 0x002c /* Battery Update */
|
||||
#define TIVA_AON_BATMON_TEMP_OFFSET 0x0030 /* Temperature */
|
||||
#define TIVA_AON_BATMON_TEMPUPD_OFFSET 0x0034 /* Temperature Update */
|
||||
|
||||
/* AON BATMON Register Addresses ************************************************************************************/
|
||||
|
||||
#define TIVA_AON_BATMON_CTL (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_CTL_OFFSET)
|
||||
#define TIVA_AON_BATMON_MEASCFG (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_MEASCFG_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPP1 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPP1_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPP2 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPP2_OFFSET)
|
||||
#define TIVA_AON_BATMON_BATMONP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATMONP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_BATMONP1 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATMONP1_OFFSET)
|
||||
#define TIVA_AON_BATMON_IOSTRP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_IOSTRP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_FLASHPUMPP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_FLASHPUMPP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_BAT (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BAT_OFFSET)
|
||||
#define TIVA_AON_BATMON_BATUPD (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATUPD_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMP (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMP_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPUPD (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPUPD_OFFSET)
|
||||
|
||||
/* AON BATMON Register Bitfield Definitions *************************************************************************/
|
||||
|
||||
/* AON_BATMON_CTL */
|
||||
|
||||
#define AON_BATMON_CTL_MEAS_EN (1 << 0) /* Bit 0 */
|
||||
#define AON_BATMON_CTL_CALC_EN (1 << 1) /* Bit 1 */
|
||||
|
||||
/* AON_BATMON_MEASCFG */
|
||||
|
||||
#define AON_BATMON_MEASCFG_PER_SHIFT (0) /* Bits 0-1 */
|
||||
#define AON_BATMON_MEASCFG_PER_MASK (3 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER(n) ((uint32_t)(n) << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_CONT (0 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_8CYC (1 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_16CYC (2 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_32CYC (3 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPP0 */
|
||||
|
||||
#define AON_BATMON_TEMPP0_CFG_SHIFT (0) /* Bits 0-7 */
|
||||
#define AON_BATMON_TEMPP0_CFG_MASK (0xff << AON_BATMON_TEMPP0_CFG_SHIFT)
|
||||
# define AON_BATMON_TEMPP0_CFG(n) ((uint32_t)(n) << AON_BATMON_TEMPP0_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPP1 */
|
||||
|
||||
#define AON_BATMON_TEMPP1_CFG_SHIFT (0) /* Bits 0-5 */
|
||||
#define AON_BATMON_TEMPP1_CFG_MASK (0x3f << AON_BATMON_TEMPP1_CFG_SHIFT)
|
||||
# define AON_BATMON_TEMPP1_CFG(n) ((uint32_t)(n) << AON_BATMON_TEMPP1_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPP2 */
|
||||
|
||||
#define AON_BATMON_TEMPP2_CFG_SHIFT (0) /* Bits 0-4 */
|
||||
#define AON_BATMON_TEMPP2_CFG_MASK (0x2f << AON_BATMON_TEMPP2_CFG_SHIFT)
|
||||
# define AON_BATMON_TEMPP2_CFG(n) ((uint32_t)(n) << AON_BATMON_TEMPP2_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_BATMONP0 */
|
||||
|
||||
#define AON_BATMON_BATMONP0_CFG_SHIFT (0) /* Bits 0-5 */
|
||||
#define AON_BATMON_BATMONP0_CFG_MASK (0x2f << AON_BATMON_BATMONP0_CFG_SHIFT)
|
||||
# define AON_BATMON_BATMONP0_CFG(n) ((uint32_t)(n) << AON_BATMON_BATMONP0_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_BATMONP1 */
|
||||
|
||||
#define AON_BATMON_BATMONP1_CFG_SHIFT (0) /* Bits 0-5 */
|
||||
#define AON_BATMON_BATMONP1_CFG_MASK (0x3f << AON_BATMON_BATMONP1_CFG_SHIFT)
|
||||
# define AON_BATMON_BATMONP1_CFG(n) ((uint32_t)(n) << AON_BATMON_BATMONP1_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_IOSTRP0 */
|
||||
|
||||
#define AON_BATMON_IOSTRP0_CFG1_SHIFT (0) /* Bits 0-3 */
|
||||
#define AON_BATMON_IOSTRP0_CFG1_MASK (15 << AON_BATMON_IOSTRP0_CFG1_SHIFT)
|
||||
# define AON_BATMON_IOSTRP0_CFG1(n) ((uint32_t)(n) << AON_BATMON_IOSTRP0_CFG1_SHIFT)
|
||||
#define AON_BATMON_IOSTRP0_CFG2_SHIFT (4) /* Bits 4-6 */
|
||||
#define AON_BATMON_IOSTRP0_CFG2_MASK (3 << AON_BATMON_IOSTRP0_CFG2_SHIFT)
|
||||
# define AON_BATMON_IOSTRP0_CFG2(n) ((uint32_t)(n) << AON_BATMON_IOSTRP0_CFG2_SHIFT)
|
||||
|
||||
/* AON_BATMON_FLASHPUMPP0 */
|
||||
|
||||
#define AON_BATMON_FLASHPUMPP0_CFG_SHIFT (0) /* Bits 0-3 */
|
||||
#define AON_BATMON_FLASHPUMPP0_CFG_MASK (15 << AON_BATMON_FLASHPUMPP0_CFG_SHIFT)
|
||||
# define AON_BATMON_FLASHPUMPP0_CFG(n) ((uint32_t)(n) << AON_BATMON_FLASHPUMPP0_CFG_SHIFT)
|
||||
#define AON_BATMON_FLASHPUMPP0_OVR (1 << 4) /* Bit 4 */
|
||||
#define AON_BATMON_FLASHPUMPP0_LOWLIM (1 << 5) /* Bit 5 */
|
||||
#define AON_BATMON_FLASHPUMPP0_HIGHLIM_SHIFT (6) /* Bits 6-7 */
|
||||
#define AON_BATMON_FLASHPUMPP0_HIGHLIM_MASK (3 << AON_BATMON_FLASHPUMPP0_HIGHLIM_SHIFT)
|
||||
# define AON_BATMON_FLASHPUMPP0_HIGHLIM(n) ((uint32_t)(n) << AON_BATMON_FLASHPUMPP0_HIGHLIM_SHIFT)
|
||||
#define AON_BATMON_FLASHPUMPP0_FALLB (1 << 8) /* Bit 8 */
|
||||
|
||||
/* AON_BATMON_BAT */
|
||||
|
||||
#define AON_BATMON_BAT_FRAC_SHIFT (0) /* Bits 0-7: Fractional part */
|
||||
#define AON_BATMON_BAT_FRAC_MASK (0xff << AON_BATMON_BAT_FRAC_SHIFT)
|
||||
# define AON_BATMON_BAT_FRAC(n) ((uint32_t)(n) << AON_BATMON_BAT_FRAC_SHIFT)
|
||||
#define AON_BATMON_BAT_INT_SHIFT (8) /* Bits 8-10: Integer part */
|
||||
#define AON_BATMON_BAT_INT_MASK (7 << AON_BATMON_BAT_INT_SHIFT)
|
||||
# define AON_BATMON_BAT_INT(n) ((uint32_t)(n) << AON_BATMON_BAT_INT_SHIFT)
|
||||
|
||||
/* AON_BATMON_BATUPD */
|
||||
|
||||
#define AON_BATMON_BATUPD_STAT (1 << 0) /* Bit 0: New battery voltage is present */
|
||||
|
||||
/* AON_BATMON_TEMP */
|
||||
|
||||
#define AON_BATMON_TEMP_INT_SHIFT (8) /* Bits 8-16: Signed integer part of temperature */
|
||||
#define AON_BATMON_TEMP_INT_MASK (0x1ff << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT(n) ((uint32_t)(n) << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT_MIN (0x100 << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT_MAX (0x0ff << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT_ZERO (0x000 << AON_BATMON_TEMP_INT_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPUPD */
|
||||
|
||||
#define AON_BATMON_TEMPUPD_STAT (1 << 0) /* Bit 0: New temperature is present */
|
||||
|
||||
#endif /* __ARCH_ARM_SRC_TIVA_HARDWARE_CC13X0_CC13X0_AON_BATMON_H */
|
||||
@@ -0,0 +1,265 @@
|
||||
/********************************************************************************************************************
|
||||
* arch/arm/src/tiva/hardware/cc13x2_cc26x2/cc13x2_cc26x2_aon_batmon.h
|
||||
*
|
||||
* Copyright (C) 2019 Gregory Nutt. All rights reserved.
|
||||
* Authors: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Technical content derives from a TI header file that has a compatible BSD license:
|
||||
*
|
||||
* Copyright (c) 2015-2017, Texas Instruments Incorporated
|
||||
* 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 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 __ARCH_ARM_SRC_TIVA_HARDWARE_CC13X2_CC26X2_CC13X2_CC26X2_AON_BATMON_H
|
||||
#define __ARCH_ARM_SRC_TIVA_HARDWARE_CC13X2_CC26X2_CC13X2_CC26X2_AON_BATMON_H
|
||||
|
||||
/********************************************************************************************************************
|
||||
* Included Files
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include "hardware/tiva_memorymap.h"
|
||||
|
||||
/********************************************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
********************************************************************************************************************/
|
||||
|
||||
/* AON BATMON Register Offsets **************************************************************************************/
|
||||
|
||||
#define TIVA_AON_BATMON_CTL_OFFSET 0x0000
|
||||
#define TIVA_AON_BATMON_MEASCFG_OFFSET 0x0004
|
||||
#define TIVA_AON_BATMON_TEMPP0_OFFSET 0x000c
|
||||
#define TIVA_AON_BATMON_TEMPP1_OFFSET 0x0010
|
||||
#define TIVA_AON_BATMON_TEMPP2_OFFSET 0x0014
|
||||
#define TIVA_AON_BATMON_BATMONP0_OFFSET 0x0018
|
||||
#define TIVA_AON_BATMON_BATMONP1_OFFSET 0x001c
|
||||
#define TIVA_AON_BATMON_IOSTRP0_OFFSET 0x0020
|
||||
#define TIVA_AON_BATMON_FLASHPUMPP0_OFFSET 0x0024
|
||||
#define TIVA_AON_BATMON_BAT_OFFSET 0x0028 /* Last Measured Battery Voltage */
|
||||
#define TIVA_AON_BATMON_BATUPD_OFFSET 0x002c /* Battery Update */
|
||||
#define TIVA_AON_BATMON_TEMP_OFFSET 0x0030 /* Temperature */
|
||||
#define TIVA_AON_BATMON_TEMPUPD_OFFSET 0x0034 /* Temperature Update */
|
||||
#define TIVA_AON_BATMON_EVENTMASK_OFFSET 0x0048 /* Event Mask */
|
||||
#define TIVA_AON_BATMON_EVENT_OFFSET 0x004c /* Event */
|
||||
#define TIVA_AON_BATMON_BATUL_OFFSETT 0x0050 /* Battery Upper Limit */
|
||||
#define TIVA_AON_BATMON_BATLL_OFFSETT 0x0054 /* Battery Lower Limit */
|
||||
#define TIVA_AON_BATMON_TEMPUL_OFFSET 0x0058 /* Temperature Upper Limit */
|
||||
#define TIVA_AON_BATMON_TEMPLL_OFFSET 0x005c /* Temperature Lower Limit */
|
||||
|
||||
/* AON BATMON Register Addresses ************************************************************************************/
|
||||
|
||||
#define TIVA_AON_BATMON_CTL (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_CTL_OFFSET)
|
||||
#define TIVA_AON_BATMON_MEASCFG (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_MEASCFG_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPP1 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPP1_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPP2 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPP2_OFFSET)
|
||||
#define TIVA_AON_BATMON_BATMONP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATMONP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_BATMONP1 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATMONP1_OFFSET)
|
||||
#define TIVA_AON_BATMON_IOSTRP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_IOSTRP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_FLASHPUMPP0 (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_FLASHPUMPP0_OFFSET)
|
||||
#define TIVA_AON_BATMON_BAT (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BAT_OFFSET)
|
||||
#define TIVA_AON_BATMON_BATUPD (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATUPD_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMP (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMP_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPUPD (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPUPD_OFFSET)
|
||||
#define TIVA_AON_BATMON_EVENTMASK (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_EVENTMASK_OFFSET)
|
||||
#define TIVA_AON_BATMON_EVENT (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_EVENT_OFFSET)
|
||||
#define TIVA_AON_BATMON_BATUL (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATUL_OFFSETT)
|
||||
#define TIVA_AON_BATMON_BATLL (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_BATLL_OFFSETT)
|
||||
#define TIVA_AON_BATMON_TEMPUL (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPUL_OFFSET)
|
||||
#define TIVA_AON_BATMON_TEMPLL (TIVA_AON_BATMON_BASE + TIVA_AON_BATMON_TEMPLL_OFFSET)
|
||||
|
||||
/* AON BATMON Register Bitfield Definitions *************************************************************************/
|
||||
|
||||
/* AON_BATMON_CTL */
|
||||
|
||||
#define AON_BATMON_CTL_MEAS_EN (1 << 0) /* Bit 0 */
|
||||
#define AON_BATMON_CTL_CALC_EN (1 << 1) /* Bit 1 */
|
||||
|
||||
/* AON_BATMON_MEASCFG */
|
||||
|
||||
#define AON_BATMON_MEASCFG_PER_SHIFT (0) /* Bits 0-1 */
|
||||
#define AON_BATMON_MEASCFG_PER_MASK (3 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER(n) ((uint32_t)(n) << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_CONT (0 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_8CYC (1 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_16CYC (2 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
# define AON_BATMON_MEASCFG_PER_32CYC (3 << AON_BATMON_MEASCFG_PER_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPP0 */
|
||||
|
||||
#define AON_BATMON_TEMPP0_CFG_SHIFT (0) /* Bits 0-7 */
|
||||
#define AON_BATMON_TEMPP0_CFG_MASK (0xff << AON_BATMON_TEMPP0_CFG_SHIFT)
|
||||
# define AON_BATMON_TEMPP0_CFG(n) ((uint32_t)(n) << AON_BATMON_TEMPP0_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPP1 */
|
||||
|
||||
#define AON_BATMON_TEMPP1_CFG_SHIFT (0) /* Bits 0-5 */
|
||||
#define AON_BATMON_TEMPP1_CFG_MASK (0x3f << AON_BATMON_TEMPP1_CFG_SHIFT)
|
||||
# define AON_BATMON_TEMPP1_CFG(n) ((uint32_t)(n) << AON_BATMON_TEMPP1_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPP2 */
|
||||
|
||||
#define AON_BATMON_TEMPP2_CFG_SHIFT (0) /* Bits 0-4 */
|
||||
#define AON_BATMON_TEMPP2_CFG_MASK (0x2f << AON_BATMON_TEMPP2_CFG_SHIFT)
|
||||
# define AON_BATMON_TEMPP2_CFG(n) ((uint32_t)(n) << AON_BATMON_TEMPP2_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_BATMONP0 */
|
||||
|
||||
#define AON_BATMON_BATMONP0_CFG_SHIFT (0) /* Bits 0-6 */
|
||||
#define AON_BATMON_BATMONP0_CFG_MASK (0x7f << AON_BATMON_BATMONP0_CFG_SHIFT)
|
||||
# define AON_BATMON_BATMONP0_CFG(n) ((uint32_t)(n) << AON_BATMON_BATMONP0_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_BATMONP1 */
|
||||
|
||||
#define AON_BATMON_BATMONP1_CFG_SHIFT (0) /* Bits 0-5 */
|
||||
#define AON_BATMON_BATMONP1_CFG_MASK (0x3f << AON_BATMON_BATMONP1_CFG_SHIFT)
|
||||
# define AON_BATMON_BATMONP1_CFG(n) ((uint32_t)(n) << AON_BATMON_BATMONP1_CFG_SHIFT)
|
||||
|
||||
/* AON_BATMON_IOSTRP0 */
|
||||
|
||||
#define AON_BATMON_IOSTRP0_CFG1_SHIFT (0) /* Bits 0-3 */
|
||||
#define AON_BATMON_IOSTRP0_CFG1_MASK (15 << AON_BATMON_IOSTRP0_CFG1_SHIFT)
|
||||
# define AON_BATMON_IOSTRP0_CFG1(n) ((uint32_t)(n) << AON_BATMON_IOSTRP0_CFG1_SHIFT)
|
||||
#define AON_BATMON_IOSTRP0_CFG2_SHIFT (4) /* Bits 4-6 */
|
||||
#define AON_BATMON_IOSTRP0_CFG2_MASK (3 << AON_BATMON_IOSTRP0_CFG2_SHIFT)
|
||||
# define AON_BATMON_IOSTRP0_CFG2(n) ((uint32_t)(n) << AON_BATMON_IOSTRP0_CFG2_SHIFT)
|
||||
|
||||
/* AON_BATMON_FLASHPUMPP0 */
|
||||
|
||||
#define AON_BATMON_FLASHPUMPP0_CFG_SHIFT (0) /* Bits 0-3 */
|
||||
#define AON_BATMON_FLASHPUMPP0_CFG_MASK (15 << AON_BATMON_FLASHPUMPP0_CFG_SHIFT)
|
||||
# define AON_BATMON_FLASHPUMPP0_CFG(n) ((uint32_t)(n) << AON_BATMON_FLASHPUMPP0_CFG_SHIFT)
|
||||
#define AON_BATMON_FLASHPUMPP0_OVR (1 << 4) /* Bit 4 */
|
||||
#define AON_BATMON_FLASHPUMPP0_LOWLIM (1 << 5) /* Bit 5 */
|
||||
#define AON_BATMON_FLASHPUMPP0_HIGHLIM_SHIFT (6) /* Bits 6-7 */
|
||||
#define AON_BATMON_FLASHPUMPP0_HIGHLIM_MASK (3 << AON_BATMON_FLASHPUMPP0_HIGHLIM_SHIFT)
|
||||
# define AON_BATMON_FLASHPUMPP0_HIGHLIM(n) ((uint32_t)(n) << AON_BATMON_FLASHPUMPP0_HIGHLIM_SHIFT)
|
||||
#define AON_BATMON_FLASHPUMPP0_FALLB (1 << 8) /* Bit 8 */
|
||||
#define AON_BATMON_FLASHPUMPP0_DIS_NOISE_FILTER (1 << 9) /* Bit 9 */
|
||||
|
||||
/* AON_BATMON_BAT */
|
||||
|
||||
#define AON_BATMON_BAT_FRAC_SHIFT (0) /* Bits 0-7: Fractional part */
|
||||
#define AON_BATMON_BAT_FRAC_MASK (0xff << AON_BATMON_BAT_FRAC_SHIFT)
|
||||
# define AON_BATMON_BAT_FRAC(n) ((uint32_t)(n) << AON_BATMON_BAT_FRAC_SHIFT)
|
||||
#define AON_BATMON_BAT_INT_SHIFT (8) /* Bits 8-10: Integer part */
|
||||
#define AON_BATMON_BAT_INT_MASK (7 << AON_BATMON_BAT_INT_SHIFT)
|
||||
# define AON_BATMON_BAT_INT(n) ((uint32_t)(n) << AON_BATMON_BAT_INT_SHIFT)
|
||||
|
||||
/* AON_BATMON_BATUPD */
|
||||
|
||||
#define AON_BATMON_BATUPD_STAT (1 << 0) /* Bit 0: New battery voltage is present */
|
||||
|
||||
/* AON_BATMON_TEMP */
|
||||
|
||||
#define AON_BATMON_TEMP_INT_SHIFT (8) /* Bits 8-16: Signed integer part of temperature */
|
||||
#define AON_BATMON_TEMP_INT_MASK (0x1ff << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT(n) ((uint32_t)(n) << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT_MIN (0x100 << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT_MAX (0x0ff << AON_BATMON_TEMP_INT_SHIFT)
|
||||
# define AON_BATMON_TEMP_INT_ZERO (0x000 << AON_BATMON_TEMP_INT_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPUPD */
|
||||
|
||||
#define AON_BATMON_TEMPUPD_STAT (1 << 0) /* Bit 0: New temperature is present */
|
||||
|
||||
/* AON_BATMON_EVENTMASK */
|
||||
|
||||
#define AON_BATMON_EVENTMASK_BATT_OVER_UL (1 << 0) /* Bit 0: EVENT.BATT_OVER_UL does not
|
||||
* contribute to combined event from
|
||||
* BATMON */
|
||||
#define AON_BATMON_EVENTMASK_BATT_BELOW_LL (1 << 1) /* Bit 1: EVENT.BATT_BELOW_LL does not
|
||||
* contribute to combined event from
|
||||
* BATMON */
|
||||
#define AON_BATMON_EVENTMASK_TEMP_OVER_UL (1 << 2) /* Bit 2: EVENT.TEMP_OVER_UL does not
|
||||
* contribute to combined event from
|
||||
* BATMON */
|
||||
#define AON_BATMON_EVENTMASK_TEMP_BELOW_LL (1 << 3) /* Bit 3: EVENT.TEMP_BELOW_LL does not
|
||||
* contribute to combined event from
|
||||
* BATMON */
|
||||
#define AON_BATMON_EVENTMASK_BATT_UPDATE (1 << 4) /* Bit 4: EVENT.BATT_UPDATE does not
|
||||
* contribute to combined event from
|
||||
* BATMON */
|
||||
#define AON_BATMON_EVENTMASK_TEMP_UPDATE (1 << 5) /* Bit 5: EVENT.TEMP_UPDATE does not
|
||||
* contribute to combined event from
|
||||
* BATMON */
|
||||
|
||||
/* AON_BATMON_EVENT */
|
||||
|
||||
#define AON_BATMON_EVENT_BATT_OVER_UL (1 << 0) /* Bit 0: R: Batter level above upper limit
|
||||
* W: Clears the flag */
|
||||
#define AON_BATMON_EVENT_BATT_BELOW_LL (1 << 1) /* Bit 1: Battery level below lower limit
|
||||
* W: Clears the flag */
|
||||
#define AON_BATMON_EVENT_TEMP_OVER_UL (1 << 2) /* Bit 2: R: Temperature level above upper limit
|
||||
* W: Clears the flag */
|
||||
#define AON_BATMON_EVENT_TEMP_BELOW_LL (1 << 3) /* Bit 3: R: Temperature level below lower limit
|
||||
* W: Clears the flag */
|
||||
#define AON_BATMON_EVENT_BATT_UPDATE (1 << 4) /* Bit 4: Alias to BATUPD.STAT */
|
||||
#define AON_BATMON_EVENT_TEMP_UPDATE (1 << 5) /* Bit 5: Alias to TEMPUPD.STAT */
|
||||
|
||||
/* AON_BATMON_BATTUL */
|
||||
|
||||
#define AON_BATMON_BATTUL_FRAC_SHIFT (0) /* Bits 0-7: Fractional part */
|
||||
#define AON_BATMON_BATTUL_FRAC_MASK (0xff << AON_BATMON_BATTUL_FRAC_SHIFT)
|
||||
# define AON_BATMON_BATTUL_FRAC(n) ((uint32_t)(n) << AON_BATMON_BATTUL_FRAC_SHIFT)
|
||||
#define AON_BATMON_BATTUL_INT_SHIFT (8) /* Bits: 8-10: Integer part */
|
||||
#define AON_BATMON_BATTUL_INT_MASK (7 << AON_BATMON_BATTUL_INT_SHIFT)
|
||||
# define AON_BATMON_BATTUL_INT(n) ((uint32_t)(n) << AON_BATMON_BATTUL_INT_SHIFT)
|
||||
|
||||
/* AON_BATMON_BATTLL */
|
||||
|
||||
#define AON_BATMON_BATTLL_INT_SHIFT (8) /* Bits: 8-10: Integer part */
|
||||
#define AON_BATMON_BATTLL_INT_MASK (7 << AON_BATMON_BATTLL_INT_SHIFT)
|
||||
# define AON_BATMON_BATTLL_INT(n) ((uint32_t)(n) << AON_BATMON_BATTLL_INT_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPUL */
|
||||
|
||||
#define AON_BATMON_TEMPUL_FRAC_SHIFT (6) /* Bits 6-7: Fractional part of
|
||||
* temperature upper limit */
|
||||
#define AON_BATMON_TEMPUL_FRAC_MASK (3 << AON_BATMON_TEMPUL_FRAC_SHIFT)
|
||||
# define AON_BATMON_TEMPUL_FRAC(n) ((uint32_t)(n) << AON_BATMON_TEMPUL_FRAC_SHIFT)
|
||||
#define AON_BATMON_TEMPUL_INT_SHIFT (8) /* Bits 8-16: Signed integer part
|
||||
* of tempature upper limit */
|
||||
#define AON_BATMON_TEMPUL_INT_MASK (0x1ff << AON_BATMON_TEMPUL_INT_SHIFT)
|
||||
# define AON_BATMON_TEMPUL_INT(n) ((uint32_t)(n) << AON_BATMON_TEMPUL_INT_SHIFT)
|
||||
|
||||
/* AON_BATMON_TEMPLL */
|
||||
|
||||
#define AON_BATMON_TEMPLL_FRAC_SHIFT (6) /* Bits 6-7: Fractional part of
|
||||
* temperature lower limit */
|
||||
#define AON_BATMON_TEMPLL_FRAC_MASK (3 << AON_BATMON_TEMPLL_FRAC_SHIFT)
|
||||
# define AON_BATMON_TEMPLL_FRAC(n) ((uint32_t)(n) << AON_BATMON_TEMPLL_FRAC_SHIFT)
|
||||
#define AON_BATMON_TEMPLL_INT_SHIFT (8) /* Bits 8-16: Signed integer part
|
||||
* of tempature lower limit */
|
||||
#define AON_BATMON_TEMPLL_INT_MASK (0x1ff << AON_BATMON_TEMPLL_INT_SHIFT)
|
||||
# define AON_BATMON_TEMPLL_INT(n) ((uint32_t)(n) << AON_BATMON_TEMPLL_INT_SHIFT)
|
||||
|
||||
#endif /* __ARCH_ARM_SRC_TIVA_HARDWARE_CC13X2_CC26X2_CC13X2_CC26X2_AON_BATMON_H */
|
||||
@@ -0,0 +1,73 @@
|
||||
/************************************************************************************
|
||||
* arch/arm/src/tiva/hardware/tiva_aon_batmon.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 __ARCH_ARM_SRC_TIVA_HARDWARE_TIVA_AON_BATMON_H
|
||||
#define __ARCH_ARM_SRC_TIVA_HARDWARE_TIVA_AON_BATMON_H
|
||||
|
||||
/************************************************************************************
|
||||
* Included Files
|
||||
************************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/* Include the pin mapping file for the specific Tiva/Stellaris/SimpleLink chip */
|
||||
|
||||
#if defined(CONFIG_ARCH_CHIP_LM) || defined(CONFIG_ARCH_CHIP_TM4C)
|
||||
/* These architectures do not support the AON BATMON block */
|
||||
#elif defined(CONFIG_ARCH_CHIP_CC13X0)
|
||||
# include "hardware/cc13x0/cc13x0_aon_batmon.h"
|
||||
#elif defined(CONFIG_ARCH_CHIP_CC13X2)
|
||||
# include "hardware/cc13x2_cc26x2/cc13x2_cc26x2_aon_batmon.h"
|
||||
#else
|
||||
# error "Unsupported Tiva/Stellaris/SimpleLink AON BATMON"
|
||||
#endif
|
||||
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Public Types
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Public Data
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Public Function Prototypes
|
||||
************************************************************************************/
|
||||
|
||||
#endif /* __ARCH_ARM_SRC_TIVA_HARDWARE_TIVA_AON_BATMON_H */
|
||||
@@ -335,6 +335,16 @@ config ARCH_BOARD_KWIKSTIK_K40
|
||||
Kinetis K40 Cortex-M4 MCU. This port uses the NXP/FreeScale KwikStik-K40
|
||||
development board.
|
||||
|
||||
config ARCH_BOARD_LAUNCHXL_CC1310
|
||||
bool "TI LaunchXL-CC1310"
|
||||
depends on ARCH_CHIP_CC1310
|
||||
select ARCH_HAVE_LEDS
|
||||
select ARCH_HAVE_BUTTONS
|
||||
select ARCH_HAVE_IRQBUTTONS
|
||||
---help---
|
||||
TI SimpleLink CC1310 LaunchPad Evaluation Kit (LAUNCHXL-CC1310)
|
||||
featuring the SimpleLinkCC1310 chip.
|
||||
|
||||
config ARCH_BOARD_LAUNCHXL_CC1312R1
|
||||
bool "TI LaunchXL-CC1312R1"
|
||||
depends on ARCH_CHIP_CC1312R1
|
||||
@@ -1788,6 +1798,7 @@ config ARCH_BOARD
|
||||
default "imxrt1050-evk" if ARCH_BOARD_IMXRT1050_EVK
|
||||
default "imxrt1060-evk" if ARCH_BOARD_IMXRT1060_EVK
|
||||
default "kwikstik-k40" if ARCH_BOARD_KWIKSTIK_K40
|
||||
default "launchxl-cc1310" if ARCH_BOARD_LAUNCHXL_CC1310
|
||||
default "launchxl-cc1312r1" if ARCH_BOARD_LAUNCHXL_CC1312R1
|
||||
default "launchxl-tms57004" if ARCH_BOARD_LAUNCHXL_TMS57004
|
||||
default "lc823450-xgevk" if ARCH_BOARD_LC823450_XGEVK
|
||||
@@ -2054,6 +2065,9 @@ endif
|
||||
if ARCH_BOARD_KWIKSTIK_K40
|
||||
source "configs/kwikstik-k40/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_LAUNCHXL_CC1310
|
||||
source "configs/launchxl-cc1310/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_LAUNCHXL_CC1312R1
|
||||
source "configs/launchxl-cc1312r1/Kconfig"
|
||||
endif
|
||||
|
||||
+9
-1
@@ -196,7 +196,15 @@ configs/c5471evm
|
||||
NuttX runs on the ARM core and is built with a GNU arm-nuttx-elf toolchain*.
|
||||
This port is complete and verified.
|
||||
|
||||
config/clicker2-stm32
|
||||
configs launchxl_cc1310
|
||||
Port to the TI SimpleLink CC1310 LaunchPad Evaluation Kit (LAUNCHXL-CC1310)
|
||||
featuring the SimpleLinkCC1310 chip.
|
||||
|
||||
configs launchxl_cc1312r1
|
||||
Port to the TI SimpleLink CC1312R1 LaunchPad Evaluation Kit (LAUNCHXL-CC1312R1)
|
||||
featuring the SimpleLinkCC1312R1 chip.
|
||||
|
||||
configs/clicker2-stm32
|
||||
Mikroe Clicker2 STM32 board based on the STMicro STM32F407VGT6 MCU.
|
||||
|
||||
configs/cloudctrl
|
||||
|
||||
@@ -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_LAUNCH_CC1310
|
||||
|
||||
endif # ARCH_BOARD_LAUNCH_CC1310
|
||||
@@ -0,0 +1,35 @@
|
||||
README
|
||||
======
|
||||
|
||||
This directory holds NuttX board support for the TI LaunchXL-CC1310.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
o Status
|
||||
o Serial Console
|
||||
o LEDs and Buttons
|
||||
|
||||
Status
|
||||
======
|
||||
|
||||
2019-12-03: Fragmentary board support in place. The initial intent
|
||||
of this board support is simply to assist in the CC13xx architecture
|
||||
development. Serious board development will occur later.
|
||||
|
||||
Serial Console
|
||||
==============
|
||||
|
||||
The on-board XDS110 Debugger provide a USB virtual serial console using
|
||||
UART0 (PA0/U0RX and PA1/U0TX).
|
||||
|
||||
LEDs and Buttons
|
||||
================
|
||||
|
||||
LEDs
|
||||
----
|
||||
|
||||
|
||||
Buttons
|
||||
-------
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/include/board.h
|
||||
*
|
||||
* Copyright (C) 2019 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 __CONFIG_LAUNCH_CC1310_INCLUDE_BOARD_H
|
||||
#define __CONFIG_LAUNCH_CC1310_INCLUDE_BOARD_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Clocking *****************************************************************/
|
||||
|
||||
/* Frequency of the ARM core clock */
|
||||
|
||||
#define SYSCLK_FREQUENCY 48000000
|
||||
|
||||
/* Peripheral Clock (PCLK)
|
||||
*
|
||||
* Same frequency as the SYSCLK
|
||||
*/
|
||||
|
||||
#define PCLK_FREQUENCY SYSCLK_FREQUENCY
|
||||
|
||||
/* LED definitions **********************************************************/
|
||||
|
||||
/* The LaunchXL-cc1310 and two LEDs controlled by software: DIO7_GLED (CR1)
|
||||
* and DIO6_RLED (CR2). A high output value illuminates an 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 LEDs.
|
||||
*/
|
||||
|
||||
/* LED index values for use with board_userled() */
|
||||
|
||||
#define BOARD_GLED 0
|
||||
#define BOARD_RLED 1
|
||||
#define BOARD_NLEDS 2
|
||||
|
||||
/* LED bits for use with board_userled_all() */
|
||||
|
||||
#define BOARD_GLED_BIT (1 << BOARD_GLED)
|
||||
#define BOARD_RLED_BIT (1 << BOARD_RLED)
|
||||
|
||||
/* 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/cc1310_autoleds.c. The LEDs are used to
|
||||
* encode OS-related events as follows:
|
||||
*
|
||||
* ------------------- ---------------------------- ---- ----
|
||||
* SYMBOL Meaning GLED RLED
|
||||
* ------------------- ---------------------------- ---- ---- */
|
||||
|
||||
#define LED_STARTED 0 /* NuttX has been started OFF OFF */
|
||||
#define LED_HEAPALLOCATE 1 /* Heap has been allocated OFF ON */
|
||||
#define LED_IRQSENABLED 1 /* Interrupts enabled OFF ON */
|
||||
#define LED_STACKCREATED 2 /* Idle stack created ON OFF */
|
||||
#define LED_INIRQ 3 /* In an interrupt N/C GLOW */
|
||||
#define LED_SIGNAL 3 /* In a signal handler N/C GLOW */
|
||||
#define LED_ASSERTION 3 /* An assertion failed N/C GLOW */
|
||||
#define LED_PANIC 4 /* The system has crashed OFF BLINK */
|
||||
#undef LED_IDLE /* MCU is is sleep mode -Not used- */
|
||||
|
||||
/* Thus iF GLED is statically on, NuttX has successfully booted and is,
|
||||
* apparently, running normally. A soft glow of the RLED means that the
|
||||
* board is taking interrupts. If GLED is off and GLED is flashing at
|
||||
* approximately 2Hz, then a fatal error has been detected and the system
|
||||
* has halted.
|
||||
*/
|
||||
|
||||
/* Button definitions *******************************************************/
|
||||
|
||||
/* Pin configuration ********************************************************/
|
||||
|
||||
#ifdef CONFIG_TIVA_UART0
|
||||
/* UART0:
|
||||
*
|
||||
* The on-board XDS110 Debugger provide a USB virtual serial console using
|
||||
* UART0 (PA0/U0RX and PA1/U0TX).
|
||||
*/
|
||||
|
||||
# define GPIO_UART0_RX &g_gpio_uart0_rx
|
||||
# define GPIO_UART0_TX &g_gpio_uart0_tx
|
||||
#endif
|
||||
|
||||
/* DMA **********************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
/* Pin configuration ********************************************************/
|
||||
|
||||
struct cc13xx_pinconfig_s; /* Forward reference */
|
||||
|
||||
#ifdef CONFIG_TIVA_UART0
|
||||
extern const struct cc13xx_pinconfig_s g_gpio_uart0_rx;
|
||||
extern const struct cc13xx_pinconfig_s g_gpio_uart0_tx;
|
||||
#endif
|
||||
|
||||
#endif /* __CONFIG_NUCLEO_F303ZE_INCLUDE_BOARD_H */
|
||||
@@ -0,0 +1,41 @@
|
||||
# CONFIG_NSH_DISABLE_DATE is not set
|
||||
CONFIG_ARCH="arm"
|
||||
CONFIG_ARCH_BOARD="launchxl-cc1310"
|
||||
CONFIG_ARCH_BOARD_LAUNCH_CC1310=y
|
||||
CONFIG_ARCH_BUTTONS=y
|
||||
CONFIG_ARCH_CHIP_CC1310=y
|
||||
CONFIG_ARCH_CHIP_CC13X0=y
|
||||
CONFIG_ARCH_CHIP_SIMPLELINK=y
|
||||
CONFIG_ARCH_INTERRUPTSTACK=2048
|
||||
CONFIG_ARCH_IRQBUTTONS=y
|
||||
CONFIG_ARCH_STACKDUMP=y
|
||||
CONFIG_ARMV7M_USEBASEPRI=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=8192
|
||||
CONFIG_BUILTIN=y
|
||||
CONFIG_DISABLE_POLL=y
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_FS_PROCFS=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=81920
|
||||
CONFIG_RAM_START=0x20000000
|
||||
CONFIG_RR_INTERVAL=200
|
||||
CONFIG_SCHED_HPWORK=y
|
||||
CONFIG_SCHED_WAITPID=y
|
||||
CONFIG_SDCLONE_DISABLE=y
|
||||
CONFIG_START_DAY=3
|
||||
CONFIG_START_MONTH=12
|
||||
CONFIG_SYSTEM_NSH=y
|
||||
CONFIG_TIVA_UART0=y
|
||||
CONFIG_UART0_SERIAL_CONSOLE=y
|
||||
CONFIG_USER_ENTRYPOINT="nsh_main"
|
||||
@@ -0,0 +1,125 @@
|
||||
############################################################################
|
||||
# configs/launchxl-cc1310/scripts/Make.defs
|
||||
#
|
||||
# Copyright (C) 2019 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}/.config
|
||||
include ${TOPDIR}/tools/Config.mk
|
||||
include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
|
||||
|
||||
LDSCRIPT = flash.ld
|
||||
|
||||
ifeq ($(WINTOOL),y)
|
||||
# Windows-native toolchains
|
||||
DIRLINK = $(TOPDIR)/tools/copydir.sh
|
||||
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
|
||||
MKDEP = $(TOPDIR)/tools/mkwindeps.sh
|
||||
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
|
||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
|
||||
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}"
|
||||
else
|
||||
# Linux/Cygwin-native toolchain
|
||||
MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT)
|
||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
|
||||
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)
|
||||
endif
|
||||
|
||||
CC = $(CROSSDEV)gcc
|
||||
CXX = $(CROSSDEV)g++
|
||||
CPP = $(CROSSDEV)gcc -E
|
||||
LD = $(CROSSDEV)ld
|
||||
STRIP = $(CROSSDEV)strip --strip-unneeded
|
||||
AR = $(CROSSDEV)ar rcs
|
||||
NM = $(CROSSDEV)nm
|
||||
OBJCOPY = $(CROSSDEV)objcopy
|
||||
OBJDUMP = $(CROSSDEV)objdump
|
||||
|
||||
ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
|
||||
ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
|
||||
|
||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
ARCHOPTIMIZATION = -g
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_DEBUG_NOOPT),y)
|
||||
ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
|
||||
endif
|
||||
|
||||
ARCHCFLAGS = -fno-builtin
|
||||
ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fcheck-new -fno-rtti
|
||||
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
|
||||
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__
|
||||
|
||||
NXFLATLDFLAGS1 = -r -d -warn-common
|
||||
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
|
||||
LDNXFLATFLAGS = -e main -s 2048
|
||||
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDMODULEFLAGS = -r -e module_initialize
|
||||
ifeq ($(WINTOOL),y)
|
||||
LDMODULEFLAGS += -T "${shell cygpath -w $(TOPDIR)/libs/libc/modlib/gnu-elf.ld}"
|
||||
else
|
||||
LDMODULEFLAGS += -T $(TOPDIR)/libs/libc/modlib/gnu-elf.ld
|
||||
endif
|
||||
|
||||
ASMEXT = .S
|
||||
OBJEXT = .o
|
||||
LIBEXT = .a
|
||||
EXEEXT =
|
||||
|
||||
ifneq ($(CROSSDEV),arm-nuttx-elf-)
|
||||
LDFLAGS += -nostartfiles -nodefaultlibs
|
||||
endif
|
||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
LDFLAGS += -g
|
||||
endif
|
||||
|
||||
|
||||
HOSTCC = gcc
|
||||
HOSTINCLUDES = -I.
|
||||
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
|
||||
HOSTLDFLAGS =
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/scripts/flash.ld
|
||||
*
|
||||
* Copyright (C) 2019 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* The CC1310 has 128Kb of FLASH beginning at address 0x0000:0000 and
|
||||
* 20Kb of SRAM beginning at 0x2000:0000
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
flash (rx) : ORIGIN = 0x00000000, LENGTH = 128K
|
||||
sram (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
|
||||
}
|
||||
|
||||
OUTPUT_ARCH(arm)
|
||||
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) }
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
############################################################################
|
||||
# configs/launchxl-cc1310/src/Makefile
|
||||
#
|
||||
# Copyright (C) 2019 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 = cc1310_boot.c cc1310_pinconfig.c
|
||||
|
||||
ifeq ($(CONFIG_LIB_BOARDCTL),y)
|
||||
CSRCS += cc1310_appinit.c cc1310_bringup.c
|
||||
else ifeq ($(CONFIG_BOARD_INITIALIZE),y)
|
||||
CSRCS += cc1310_bringup.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_LEDS),y)
|
||||
CSRCS += cc1310_autoleds.c
|
||||
else
|
||||
CSRCS += cc1310_userleds.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_BUTTONS),y)
|
||||
CSRCS += cc1310_buttons.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TIVA_SSI),y)
|
||||
CSRCS += cc1310_ssi.c
|
||||
endif
|
||||
|
||||
include $(TOPDIR)/configs/Board.mk
|
||||
@@ -0,0 +1,90 @@
|
||||
/****************************************************************************
|
||||
* config/launchxl-cc1310/src/cc1310_appinit.c
|
||||
*
|
||||
* Copyright (C) 2019 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/types.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
#ifdef CONFIG_LIB_BOARDCTL
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_app_initialize
|
||||
*
|
||||
* Description:
|
||||
* Perform application specific initialization. This function is never
|
||||
* called directly from application code, but only indirectly via the
|
||||
* (non-standard) boardctl() interface using the command BOARDIOC_INIT.
|
||||
*
|
||||
* 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 initalization 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int board_app_initialize(uintptr_t arg)
|
||||
{
|
||||
#ifndef CONFIG_BOARD_INITIALIZE
|
||||
/* Perform board initialization */
|
||||
|
||||
return cc1310_bringup();
|
||||
#else
|
||||
return OK;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* CONFIG_LIB_BOARDCTL */
|
||||
@@ -0,0 +1,86 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/src/cc1310_autoleds.c
|
||||
*
|
||||
* Copyright (C) 2019 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 <stdbool.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
|
||||
#include "tiva_gpio.h"
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_initialize
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_initialize(void)
|
||||
{
|
||||
#warning Missing logic
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_on
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_on(int led)
|
||||
{
|
||||
#warning Missing logic
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_off
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_off(int led)
|
||||
{
|
||||
#warning Missing logic
|
||||
}
|
||||
|
||||
#endif /* CONFIG_ARCH_LEDS */
|
||||
@@ -0,0 +1,109 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/src/cc1310_boot.c
|
||||
*
|
||||
* Copyright (C) 2019 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 <stdbool.h>
|
||||
#include <assert.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include <nuttx/clock.h>
|
||||
|
||||
#include "up_arch.h"
|
||||
#include "tiva_start.h"
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: tiva_boardinitialize
|
||||
*
|
||||
* Description:
|
||||
* All Tiva architectures must provide the following entry point. This
|
||||
* entry point is called early in the initialization -- after clocking and
|
||||
* memory have been configured but before caches have been enabled and
|
||||
* before any devices have been initialized.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void tiva_boardinitialize(void)
|
||||
{
|
||||
#ifdef CONFIG_TIVA_SSI
|
||||
/* Configure SSI chip select pins */
|
||||
|
||||
cc1310_ssidev_initialize();
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_LEDS
|
||||
/* Configure on-board LEDs if LED support has been selected. */
|
||||
|
||||
board_autoled_initialize();
|
||||
#endif
|
||||
|
||||
/* TODO: Initialize antenna switch */
|
||||
/* TODO: Shutdown external FLASH */
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 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_intitialize() 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 board initialization */
|
||||
|
||||
(void)cc1310_bringup();
|
||||
}
|
||||
#endif /* CONFIG_BOARD_INITIALIZE */
|
||||
@@ -0,0 +1,95 @@
|
||||
/****************************************************************************
|
||||
* config/launchxl-cc1310/src/cc1310_bringup.c
|
||||
*
|
||||
* Copyright (C) 2019 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/types.h>
|
||||
#include <sys/mount.h>
|
||||
#include <syslog.h>
|
||||
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cc1310_bringup
|
||||
*
|
||||
* Description:
|
||||
* Bring up board features.
|
||||
*
|
||||
* If CONFIG_BOARD_INITIALIZE=y, then this function will be called from
|
||||
* board_initialize().
|
||||
*
|
||||
* If CONFIG_BOARD_INITIALIZE is not selected, but CONFIG_LIB_BOARDCTL=y
|
||||
* then this function will *probably* be called from application logic via
|
||||
* boardctl().
|
||||
*
|
||||
* Otherwise, this function will not be called (which is usually a bad
|
||||
* thing)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int cc1310_bringup(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
#ifdef CONFIG_FS_PROCFS
|
||||
/* Mount the procfs file system */
|
||||
|
||||
ret = mount(NULL, "/proc", "procfs", 0, NULL);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to mount procfs at /proc: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* If we got here then perhaps not all initialization was successful, but
|
||||
* at least enough succeeded to bring-up NSH with perhaps reduced
|
||||
* capabilities.
|
||||
*/
|
||||
|
||||
UNUSED(ret);
|
||||
return OK;
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/src/cc1310_buttons.c
|
||||
*
|
||||
* Copyright (C) 2019 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 "tiva_gpio.h"
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_BUTTONS
|
||||
|
||||
/****************************************************************************
|
||||
* 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)
|
||||
{
|
||||
#warning Missing logic
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 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)
|
||||
{
|
||||
#warning Missing logic
|
||||
return 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_SAMA5_PIO_IRQ must be selected to enable the
|
||||
* overall PIO IRQ feature and CONFIG_SAMA5_PIOB_IRQ must be enabled to
|
||||
* select PIOs to support interrupts on PIOE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#if defined(CONFIG_ARCH_IRQBUTTONS) && defined(CONFIG_TIVA_GPIOP_IRQS)
|
||||
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||
{
|
||||
#if 0
|
||||
irqstate_t flags;
|
||||
int ret = -EINVAL;
|
||||
|
||||
/* Interrupts are supported only on ports P and Q and, hence, only on button SW4 */
|
||||
|
||||
if (id == BUTTON_SW4)
|
||||
{
|
||||
/* The following should be atomic */
|
||||
|
||||
flags = enter_critical_section();
|
||||
|
||||
/* Detach and disable the button interrupt */
|
||||
|
||||
up_disable_irq(IRQ_SW4);
|
||||
irq_detach(IRQ_SW4);
|
||||
|
||||
/* Attach the new handler if so requested */
|
||||
|
||||
if (irqhandler != NULL)
|
||||
{
|
||||
ret = irq_attach(IRQ_SW4, irqhandler, arg);
|
||||
if (ret == OK)
|
||||
{
|
||||
up_enable_irq(IRQ_SW4);
|
||||
}
|
||||
}
|
||||
|
||||
leave_critical_section(flags);
|
||||
}
|
||||
|
||||
return ret;
|
||||
#else
|
||||
#warning Missing logic
|
||||
return -ENOSYS;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_ARCH_BUTTONS */
|
||||
@@ -0,0 +1,68 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/src/cc1310_userleds.c
|
||||
*
|
||||
* Copyright (C) 2019 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 "hardware/tiva_ioc.h"
|
||||
#include "tiva_gpio.h"
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TIVA_UART0
|
||||
/* UART0:
|
||||
*
|
||||
* The on-board XDS110 Debugger provide a USB virtual serial console using
|
||||
* UART0 (PA0/U0RX and PA1/U0TX).
|
||||
*/
|
||||
|
||||
const struct cc13xx_pinconfig_s g_gpio_uart0_rx =
|
||||
{
|
||||
.gpio = GPIO_DIO(0),
|
||||
.ioc = IOC_IOCFG_PORTID(IOC_IOCFG_PORTID_UART0_RX) | IOC_STD_INPUT
|
||||
};
|
||||
|
||||
const struct cc13xx_pinconfig_s g_gpio_uart0_tx =
|
||||
{
|
||||
.gpio = GPIO_DIO(1),
|
||||
.ioc = IOC_IOCFG_PORTID(IOC_IOCFG_PORTID_UART0_TX) | IOC_STD_OUTPUT
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,117 @@
|
||||
/************************************************************************************
|
||||
* configs/launchxl-cc1310/src/cc1310_ssi.c
|
||||
*
|
||||
* Copyright (C) 2019 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 <stdbool.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/spi/spi.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_arch.h"
|
||||
#include "chip.h"
|
||||
#include "tiva_gpio.h"
|
||||
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
#ifdef CONFIG_TIVA_SSI
|
||||
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
************************************************************************************/
|
||||
|
||||
/* Enables debug output from this file */
|
||||
|
||||
#ifdef CONFIG_DEBUG_SPI
|
||||
# define ssi_dumpgpio(m) tiva_dumpgpio(SDCCS_GPIO, m)
|
||||
#else
|
||||
# define ssi_dumpgpio(m)
|
||||
#endif
|
||||
|
||||
/************************************************************************************
|
||||
* Public Functions
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Name: cc1310_ssidev_initialize
|
||||
*
|
||||
* Description:
|
||||
* Called to configure SPI chip select GPIO pins for the DK-TM4C129X.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
void cc1310_ssidev_initialize(void)
|
||||
{
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* The external functions, tiva_ssiselect and tiva_ssistatus must be provided
|
||||
* by board-specific logic. The are implementations of the select and status
|
||||
* methods SPI interface defined by struct spi_ops_s (see include/nuttx/spi/spi.h).
|
||||
* All othermethods (including tiva_ssibus_initialize()) are provided by common
|
||||
* logic. To use this common SPI logic on your board:
|
||||
*
|
||||
* 1. Provide tiva_ssiselect() and tiva_ssistatus() functions in your
|
||||
* board-specific logic. This function will perform chip selection and
|
||||
* status operations using GPIOs in the way your board is configured.
|
||||
* 2. Add a call to tiva_ssibus_initialize() in your low level initialization
|
||||
* logic
|
||||
* 3. The handle returned by tiva_ssibus_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).
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void tiva_ssiselect(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
|
||||
{
|
||||
spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
|
||||
ssi_dumpgpio("tiva_ssiselect() Entry");
|
||||
ssi_dumpgpio("tiva_ssiselect() Exit");
|
||||
}
|
||||
|
||||
uint8_t tiva_ssistatus(FAR struct spi_dev_s *dev, uint32_t devid)
|
||||
{
|
||||
spiinfo("Returning SPI_STATUS_PRESENT\n");
|
||||
return SPI_STATUS_PRESENT;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_TIVA_SSI */
|
||||
@@ -0,0 +1,80 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/src/cc1310_userleds.c
|
||||
*
|
||||
* Copyright (C) 2019 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 <stdbool.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "tiva_gpio.h"
|
||||
#include "launchxl-cc1310.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_userled_initialize
|
||||
****************************************************************************/
|
||||
|
||||
void board_userled_initialize(void)
|
||||
{
|
||||
#warning Missing logic
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_userled
|
||||
****************************************************************************/
|
||||
|
||||
void board_userled(int led, bool ledon)
|
||||
{
|
||||
#warning Missing logic
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_userled_all
|
||||
****************************************************************************/
|
||||
|
||||
void board_userled_all(uint8_t ledset)
|
||||
{
|
||||
#warning Missing logic
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
/****************************************************************************
|
||||
* configs/launchxl-cc1310/src/launchxl-cc1310.h
|
||||
*
|
||||
* Copyright (C) 2019 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 __CONFIG_LAUNCH_CC1310_SRC_LAUNCH_CC1310_H
|
||||
#define __CONFIG_LAUNCH_CC1310_SRC_LAUNCH_CC1310_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: cc1310_bringup
|
||||
*
|
||||
* Description:
|
||||
* Bring up board features.
|
||||
*
|
||||
* If CONFIG_BOARD_INITIALIZE=y, then this function will be called from
|
||||
* board_initialize().
|
||||
*
|
||||
* If CONFIG_BOARD_INITIALIZE is not selected, but CONFIG_LIB_BOARDCTL=y
|
||||
* then this function will *probably* be called from application logic via
|
||||
* boardctl().
|
||||
*
|
||||
* Otherwise, this function will not be called (which is usually a bad
|
||||
* thing)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int cc1310_bringup(void);
|
||||
|
||||
/************************************************************************************
|
||||
* Name: cc1310_ssidev_initialize
|
||||
*
|
||||
* Description:
|
||||
* Called to configure SSI chip select GPIO pins for the LAUNCHXL-CC1310 board.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TIVA_SSI
|
||||
void cc1310_ssidev_initialize(void);
|
||||
#endif
|
||||
|
||||
#endif /* __CONFIG_NUCLEO_F303ZE_INCLUDE_BOARD_H */
|
||||
@@ -128,11 +128,11 @@
|
||||
|
||||
/* Pin configuration ********************************************************/
|
||||
|
||||
struct cc134xx_pinconfig_s; /* Forward reference */
|
||||
struct cc13xx_pinconfig_s; /* Forward reference */
|
||||
|
||||
#ifdef CONFIG_TIVA_UART0
|
||||
extern const struct cc134xx_pinconfig_s g_gpio_uart0_rx;
|
||||
extern const struct cc134xx_pinconfig_s g_gpio_uart0_tx;
|
||||
extern const struct cc13xx_pinconfig_s g_gpio_uart0_rx;
|
||||
extern const struct cc13xx_pinconfig_s g_gpio_uart0_tx;
|
||||
#endif
|
||||
|
||||
#endif /* __CONFIG_NUCLEO_F303ZE_INCLUDE_BOARD_H */
|
||||
|
||||
@@ -54,13 +54,13 @@
|
||||
* UART0 (PA0/U0RX and PA1/U0TX).
|
||||
*/
|
||||
|
||||
const struct cc134xx_pinconfig_s g_gpio_uart0_rx =
|
||||
const struct cc13xx_pinconfig_s g_gpio_uart0_rx =
|
||||
{
|
||||
.gpio = GPIO_DIO(0),
|
||||
.ioc = IOC_IOCFG_PORTID(IOC_IOCFG_PORTID_UART0_RX) | IOC_STD_INPUT
|
||||
};
|
||||
|
||||
const struct cc134xx_pinconfig_s g_gpio_uart0_tx =
|
||||
const struct cc13xx_pinconfig_s g_gpio_uart0_tx =
|
||||
{
|
||||
.gpio = GPIO_DIO(1),
|
||||
.ioc = IOC_IOCFG_PORTID(IOC_IOCFG_PORTID_UART0_TX) | IOC_STD_OUTPUT
|
||||
|
||||
Reference in New Issue
Block a user