aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabien Poussin <fabien.poussin@gmail.com>2017-04-23 01:52:07 +0200
committerGitHub <noreply@github.com>2017-04-23 01:52:07 +0200
commitfa9b5ac5ae2f6df6b0b861547260fddde3b37830 (patch)
tree35e296b08ae1a0503e0b846a1ab8ca9926444ca7
parentd72d463fee0c03931b2a462b687140935a582b44 (diff)
parent7f7665e8f207854a67026dd7865def9eafc9baea (diff)
downloadChibiOS-Contrib-fa9b5ac5ae2f6df6b0b861547260fddde3b37830.tar.gz
ChibiOS-Contrib-fa9b5ac5ae2f6df6b0b861547260fddde3b37830.tar.bz2
ChibiOS-Contrib-fa9b5ac5ae2f6df6b0b861547260fddde3b37830.zip
Merge pull request #115 from marcoveeneman/various_tiva_improvements
Various tiva improvements
-rw-r--r--.travis.yml11
-rw-r--r--demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c2
-rw-r--r--demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h2
-rw-r--r--demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c2
-rw-r--r--demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h2
-rw-r--r--demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c2
-rw-r--r--demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h2
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xC3.ld2
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xD5.ld2
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xE6.ld2
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xH6.ld2
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xKC.ld2
-rw-r--r--os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xNC.ld2
-rw-r--r--os/common/startup/ARMCMx/devices/TM4C123x/cmparams.h2
-rw-r--r--os/common/startup/ARMCMx/devices/TM4C129x/cmparams.h2
-rw-r--r--os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c2
-rw-r--r--os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h2
-rw-r--r--os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c2
-rw-r--r--os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h2
-rw-r--r--os/hal/ports/TIVA/LLD/GPIO/driver.mk13
-rw-r--r--os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/GPTM/driver.mk11
-rw-r--r--os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/I2C/driver.mk9
-rw-r--r--os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/MAC/driver.mk9
-rw-r--r--os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/PWM/driver.mk9
-rw-r--r--os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/SSI/driver.mk9
-rw-r--r--os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/UART/driver.mk9
-rw-r--r--os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c184
-rw-r--r--os/hal/ports/TIVA/LLD/UART/hal_serial_lld.h129
-rw-r--r--os/hal/ports/TIVA/LLD/WDT/driver.mk9
-rw-r--r--os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c4
-rw-r--r--os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.h4
-rw-r--r--os/hal/ports/TIVA/LLD/uDMA/driver.mk2
-rw-r--r--os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c12
-rw-r--r--os/hal/ports/TIVA/LLD/uDMA/tiva_udma.h12
-rw-r--r--os/hal/ports/TIVA/TM4C123x/hal_lld.c2
-rw-r--r--os/hal/ports/TIVA/TM4C123x/hal_lld.h2
-rw-r--r--os/hal/ports/TIVA/TM4C123x/platform.mk71
-rw-r--r--os/hal/ports/TIVA/TM4C123x/tiva_isr.h2
-rw-r--r--os/hal/ports/TIVA/TM4C123x/tiva_registry.h2
-rw-r--r--os/hal/ports/TIVA/TM4C129x/hal_lld.c2
-rw-r--r--os/hal/ports/TIVA/TM4C129x/hal_lld.h2
-rw-r--r--os/hal/ports/TIVA/TM4C129x/platform.mk77
-rw-r--r--os/hal/ports/TIVA/TM4C129x/tiva_isr.h2
-rw-r--r--os/hal/ports/TIVA/TM4C129x/tiva_registry.h2
-rw-r--r--testhal/TIVA/TM4C123x/EXT/main.c2
-rw-r--r--testhal/TIVA/TM4C123x/EXT/mcuconf.h2
-rw-r--r--testhal/TIVA/TM4C123x/GPT/main.c2
-rw-r--r--testhal/TIVA/TM4C123x/GPT/mcuconf.h2
-rw-r--r--testhal/TIVA/TM4C123x/I2C/main.c2
-rw-r--r--testhal/TIVA/TM4C123x/I2C/mcuconf.h2
-rw-r--r--testhal/TIVA/TM4C123x/PWM/main.c2
-rw-r--r--testhal/TIVA/TM4C123x/PWM/mcuconf.h2
-rw-r--r--testhal/TIVA/TM4C123x/SPI/main.c2
-rw-r--r--testhal/TIVA/TM4C123x/SPI/mcuconf.h2
-rw-r--r--testhal/TIVA/TM4C123x/WDG/main.c2
-rw-r--r--testhal/TIVA/TM4C123x/WDG/mcuconf.h2
-rw-r--r--tools/travis/before_install.sh18
-rw-r--r--tools/travis/script.sh42
74 files changed, 558 insertions, 226 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..db398b5
--- /dev/null
+++ b/.travis.yml
@@ -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
diff --git a/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c b/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c
index 5b7e12c..2872f89 100644
--- a/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c
+++ b/demos/TIVA/RT-TM4C123G-LAUNCHPAD/main.c
@@ -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.
diff --git a/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h b/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h
index b5e4213..337e2e1 100644
--- a/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h
+++ b/demos/TIVA/RT-TM4C123G-LAUNCHPAD/mcuconf.h
@@ -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.
diff --git a/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c b/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c
index 83523b1..ac9c3f4 100644
--- a/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c
+++ b/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/main.c
@@ -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.
diff --git a/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h b/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h
index c3e5921..81a0747 100644
--- a/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h
+++ b/demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP/mcuconf.h
@@ -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.
diff --git a/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c b/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c
index ef3957f..22082fe 100644
--- a/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c
+++ b/demos/TIVA/RT-TM4C1294-LAUNCHPAD/main.c
@@ -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.
diff --git a/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h b/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h
index c3e5921..81a0747 100644
--- a/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h
+++ b/demos/TIVA/RT-TM4C1294-LAUNCHPAD/mcuconf.h
@@ -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.
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xC3.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xC3.ld
index da05e8a..9eeaf02 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xC3.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xC3.ld
@@ -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.
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xD5.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xD5.ld
index 1a1c89e..67d33ca 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xD5.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xD5.ld
@@ -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.
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xE6.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xE6.ld
index 254cb3a..83a3edd 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xE6.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xE6.ld
@@ -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.
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xH6.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xH6.ld
index f73f9ec..1affc86 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xH6.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C123xH6.ld
@@ -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.
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xKC.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xKC.ld
index 0463ba0..aef12ea 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xKC.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xKC.ld
@@ -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.
diff --git a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xNC.ld b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xNC.ld
index f1846ca..5e7bdb9 100644
--- a/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xNC.ld
+++ b/os/common/startup/ARMCMx/compilers/GCC/ld/TM4C129xNC.ld
@@ -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.
diff --git a/os/common/startup/ARMCMx/devices/TM4C123x/cmparams.h b/os/common/startup/ARMCMx/devices/TM4C123x/cmparams.h
index 067a751..d2693b0 100644
--- a/os/common/startup/ARMCMx/devices/TM4C123x/cmparams.h
+++ b/os/common/startup/ARMCMx/devices/TM4C123x/cmparams.h
@@ -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.
diff --git a/os/common/startup/ARMCMx/devices/TM4C129x/cmparams.h b/os/common/startup/ARMCMx/devices/TM4C129x/cmparams.h
index 69d1e01..b73032b 100644
--- a/os/common/startup/ARMCMx/devices/TM4C129x/cmparams.h
+++ b/os/common/startup/ARMCMx/devices/TM4C129x/cmparams.h
@@ -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.
diff --git a/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c b/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c
index 2bbbc4c..870b4cb 100644
--- a/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c
+++ b/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.c
@@ -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.
diff --git a/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h b/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h
index 7660c09..8f2aacf 100644
--- a/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h
+++ b/os/hal/boards/TI_TM4C123G_LAUNCHPAD/board.h
@@ -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.
diff --git a/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c b/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c
index 437dcf8..bbfdb88 100644
--- a/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c
+++ b/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.c
@@ -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.
diff --git a/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h b/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h
index 57fd268..611a580 100644
--- a/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h
+++ b/os/hal/boards/TI_TM4C1294_LAUNCHPAD/board.h
@@ -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.
diff --git a/os/hal/ports/TIVA/LLD/GPIO/driver.mk b/os/hal/ports/TIVA/LLD/GPIO/driver.mk
new file mode 100644
index 0000000..121ef57
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/GPIO/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c b/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c
index d0788f4..40f06f9 100644
--- a/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c
+++ b/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.h b/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.h
index 08accb2..731f455 100644
--- a/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.h
+++ b/os/hal/ports/TIVA/LLD/GPIO/hal_ext_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c b/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c
index 9adbf11..41fb3cd 100644
--- a/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c
+++ b/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.h b/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.h
index a2d84ac..cf14bfb 100644
--- a/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.h
+++ b/os/hal/ports/TIVA/LLD/GPIO/hal_pal_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPTM/driver.mk b/os/hal/ports/TIVA/LLD/GPTM/driver.mk
new file mode 100644
index 0000000..f003ce4
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/GPTM/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c b/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c
index 60d2b82..8fb02f5 100644
--- a/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c
+++ b/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.h b/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.h
index 88a6809..6b4196f 100644
--- a/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.h
+++ b/os/hal/ports/TIVA/LLD/GPTM/hal_gpt_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c b/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c
index d87652b..baa7112 100644
--- a/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c
+++ b/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h b/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h
index cd076d6..a0b4dfc 100644
--- a/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h
+++ b/os/hal/ports/TIVA/LLD/GPTM/hal_st_lld.h
@@ -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.
diff --git a/os/hal/ports/TIVA/LLD/I2C/driver.mk b/os/hal/ports/TIVA/LLD/I2C/driver.mk
new file mode 100644
index 0000000..d327a19
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/I2C/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c b/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c
index cf70dca..fd7395f 100644
--- a/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c
+++ b/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.h b/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.h
index 4eabda8..66669f1 100644
--- a/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.h
+++ b/os/hal/ports/TIVA/LLD/I2C/hal_i2c_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/MAC/driver.mk b/os/hal/ports/TIVA/LLD/MAC/driver.mk
new file mode 100644
index 0000000..3847ce8
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/MAC/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c b/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c
index 7c33a85..1f1f220 100644
--- a/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c
+++ b/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.h b/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.h
index 98036bb..407bf6c 100644
--- a/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.h
+++ b/os/hal/ports/TIVA/LLD/MAC/hal_mac_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/PWM/driver.mk b/os/hal/ports/TIVA/LLD/PWM/driver.mk
new file mode 100644
index 0000000..0c82d6f
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/PWM/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c b/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c
index 964f45b..6f4535c 100644
--- a/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c
+++ b/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.h b/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.h
index 7ddbd4d..3fca631 100644
--- a/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.h
+++ b/os/hal/ports/TIVA/LLD/PWM/hal_pwm_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/SSI/driver.mk b/os/hal/ports/TIVA/LLD/SSI/driver.mk
new file mode 100644
index 0000000..6f71487
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/SSI/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c b/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c
index 42efca6..98defed 100644
--- a/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c
+++ b/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.h b/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.h
index dd49e84..64560eb 100644
--- a/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.h
+++ b/os/hal/ports/TIVA/LLD/SSI/hal_spi_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/UART/driver.mk b/os/hal/ports/TIVA/LLD/UART/driver.mk
new file mode 100644
index 0000000..e23dc82
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/UART/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c b/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c
index 2e3b213..f1bda8d 100644
--- a/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c
+++ b/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.c
@@ -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
+
+#if TIVA_SERIAL_USE_UART1 || defined(__DOXYGEN__)
+#if !defined(TIVA_UART1_HANDLER)
+#error "TIVA_UART1_HANDLER not defined"
+#endif
/**
- * @brief UART1 IRQ handler.
+ * @brief UART1 interrupt handler.
+ *
+ * @isr
*/
-#if TIVA_SERIAL_USE_UART1 || defined(__DOXYGEN__)
CH_IRQ_HANDLER(TIVA_UART1_HANDLER)
{
CH_IRQ_PROLOGUE();
@@ -374,10 +448,15 @@ CH_IRQ_HANDLER(TIVA_UART1_HANDLER)
}
#endif
+#if TIVA_SERIAL_USE_UART2 || defined(__DOXYGEN__)
+#if !defined(TIVA_UART2_HANDLER)
+#error "TIVA_UART2_HANDLER not defined"
+#endif
/**
- * @brief UART2 IRQ handler.
+ * @brief UART2 interrupt handler.
+ *
+ * @isr
*/
-#if TIVA_SERIAL_USE_UART2 || defined(__DOXYGEN__)
CH_IRQ_HANDLER(TIVA_UART2_HANDLER)
{
CH_IRQ_PROLOGUE();
@@ -388,10 +467,15 @@ CH_IRQ_HANDLER(TIVA_UART2_HANDLER)
}
#endif
+#if TIVA_SERIAL_USE_UART3 || defined(__DOXYGEN__)
+#if !defined(TIVA_UART3_HANDLER)
+#error "TIVA_UART3_HANDLER not defined"
+#endif
/**
- * @brief UART3 IRQ handler.
+ * @brief UART3 interrupt handler.
+ *
+ * @isr
*/
-#if TIVA_SERIAL_USE_UART3 || defined(__DOXYGEN__)
CH_IRQ_HANDLER(TIVA_UART3_HANDLER)
{
CH_IRQ_PROLOGUE();
@@ -402,10 +486,15 @@ CH_IRQ_HANDLER(TIVA_UART3_HANDLER)
}
#endif
+#if TIVA_SERIAL_USE_UART4 || defined(__DOXYGEN__)
+#if !defined(TIVA_UART4_HANDLER)
+#error "TIVA_UART4_HANDLER not defined"
+#endif
/**
- * @brief UART4 IRQ handler.
+ * @brief UART4 interrupt handler.
+ *
+ * @isr
*/
-#if TIVA_SERIAL_USE_UART4 || defined(__DOXYGEN__)
CH_IRQ_HANDLER(TIVA_UART4_HANDLER)
{
CH_IRQ_PROLOGUE();
@@ -416,10 +505,15 @@ CH_IRQ_HANDLER(TIVA_UART4_HANDLER)
}
#endif
+#if TIVA_SERIAL_USE_UART5 || defined(__DOXYGEN__)
+#if !defined(TIVA_UART5_HANDLER)
+#error "TIVA_UART5_HANDLER not defined"
+#endif
/**
- * @brief UART5 IRQ handler.
+ * @brief UART5 interrupt handler.
+ *
+ * @isr
*/
-#if TIVA_SERIAL_USE_UART5 || defined(__DOXYGEN__)
CH_IRQ_HANDLER(TIVA_UART5_HANDLER)
{
CH_IRQ_PROLOGUE();
@@ -430,10 +524,15 @@ CH_IRQ_HANDLER(TIVA_UART5_HANDLER)
}
#endif
+#if TIVA_SERIAL_USE_UART6 || defined(__DOXYGEN__)
+#if !defined(TIVA_UART6_HANDLER)
+#error "TIVA_UART6_HANDLER not defined"
+#endif
/**
- * @brief UART6 IRQ handler.
+ * @brief UART6 interrupt handler.
+ *
+ * @isr
*/
-#if TIVA_SERIAL_USE_UART6 || defined(__DOXYGEN__)
CH_IRQ_HANDLER(TIVA_UART6_HANDLER)
{
CH_IRQ_PROLOGUE();
@@ -444,10 +543,15 @@ CH_IRQ_HANDLER(TIVA_UART6_HANDLER)
}
#endif
+#if TIVA_SERIAL_USE_UART7 || defined(__DOXYGEN__)
+#if !defined(TIVA_UART7_HANDLER)
+#error "TIVA_UART7_HANDLER not defined"
+#endif
/**
- * @brief UART7 IRQ handler.
+ * @brief UART7 interrupt handler.
+ *
+ * @isr
*/
-#if TIVA_SERIAL_USE_UART7 || defined(__DOXYGEN__)
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)
{
diff --git a/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.h b/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.h
index d52828c..bde999e 100644
--- a/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.h
+++ b/os/hal/ports/TIVA/LLD/UART/hal_serial_lld.h
@@ -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;
diff --git a/os/hal/ports/TIVA/LLD/WDT/driver.mk b/os/hal/ports/TIVA/LLD/WDT/driver.mk
new file mode 100644
index 0000000..867d0e6
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/WDT/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c b/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
index ddd01e0..705fce6 100644
--- a/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
+++ b/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.c
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.h b/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.h
index 77badb3..0f694c5 100644
--- a/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.h
+++ b/os/hal/ports/TIVA/LLD/WDT/hal_wdg_lld.h
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/uDMA/driver.mk b/os/hal/ports/TIVA/LLD/uDMA/driver.mk
new file mode 100644
index 0000000..3a2d929
--- /dev/null
+++ b/os/hal/ports/TIVA/LLD/uDMA/driver.mk
@@ -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
diff --git a/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c b/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c
index bb379cb..2d18ff5 100644
--- a/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c
+++ b/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.c
@@ -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
+
+/** @} */
diff --git a/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.h b/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.h
index 0157277..cf90399 100644
--- a/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.h
+++ b/os/hal/ports/TIVA/LLD/uDMA/tiva_udma.h
@@ -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_ */
+
+/** @} */
diff --git a/os/hal/ports/TIVA/TM4C123x/hal_lld.c b/os/hal/ports/TIVA/TM4C123x/hal_lld.c
index 74a6651..10cd903 100644
--- a/os/hal/ports/TIVA/TM4C123x/hal_lld.c
+++ b/os/hal/ports/TIVA/TM4C123x/hal_lld.c
@@ -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.
diff --git a/os/hal/ports/TIVA/TM4C123x/hal_lld.h b/os/hal/ports/TIVA/TM4C123x/hal_lld.h
index 10936c3..5937b88 100644
--- a/os/hal/ports/TIVA/TM4C123x/hal_lld.h
+++ b/os/hal/ports/TIVA/TM4C123x/hal_lld.h
@@ -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.
diff --git a/os/hal/ports/TIVA/TM4C123x/platform.mk b/os/hal/ports/TIVA/TM4C123x/platform.mk
index ae1ea08..2544696 100644
--- a/os/hal/ports/TIVA/TM4C123x/platform.mk
+++ b/os/hal/ports/TIVA/TM4C123x/platform.mk
@@ -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
diff --git a/os/hal/ports/TIVA/TM4C123x/tiva_isr.h b/os/hal/ports/TIVA/TM4C123x/tiva_isr.h
index 9d41434..f4bec51 100644
--- a/os/hal/ports/TIVA/TM4C123x/tiva_isr.h
+++ b/os/hal/ports/TIVA/TM4C123x/tiva_isr.h
@@ -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.
diff --git a/os/hal/ports/TIVA/TM4C123x/tiva_registry.h b/os/hal/ports/TIVA/TM4C123x/tiva_registry.h
index 4ff9f60..7604936 100644
--- a/os/hal/ports/TIVA/TM4C123x/tiva_registry.h
+++ b/os/hal/ports/TIVA/TM4C123x/tiva_registry.h
@@ -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.
diff --git a/os/hal/ports/TIVA/TM4C129x/hal_lld.c b/os/hal/ports/TIVA/TM4C129x/hal_lld.c
index e12ab5e..7af3cc4 100644
--- a/os/hal/ports/TIVA/TM4C129x/hal_lld.c
+++ b/os/hal/ports/TIVA/TM4C129x/hal_lld.c
@@ -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.
diff --git a/os/hal/ports/TIVA/TM4C129x/hal_lld.h b/os/hal/ports/TIVA/TM4C129x/hal_lld.h
index 3768957..1080fae 100644
--- a/os/hal/ports/TIVA/TM4C129x/hal_lld.h
+++ b/os/hal/ports/TIVA/TM4C129x/hal_lld.h
@@ -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.
diff --git a/os/hal/ports/TIVA/TM4C129x/platform.mk b/os/hal/ports/TIVA/TM4C129x/platform.mk
index 18ed48d..fb2dc4a 100644
--- a/os/hal/ports/TIVA/TM4C129x/platform.mk
+++ b/os/hal/ports/TIVA/TM4C129x/platform.mk
@@ -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
diff --git a/os/hal/ports/TIVA/TM4C129x/tiva_isr.h b/os/hal/ports/TIVA/TM4C129x/tiva_isr.h
index 330d5c6..3db9ba3 100644
--- a/os/hal/ports/TIVA/TM4C129x/tiva_isr.h
+++ b/os/hal/ports/TIVA/TM4C129x/tiva_isr.h
@@ -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.
diff --git a/os/hal/ports/TIVA/TM4C129x/tiva_registry.h b/os/hal/ports/TIVA/TM4C129x/tiva_registry.h
index 235877f..163d59c 100644
--- a/os/hal/ports/TIVA/TM4C129x/tiva_registry.h
+++ b/os/hal/ports/TIVA/TM4C129x/tiva_registry.h
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/EXT/main.c b/testhal/TIVA/TM4C123x/EXT/main.c
index 6da2ef9..2326375 100644
--- a/testhal/TIVA/TM4C123x/EXT/main.c
+++ b/testhal/TIVA/TM4C123x/EXT/main.c
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/EXT/mcuconf.h b/testhal/TIVA/TM4C123x/EXT/mcuconf.h
index 447a40d..e936c02 100644
--- a/testhal/TIVA/TM4C123x/EXT/mcuconf.h
+++ b/testhal/TIVA/TM4C123x/EXT/mcuconf.h
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/GPT/main.c b/testhal/TIVA/TM4C123x/GPT/main.c
index f92b13b..e739075 100644
--- a/testhal/TIVA/TM4C123x/GPT/main.c
+++ b/testhal/TIVA/TM4C123x/GPT/main.c
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/GPT/mcuconf.h b/testhal/TIVA/TM4C123x/GPT/mcuconf.h
index aabe6c5..9bcd30d 100644
--- a/testhal/TIVA/TM4C123x/GPT/mcuconf.h
+++ b/testhal/TIVA/TM4C123x/GPT/mcuconf.h
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/I2C/main.c b/testhal/TIVA/TM4C123x/I2C/main.c
index 5c5e704..c46bec9 100644
--- a/testhal/TIVA/TM4C123x/I2C/main.c
+++ b/testhal/TIVA/TM4C123x/I2C/main.c
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/I2C/mcuconf.h b/testhal/TIVA/TM4C123x/I2C/mcuconf.h
index 45bee44..514857e 100644
--- a/testhal/TIVA/TM4C123x/I2C/mcuconf.h
+++ b/testhal/TIVA/TM4C123x/I2C/mcuconf.h
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/PWM/main.c b/testhal/TIVA/TM4C123x/PWM/main.c
index 14fd967..b5f091b 100644
--- a/testhal/TIVA/TM4C123x/PWM/main.c
+++ b/testhal/TIVA/TM4C123x/PWM/main.c
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/PWM/mcuconf.h b/testhal/TIVA/TM4C123x/PWM/mcuconf.h
index 159cb8c..29119bd 100644
--- a/testhal/TIVA/TM4C123x/PWM/mcuconf.h
+++ b/testhal/TIVA/TM4C123x/PWM/mcuconf.h
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/SPI/main.c b/testhal/TIVA/TM4C123x/SPI/main.c
index d4bbad2..91cb02a 100644
--- a/testhal/TIVA/TM4C123x/SPI/main.c
+++ b/testhal/TIVA/TM4C123x/SPI/main.c
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/SPI/mcuconf.h b/testhal/TIVA/TM4C123x/SPI/mcuconf.h
index 447a40d..e936c02 100644
--- a/testhal/TIVA/TM4C123x/SPI/mcuconf.h
+++ b/testhal/TIVA/TM4C123x/SPI/mcuconf.h
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/WDG/main.c b/testhal/TIVA/TM4C123x/WDG/main.c
index 63f76f5..73c2d61 100644
--- a/testhal/TIVA/TM4C123x/WDG/main.c
+++ b/testhal/TIVA/TM4C123x/WDG/main.c
@@ -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.
diff --git a/testhal/TIVA/TM4C123x/WDG/mcuconf.h b/testhal/TIVA/TM4C123x/WDG/mcuconf.h
index 2ccd4c3..3f9030b 100644
--- a/testhal/TIVA/TM4C123x/WDG/mcuconf.h
+++ b/testhal/TIVA/TM4C123x/WDG/mcuconf.h
@@ -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.
diff --git a/tools/travis/before_install.sh b/tools/travis/before_install.sh
new file mode 100644
index 0000000..0769759
--- /dev/null
+++ b/tools/travis/before_install.sh
@@ -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 .
diff --git a/tools/travis/script.sh b/tools/travis/script.sh
new file mode 100644
index 0000000..457a38f
--- /dev/null
+++ b/tools/travis/script.sh
@@ -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