Merge pull request #115 from marcoveeneman/various_tiva_improvements

Various tiva improvements
This commit is contained in:
Fabien Poussin 2017-04-23 01:52:07 +02:00 committed by GitHub
commit fa9b5ac5ae
74 changed files with 565 additions and 233 deletions

11
.travis.yml Normal file
View File

@ -0,0 +1,11 @@
language: c
sudo: required
before_install:
- chmod +x tools/travis/before_install.sh
- ./tools/travis/before_install.sh
script:
- chmod +x tools/travis/script.sh
- ./tools/travis/script.sh

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -0,0 +1,13 @@
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c
endif
ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPIO

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file Tiva/ext_lld.c
* @file GPIO/hal_ext_lld.c
* @brief Tiva EXT subsystem low level driver source.
*
* @addtogroup EXT

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file Tiva/ext_lld.h
* @file GPIO/hal_ext_lld.h
* @brief Tiva EXT subsystem low level driver header.
*
* @addtogroup EXT

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/pal_lld.c
* @file GPIO/hal_pal_lld.c
* @brief TM4C123x/TM4C129x PAL subsystem low level driver.
*
* @addtogroup PAL

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/pal_lld.h
* @file GPIO/hal_pal_lld.h
* @brief TM4C123x/TM4C129x PAL subsystem low level driver header.
*
* @addtogroup PAL

View File

@ -0,0 +1,11 @@
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPTM

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/gpt_lld.c
* @file GPTM/hal_gpt_lld.c
* @brief TM4C123x/TM4C129x GPT subsystem low level driver source.
*
* @addtogroup GPT

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/gpt_lld.h
* @file GPTM/hal_gpt_lld.h
* @brief TM4C123x/TM4C129x GPT subsystem low level driver header.
*
* @addtogroup GPT

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file Tiva/LLD/st_lld.c
* @file GPTM/hal_st_lld.c
* @brief ST Driver subsystem low level driver code.
*
* @addtogroup ST

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file Tiva/LLD/st_lld.h
* @file GPTM/hal_st_lld.h
* @brief ST Driver subsystem low level driver header.
* @details This header is designed to be include-able without having to
* include other files from the HAL.

View File

@ -0,0 +1,9 @@
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_I2C TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/I2C

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/i2c_lld.c
* @file I2C/hal_i2c_lld.c
* @brief TM4C123x/TM4C129x I2C subsystem low level driver source.
*
* @addtogroup I2C

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/i2c_lld.h
* @file I2C/hal_i2c_lld.h
* @brief TM4C123x/TM4C129x I2C subsystem low level driver header.
*
* @addtogroup I2C

View File

@ -0,0 +1,9 @@
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_MAC TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/MAC

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/mac_lld.c
* @file MAC/hal_mac_lld.c
* @brief MAC Driver subsystem low level driver source.
*
* @addtogroup MAC

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/mac_lld.h
* @file MAC/hal_mac_lld.h
* @brief MAC Driver subsystem low level driver header.
*
* @addtogroup MAC

View File

@ -0,0 +1,9 @@
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/PWM

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/pwm_lld.c
* @file PWM/hal_pwm_lld.c
* @brief TM4C123x/TM4C129x PWM subsystem low level driver.
*
* @addtogroup PWM

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/pwm_lld.c
* @file PWM/hal_pwm_lld.c
* @brief TM4C123x/TM4C129x PWM subsystem low level driver header.
*
* @addtogroup PWM

View File

@ -0,0 +1,9 @@
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/SSI

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/spi_lld.c
* @file SSI/hal_spi_lld.c
* @brief TM4C123x/TM4C129x SPI subsystem low level driver.
*
* @addtogroup SPI

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/spi_lld.h
* @file SSI/hal_spi_lld.h
* @brief TM4C123x/TM4C129x SPI subsystem low level driver.
*
* @addtogroup SPI

View File

@ -0,0 +1,9 @@
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/UART

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/serial_lld.c
* @file UART/hal_serial_lld.c
* @brief Tiva low level serial driver code.
*
* @addtogroup SERIAL
@ -88,6 +88,70 @@ static const SerialConfig sd_default_config =
UART_CC_CS_SYSCLK
};
#if TIVA_SERIAL_USE_UART0 || defined(__DOXYGEN__)
/** @brief Input buffer for SD1.*/
static uint8_t sd_in_buf1[TIVA_SERIAL_UART0_IN_BUF_SIZE];
/** @brief Output buffer for SD1.*/
static uint8_t sd_out_buf1[TIVA_SERIAL_UART0_OUT_BUF_SIZE];
#endif
#if TIVA_SERIAL_USE_UART1 || defined(__DOXYGEN__)
/** @brief Input buffer for SD2.*/
static uint8_t sd_in_buf2[TIVA_SERIAL_UART1_IN_BUF_SIZE];
/** @brief Output buffer for SD2.*/
static uint8_t sd_out_buf2[TIVA_SERIAL_UART1_OUT_BUF_SIZE];
#endif
#if TIVA_SERIAL_USE_UART2 || defined(__DOXYGEN__)
/** @brief Input buffer for SD3.*/
static uint8_t sd_in_buf3[TIVA_SERIAL_UART2_IN_BUF_SIZE];
/** @brief Output buffer for SD3.*/
static uint8_t sd_out_buf3[TIVA_SERIAL_UART2_OUT_BUF_SIZE];
#endif
#if TIVA_SERIAL_USE_UART3 || defined(__DOXYGEN__)
/** @brief Input buffer for SD4.*/
static uint8_t sd_in_buf4[TIVA_SERIAL_UART3_IN_BUF_SIZE];
/** @brief Output buffer for SD4.*/
static uint8_t sd_out_buf4[TIVA_SERIAL_UART3_OUT_BUF_SIZE];
#endif
#if TIVA_SERIAL_USE_UART4 || defined(__DOXYGEN__)
/** @brief Input buffer for SD5.*/
static uint8_t sd_in_buf5[TIVA_SERIAL_UART4_IN_BUF_SIZE];
/** @brief Output buffer for SD5.*/
static uint8_t sd_out_buf5[TIVA_SERIAL_UART4_OUT_BUF_SIZE];
#endif
#if TIVA_SERIAL_USE_UART5 || defined(__DOXYGEN__)
/** @brief Input buffer for SD6.*/
static uint8_t sd_in_buf6[TIVA_SERIAL_UART5_IN_BUF_SIZE];
/** @brief Output buffer for SD6.*/
static uint8_t sd_out_buf6[TIVA_SERIAL_UART5_OUT_BUF_SIZE];
#endif
#if TIVA_SERIAL_USE_UART6 || defined(__DOXYGEN__)
/** @brief Input buffer for SD7.*/
static uint8_t sd_in_buf7[TIVA_SERIAL_UART6_IN_BUF_SIZE];
/** @brief Output buffer for SD7.*/
static uint8_t sd_out_buf7[TIVA_SERIAL_UART6_OUT_BUF_SIZE];
#endif
#if TIVA_SERIAL_USE_UART7 || defined(__DOXYGEN__)
/** @brief Input buffer for SD8.*/
static uint8_t sd_in_buf8[TIVA_SERIAL_UART7_IN_BUF_SIZE];
/** @brief Output buffer for SD8.*/
static uint8_t sd_out_buf8[TIVA_SERIAL_UART7_OUT_BUF_SIZE];
#endif
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
@ -208,7 +272,7 @@ static void serial_serve_interrupt(SerialDriver *sdp)
while ((HWREG(u + UART_O_FR) & UART_FR_RXFE) == 0) {
osalSysLockFromISR();
if (iqPutI(&sdp->iqueue, HWREG(u + UART_O_DR)) < Q_OK) {
chnAddFlagsI(sdp, SD_OVERRUN_ERROR);
chnAddFlagsI(sdp, SD_QUEUE_FULL_ERROR);
}
osalSysUnlockFromISR();
}
@ -230,10 +294,12 @@ static void serial_serve_interrupt(SerialDriver *sdp)
HWREG(u + UART_O_DR) = b;
}
}
/* TODO: Physical transmission end. */
}
/**
* @brief
* @brief Fill the hardware FIFO of a UART.
*/
static void fifo_load(SerialDriver *sdp)
{
@ -343,13 +409,15 @@ static void notify8(io_queue_t *qp)
/* Driver interrupt handlers. */
/*===========================================================================*/
/**
* @brief UART0 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART0 || defined(__DOXYGEN__)
#if !defined(TIVA_UART0_HANDLER)
#error "TIVA_UART0_HANDLER not defined"
#endif
/**
* @brief UART0 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART0_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -360,10 +428,16 @@ CH_IRQ_HANDLER(TIVA_UART0_HANDLER)
}
#endif
/**
* @brief UART1 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART1 || defined(__DOXYGEN__)
#if !defined(TIVA_UART1_HANDLER)
#error "TIVA_UART1_HANDLER not defined"
#endif
/**
* @brief UART1 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART1_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -374,10 +448,15 @@ CH_IRQ_HANDLER(TIVA_UART1_HANDLER)
}
#endif
/**
* @brief UART2 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART2 || defined(__DOXYGEN__)
#if !defined(TIVA_UART2_HANDLER)
#error "TIVA_UART2_HANDLER not defined"
#endif
/**
* @brief UART2 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART2_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -388,10 +467,15 @@ CH_IRQ_HANDLER(TIVA_UART2_HANDLER)
}
#endif
/**
* @brief UART3 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART3 || defined(__DOXYGEN__)
#if !defined(TIVA_UART3_HANDLER)
#error "TIVA_UART3_HANDLER not defined"
#endif
/**
* @brief UART3 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART3_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -402,10 +486,15 @@ CH_IRQ_HANDLER(TIVA_UART3_HANDLER)
}
#endif
/**
* @brief UART4 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART4 || defined(__DOXYGEN__)
#if !defined(TIVA_UART4_HANDLER)
#error "TIVA_UART4_HANDLER not defined"
#endif
/**
* @brief UART4 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART4_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -416,10 +505,15 @@ CH_IRQ_HANDLER(TIVA_UART4_HANDLER)
}
#endif
/**
* @brief UART5 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART5 || defined(__DOXYGEN__)
#if !defined(TIVA_UART5_HANDLER)
#error "TIVA_UART5_HANDLER not defined"
#endif
/**
* @brief UART5 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART5_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -430,10 +524,15 @@ CH_IRQ_HANDLER(TIVA_UART5_HANDLER)
}
#endif
/**
* @brief UART6 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART6 || defined(__DOXYGEN__)
#if !defined(TIVA_UART6_HANDLER)
#error "TIVA_UART6_HANDLER not defined"
#endif
/**
* @brief UART6 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART6_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -444,10 +543,15 @@ CH_IRQ_HANDLER(TIVA_UART6_HANDLER)
}
#endif
/**
* @brief UART7 IRQ handler.
*/
#if TIVA_SERIAL_USE_UART7 || defined(__DOXYGEN__)
#if !defined(TIVA_UART7_HANDLER)
#error "TIVA_UART7_HANDLER not defined"
#endif
/**
* @brief UART7 interrupt handler.
*
* @isr
*/
CH_IRQ_HANDLER(TIVA_UART7_HANDLER)
{
CH_IRQ_PROLOGUE();
@ -464,46 +568,64 @@ CH_IRQ_HANDLER(TIVA_UART7_HANDLER)
/**
* @brief Low level serial driver initialization.
*
* @notapi
*/
void sd_lld_init(void)
{
#if TIVA_SERIAL_USE_UART0
sdObjectInit(&SD1, NULL, notify1);
sdObjectInit(&SD1);
iqObjectInit(&SD1.iqueue, sd_in_buf1, sizeof sd_in_buf1, NULL, &SD1);
oqObjectInit(&SD1.oqueue, sd_out_buf1, sizeof sd_out_buf1, notify1, &SD1);
SD1.uart = UART0_BASE;
#endif
#if TIVA_SERIAL_USE_UART1
sdObjectInit(&SD2, NULL, notify2);
sdObjectInit(&SD2);
iqObjectInit(&SD2.iqueue, sd_in_buf2, sizeof sd_in_buf2, NULL, &SD2);
oqObjectInit(&SD2.oqueue, sd_out_buf2, sizeof sd_out_buf2, notify2, &SD2);
SD2.uart = UART1_BASE;
#endif
#if TIVA_SERIAL_USE_UART2
sdObjectInit(&SD3, NULL, notify3);
sdObjectInit(&SD3);
iqObjectInit(&SD3.iqueue, sd_in_buf3, sizeof sd_in_buf3, NULL, &SD3);
oqObjectInit(&SD3.oqueue, sd_out_buf3, sizeof sd_out_buf3, notify3, &SD3);
SD3.uart = UART2_BASE;
#endif
#if TIVA_SERIAL_USE_UART3
sdObjectInit(&SD4, NULL, notify4);
sdObjectInit(&SD4);
iqObjectInit(&SD4.iqueue, sd_in_buf4, sizeof sd_in_buf4, NULL, &SD4);
oqObjectInit(&SD4.oqueue, sd_out_buf4, sizeof sd_out_buf4, notify4, &SD4);
SD4.uart = UART3_BASE;
#endif
#if TIVA_SERIAL_USE_UART4
sdObjectInit(&SD5, NULL, notify5);
sdObjectInit(&SD5);
iqObjectInit(&SD5.iqueue, sd_in_buf5, sizeof sd_in_buf5, NULL, &SD5);
oqObjectInit(&SD5.oqueue, sd_out_buf5, sizeof sd_out_buf5, notify5, &SD5);
SD5.uart = UART4_BASE;
#endif
#if TIVA_SERIAL_USE_UART5
sdObjectInit(&SD6, NULL, notify6);
sdObjectInit(&SD6);
iqObjectInit(&SD6.iqueue, sd_in_buf6, sizeof sd_in_buf6, NULL, &SD6);
oqObjectInit(&SD6.oqueue, sd_out_buf6, sizeof sd_out_buf6, notify6, &SD6);
SD6.uart = UART5_BASE;
#endif
#if TIVA_SERIAL_USE_UART6
sdObjectInit(&SD7, NULL, notify7);
sdObjectInit(&SD7);
iqObjectInit(&SD7.iqueue, sd_in_buf7, sizeof sd_in_buf7, NULL, &SD7);
oqObjectInit(&SD7.oqueue, sd_out_buf7, sizeof sd_out_buf7, notify7, &SD7);
SD7.uart = UART6_BASE;
#endif
#if TIVA_SERIAL_USE_UART7
sdObjectInit(&SD8, NULL, notify8);
sdObjectInit(&SD8);
iqObjectInit(&SD8.iqueue, sd_in_buf8, sizeof sd_in_buf8, NULL, &SD8);
oqObjectInit(&SD8.oqueue, sd_out_buf8, sizeof sd_out_buf8, notify8, &SD8);
SD8.uart = UART7_BASE;
#endif
}
@ -515,6 +637,8 @@ void sd_lld_init(void)
* @param[in] config the architecture-dependent serial driver configuration.
* If this parameter is set to @p NULL then a default
* configuration is used.
*
* @notapi
*/
void sd_lld_start(SerialDriver *sdp, const SerialConfig *config)
{
@ -612,6 +736,8 @@ void sd_lld_start(SerialDriver *sdp, const SerialConfig *config)
* interrupt vector.
*
* @param[in] sdp pointer to a @p SerialDriver object
*
* @notapi
*/
void sd_lld_stop(SerialDriver *sdp)
{

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -15,7 +15,7 @@
*/
/**
* @file TIVA/LLD/serial_lld.h
* @file UART/hal_serial_lld.h
* @brief Tiva low level serial driver header.
*
* @addtogroup SERIAL
@ -31,6 +31,15 @@
/* Driver constants. */
/*===========================================================================*/
/**
* @brief Advanced buffering support switch.
* @details This constants enables the advanced buffering support in the
* low level driver, the queue buffer is no more part of the
* @p SerialDriver structure, each driver can have a different
* queue size.
*/
#define SERIAL_ADVANCED_BUFFERING_SUPPORT TRUE
/*===========================================================================*/
/* Driver pre-compile time settings. */
/*===========================================================================*/
@ -39,7 +48,6 @@
* @name Configuration options
* @{
*/
/**
* @brief UART0 driver enable switch.
* @details If set to @p TRUE the support for UART0 is included.
@ -169,8 +177,117 @@
#endif
/**
* @}
* @brief Input buffer size for UART0.
*/
#if !defined(TIVA_SERIAL_UART0_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART0_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART0.
*/
#if !defined(TIVA_SERIAL_UART0_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART0_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Input buffer size for UART1.
*/
#if !defined(TIVA_SERIAL_UART1_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART1_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART1.
*/
#if !defined(TIVA_SERIAL_UART1_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART1_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Input buffer size for UART2.
*/
#if !defined(TIVA_SERIAL_UART2_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART2_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART2.
*/
#if !defined(TIVA_SERIAL_UART2_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART2_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Input buffer size for UART3.
*/
#if !defined(TIVA_SERIAL_UART3_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART3_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART3.
*/
#if !defined(TIVA_SERIAL_UART3_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART3_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Input buffer size for UART4.
*/
#if !defined(TIVA_SERIAL_UART4_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART4_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART4.
*/
#if !defined(TIVA_SERIAL_UART4_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART4_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Input buffer size for UART5.
*/
#if !defined(TIVA_SERIAL_UART5_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART5_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART5.
*/
#if !defined(TIVA_SERIAL_UART5_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART5_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Input buffer size for UART6.
*/
#if !defined(TIVA_SERIAL_UART6_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART6_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART6.
*/
#if !defined(TIVA_SERIAL_UART6_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART6_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Input buffer size for UART7.
*/
#if !defined(TIVA_SERIAL_UART7_IN_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART7_IN_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/**
* @brief Output buffer size for UART7.
*/
#if !defined(TIVA_SERIAL_UART7_OUT_BUF_SIZE) || defined(__DOXYGEN__)
#define TIVA_SERIAL_UART7_OUT_BUF_SIZE SERIAL_BUFFERS_SIZE
#endif
/** @} */
/*===========================================================================*/
/* Derived constants and error checks. */
@ -270,10 +387,6 @@ typedef struct {
input_queue_t iqueue; \
/* Output queue.*/ \
output_queue_t oqueue; \
/* Input circular buffer.*/ \
uint8_t ib[SERIAL_BUFFERS_SIZE]; \
/* Output circular buffer.*/ \
uint8_t ob[SERIAL_BUFFERS_SIZE]; \
/* End of the mandatory fields.*/ \
/* Pointer to the USART registers block.*/ \
uint32_t uart;

View File

@ -0,0 +1,9 @@
ifeq ($(USE_SMART_BUILD),yes)
ifneq ($(findstring HAL_USE_WDG TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
endif
else
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
endif
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/WDT

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -16,7 +16,7 @@
/**
* @file TIVA/wdg_lld.c
* @file WDT/hal_wdg_lld.c
* @brief WDG Driver subsystem low level driver source.
*
* @addtogroup WDG

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -16,7 +16,7 @@
/**
* @file TIVA/wdg_lld.h
* @file WDT/hal_wdg_lld.h
* @brief WDG Driver subsystem low level driver header.
*
* @addtogroup WDG

View File

@ -0,0 +1,2 @@
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c
PLATFORMINC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/uDMA

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -14,6 +14,14 @@
limitations under the License.
*/
/**
* @file uDMA/tiva_udma.c
* @brief DMA helper driver code.
*
* @addtogroup TIVA_DMA
* @{
*/
#include "hal.h"
/* The following macro is only defined if some driver requiring DMA services
@ -139,3 +147,5 @@ void udmaChannelRelease(uint8_t dmach)
}
#endif
/** @} */

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -14,6 +14,14 @@
limitations under the License.
*/
/**
* @file uDMA/tiva_udma.h
* @brief DMA helper driver header.
*
* @addtogroup TIVA_DMA
* @{
*/
#ifndef TIVA_UDMA_H_
#define TIVA_UDMA_H_
@ -150,3 +158,5 @@ extern "C" {
#endif
#endif /* TIVA_UDMA_H_ */
/** @} */

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,58 +1,21 @@
# List of all the TM4C123x platform files.
# Required platform files.
PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C123x/hal_lld.c
# Required include directories.
PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C123x
ifeq ($(USE_SMART_BUILD),yes)
HALCONF := $(strip $(shell cat halconf.h | egrep -e "\#define"))
PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C123x/hal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c
ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c
endif
ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c
endif
ifneq ($(findstring HAL_USE_I2C TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c
endif
ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c
endif
ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c
endif
ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c
endif
ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c
endif
ifneq ($(findstring HAL_USE_WDG TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
endif
else
PLATFORMSRC := ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C123x/hal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
endif
# Required include directories
PLATFORMINC := ${CHIBIOS}/os/hal/ports/common/ARMCMx \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C123x \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/I2C \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/PWM \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/SSI \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/UART \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/uDMA \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/WDT
# Drivers compatible with the platform.
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPIO/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPTM/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/I2C/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/PWM/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/SSI/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/UART/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/uDMA/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/WDT/driver.mk

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,63 +1,22 @@
# List of all the TM4C129x platform files.
# Required platform files.
PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C129x/hal_lld.c
# Required include directories.
PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C129x
ifeq ($(USE_SMART_BUILD),yes)
HALCONF := $(strip $(shell cat halconf.h | egrep -e "\#define"))
PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C129x/hal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c
ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c
endif
ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c
endif
ifneq ($(findstring HAL_USE_I2C TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c
endif
ifneq ($(findstring HAL_USE_MAC TRUE,$(HALCONF)),)
PLATFORMSRC += $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c
endif
ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c
endif
ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c
endif
ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c
endif
ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c
endif
ifneq ($(findstring HAL_USE_WDG TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
endif
else
PLATFORMSRC := ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C129x/hal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
endif
# Required include directories
PLATFORMINC := ${CHIBIOS}/os/hal/ports/common/ARMCMx \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/TM4C129x \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPIO \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/GPTM \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/I2C \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/MAC \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/PWM \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/SSI \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/UART \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/uDMA \
${CHIBIOS_CONTRIB}/os/hal/ports/TIVA/LLD/WDT
# Drivers compatible with the platform.
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPIO/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/GPTM/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/I2C/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/MAC/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/PWM/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/SSI/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/UART/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/uDMA/driver.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/TIVA/LLD/WDT/driver.mk

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2014..2016 Marco Veeneman
Copyright (C) 2014..2017 Marco Veeneman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -0,0 +1,18 @@
#!/bin/sh
set -ex
cd /tmp
sudo apt-get install lib32z1
wget https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2
tar xjf gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2
export PATH=/tmp/gcc-arm-none-eabi-4_9-2015q3/bin:$PATH
arm-none-eabi-gcc --version
cd -
cd ..
mkdir ChibiOS-RT
cd ChibiOS-RT
git clone https://github.com/ChibiOS/ChibiOS.git .

42
tools/travis/script.sh Normal file
View File

@ -0,0 +1,42 @@
#!/bin/sh
set -ex
export PATH=/tmp/gcc-arm-none-eabi-4_9-2015q3/bin:$PATH
git checkout -- .
git clean -xfd
make -C demos/TIVA/RT-TM4C123G-LAUNCHPAD
git checkout -- .
git clean -xfd
make -C demos/TIVA/RT-TM4C1294-LAUNCHPAD
# This demo needs LWIP, it is disabled for now.
# git checkout -- .
# git clean -xfd
# make -C demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP
git checkout -- .
git clean -xfd
make -C testhal/TIVA/TM4C123x/EXT/
git checkout -- .
git clean -xfd
make -C testhal/TIVA/TM4C123x/GPT
git checkout -- .
git clean -xfd
make -C testhal/TIVA/TM4C123x/I2C
git checkout -- .
git clean -xfd
make -C testhal/TIVA/TM4C123x/PWM
git checkout -- .
git clean -xfd
make -C testhal/TIVA/TM4C123x/SPI
git checkout -- .
git clean -xfd
make -C testhal/TIVA/TM4C123x/WDG