You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by je...@apache.org on 2023/01/18 11:15:59 UTC

[nuttx] branch master updated (a4c9da9280 -> c19b5eeb8d)

This is an automated email from the ASF dual-hosted git repository.

jerpelea pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


    from a4c9da9280 xtensa/esp32: Fix ESP32_SPIRAM_USER_HEAP under Protected mode
     new 5dbd082fad Bugfix of typo in tiva_can.c
     new c19b5eeb8d Add support of CAN character device for tm4c1294 launchpad.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 arch/arm/src/tiva/common/tiva_can.c                |  2 +-
 boards/arm/tiva/tm4c1294-launchpad/Kconfig         | 42 ++++++++++
 boards/arm/tiva/tm4c1294-launchpad/include/board.h | 12 +++
 boards/arm/tiva/tm4c1294-launchpad/src/Makefile    |  4 +
 .../tm4c1294-launchpad/src/tm4c1294-launchpad.h    | 18 ++++-
 .../arm/tiva/tm4c1294-launchpad/src/tm4c_bringup.c | 22 ++++++
 .../tm4c1294-launchpad/src/tm4c_can.c}             | 91 +++++++++++++---------
 7 files changed, 153 insertions(+), 38 deletions(-)
 copy boards/arm/{lpc17xx_40xx/lx_cpu/src/lpc17_40_can.c => tiva/tm4c1294-launchpad/src/tm4c_can.c} (60%)


[nuttx] 02/02: Add support of CAN character device for tm4c1294 launchpad.

Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jerpelea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit c19b5eeb8d8f37394c79ff85876c7ba6d846fc12
Author: David <dv...@gmail.com>
AuthorDate: Mon Jan 16 14:29:31 2023 +0100

    Add support of CAN character device for tm4c1294 launchpad.
---
 boards/arm/tiva/tm4c1294-launchpad/Kconfig         |  42 +++++++
 boards/arm/tiva/tm4c1294-launchpad/include/board.h |  12 ++
 boards/arm/tiva/tm4c1294-launchpad/src/Makefile    |   4 +
 .../tm4c1294-launchpad/src/tm4c1294-launchpad.h    |  18 ++-
 .../arm/tiva/tm4c1294-launchpad/src/tm4c_bringup.c |  22 ++++
 boards/arm/tiva/tm4c1294-launchpad/src/tm4c_can.c  | 136 +++++++++++++++++++++
 6 files changed, 233 insertions(+), 1 deletion(-)

diff --git a/boards/arm/tiva/tm4c1294-launchpad/Kconfig b/boards/arm/tiva/tm4c1294-launchpad/Kconfig
index ec8c2464fa..6b28e98da6 100644
--- a/boards/arm/tiva/tm4c1294-launchpad/Kconfig
+++ b/boards/arm/tiva/tm4c1294-launchpad/Kconfig
@@ -72,4 +72,46 @@ config TM4C1294_LAUNCHPAD_TIMER_ALTCLK
 
 endif # TM4C1294_LAUNCHPAD_TIMER
 endif # TIVA_TIMER32_PERIODIC
+config TM4C1294_LAUNCHPAD_JUMPERS_CAN
+	bool "Use CAN jumpers configuration"
+	default n
+	select TIVA_UART2
+	---help---
+		If set, NuttX will assume the jumpers JP4 and JP5 are set in CAN configuration.
+		This means UART2 will be connected to the ICDI serial port.
+		
+choice
+	prompt "UART2 Rx pin selection"
+	depends on TIVA_UART2
+	default TM4C1294_LAUNCHPAD_UART2_RX_A6
+	
+config TM4C1294_LAUNCHPAD_UART2_RX_A6
+	bool "Use A6 as UART Rx pin"
+	default n
+	depends on TIVA_UART2 && !TM4C1294_LAUNCHPAD_JUMPERS_CAN
+	
+config TM4C1294_LAUNCHPAD_UART2_RX_D4
+	bool "Use D4 as UART Rx pin"
+	default n
+	depends on TIVA_UART2
+	
+endchoice # UART2 Rx pin selection
+
+choice
+	prompt "UART2 Tx pin selection"
+	default TM4C1294_LAUNCHPAD_UART2_TX_A7
+	depends on TIVA_UART2
+	
+config TM4C1294_LAUNCHPAD_UART2_TX_A7
+	bool "Use A7 as UART Tx pin"
+	default n
+	depends on TIVA_UART2 && !TM4C1294_LAUNCHPAD_JUMPERS_CAN
+	
+config TM4C1294_LAUNCHPAD_UART2_TX_D5
+	bool "Use D5 as UART Tx pin"
+	default n
+	depends on TIVA_UART2
+	
+endchoice # UART2 Tx pin selection
+
 endif # ARCH_BOARD_TM4C1294_LAUNCHPAD
diff --git a/boards/arm/tiva/tm4c1294-launchpad/include/board.h b/boards/arm/tiva/tm4c1294-launchpad/include/board.h
index 159f4be6b8..a7b57c1907 100644
--- a/boards/arm/tiva/tm4c1294-launchpad/include/board.h
+++ b/boards/arm/tiva/tm4c1294-launchpad/include/board.h
@@ -190,6 +190,18 @@
 #define GPIO_EN0_LED1     GPIO_EN0_LED1_1
 #define GPIO_EN0_LED2     GPIO_EN0_LED2_1
 
+#if CONFIG_TM4C1294_LAUNCHPAD_UART2_RX_D4
+#define GPIO_UART2_RX     GPIO_UART2_RX_2
+#elif CONFIG_TM4C1294_LAUNCHPAD_UART2_RX_A6
+#define GPIO_UART2_RX     GPIO_UART2_RX_1
+#endif
+
+#if CONFIG_TM4C1294_LAUNCHPAD_UART2_TX_D5
+#define GPIO_UART2_TX     GPIO_UART2_TX_2
+#elif CONFIG_TM4C1294_LAUNCHPAD_UART2_TX_A7
+#define GPIO_UART2_TX     GPIO_UART2_TX_1
+#endif
+
 /* Control pins for BOOST-CC2564MODA plugged into BoosterPack1
  *
  *   --- ------------
diff --git a/boards/arm/tiva/tm4c1294-launchpad/src/Makefile b/boards/arm/tiva/tm4c1294-launchpad/src/Makefile
index 87e3452492..db6912670a 100644
--- a/boards/arm/tiva/tm4c1294-launchpad/src/Makefile
+++ b/boards/arm/tiva/tm4c1294-launchpad/src/Makefile
@@ -36,6 +36,10 @@ ifeq ($(CONFIG_TIVA_ETHERNET),y)
 CSRCS += tm4c_ethernet.c
 endif
 
+ifeq ($(CONFIG_TIVA_CAN),y)
+CSRCS += tm4c_can.c
+endif
+
 ifeq ($(CONFIG_DK_TM4C129X_TIMER),y)
 CSRCS += tm4c_timer.c
 endif
diff --git a/boards/arm/tiva/tm4c1294-launchpad/src/tm4c1294-launchpad.h b/boards/arm/tiva/tm4c1294-launchpad/src/tm4c1294-launchpad.h
index 0836d16df8..b9792254d7 100644
--- a/boards/arm/tiva/tm4c1294-launchpad/src/tm4c1294-launchpad.h
+++ b/boards/arm/tiva/tm4c1294-launchpad/src/tm4c1294-launchpad.h
@@ -41,7 +41,7 @@
 
 #if !defined(CONFIG_TIVA_HCIUART) || !defined(CONFIG_BLUETOOTH_UART)
 #  undef HAVE_HCIUART
-#elif defined(CONFIG_TIVA_UART0_HCIUART)
+#elif defined(CONFIG_TIVA_UART0_HCIUART) && !defined(TM4C1294_LAUNCHPAD_JUMPERS_CAN)
 #  define HCIUART_SERDEV HCIUART0
 #elif defined(CONFIG_TIVA_UART1_HCIUART)
 #  define HCIUART_SERDEV HCIUART1
@@ -77,6 +77,10 @@
 #  undef HAVE_I2CTOOL
 #endif
 
+/* Define the procfs mounting point */
+
+#define TIVA_PROCFS_MOUNTPOINT "/proc"
+
 /* LED definitions **********************************************************/
 
 /* The EK-TM4C1294XL has a four green LEDs.
@@ -211,6 +215,18 @@ int tm4c_bringup(void);
 int tiva_timer_configure(void);
 #endif
 
+/****************************************************************************
+ * Name: tm4c_can_setup
+ *
+ * Description:
+ *   Initialize CAN modules and register the CAN driver.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_TIVA_CAN
+int tm4c_can_setup(void);
+#endif
+
 /****************************************************************************
  * Name: hciuart_dev_initialize
  *
diff --git a/boards/arm/tiva/tm4c1294-launchpad/src/tm4c_bringup.c b/boards/arm/tiva/tm4c1294-launchpad/src/tm4c_bringup.c
index 1288ea5ad0..5d73175e37 100644
--- a/boards/arm/tiva/tm4c1294-launchpad/src/tm4c_bringup.c
+++ b/boards/arm/tiva/tm4c1294-launchpad/src/tm4c_bringup.c
@@ -31,6 +31,7 @@
 #include <nuttx/i2c/i2c_master.h>
 #include <nuttx/sensors/qencoder.h>
 #include <arch/board/board.h>
+#include <nuttx/fs/fs.h>
 
 #include <nuttx/timers/pwm.h>
 
@@ -305,6 +306,17 @@ int tm4c_bringup(void)
 
   tm4c_i2ctool();
 
+#ifdef CONFIG_FS_PROCFS
+  /* Mount the procfs file system */
+
+  ret = nx_mount(NULL, TIVA_PROCFS_MOUNTPOINT, "procfs", 0, NULL);
+  if (ret < 0)
+    {
+      syslog(LOG_ERR, "ERROR: Failed to mount procfs at %s: %d\n",
+             TIVA_PROCFS_MOUNTPOINT, ret);
+    }
+#endif
+
 #ifdef HAVE_PWM
   /* Register PWM drivers */
 
@@ -317,6 +329,16 @@ int tm4c_bringup(void)
   tm4c_qei();
 #endif
 
+#ifdef CONFIG_TIVA_CAN
+  /* Initialize CAN module and register the CAN driver(s) */
+
+  ret = tm4c_can_setup();
+  if (ret < 0)
+    {
+      syslog(LOG_ERR, "ERROR: tm4c_can_setup failed %d\n", ret);
+    }
+#endif
+
 #ifdef HAVE_TIMER
   /* Initialize the timer driver */
 
diff --git a/boards/arm/tiva/tm4c1294-launchpad/src/tm4c_can.c b/boards/arm/tiva/tm4c1294-launchpad/src/tm4c_can.c
new file mode 100644
index 0000000000..5649a4ca4f
--- /dev/null
+++ b/boards/arm/tiva/tm4c1294-launchpad/src/tm4c_can.c
@@ -0,0 +1,136 @@
+/****************************************************************************
+ * boards/arm/tiva/tm4c1294-launchpad/src/tm4c_can.c
+ * Based heavily on tiva_can.c from the tm4c1293-launchpad board
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <errno.h>
+#include <debug.h>
+
+#include <nuttx/can/can.h>
+#include <arch/board/board.h>
+
+#include "chip.h"
+#include "arm_internal.h"
+
+#include "tiva_can.h"
+#include "tm4c1294-launchpad.h"
+
+#include "tiva_enableclks.h"
+#include "tiva_gpio.h"
+#include "hardware/tiva_pinmap.h"
+
+#ifdef CONFIG_CAN
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tm4c_can_setup
+ *
+ * Description:
+ *  Initialize CAN and register the CAN device
+ *
+ ****************************************************************************/
+
+int tm4c_can_setup(void)
+{
+#ifdef CONFIG_TIVA_CAN
+  int ret;
+
+#  ifdef CONFIG_TIVA_CAN0
+  tiva_can0_enableclk();
+
+  ret = tiva_configgpio(GPIO_CAN0_RX);
+
+  if (ret < 0)
+    {
+      goto configgpio_error;
+    }
+
+  ret = tiva_configgpio(GPIO_CAN0_TX);
+
+  if (ret < 0)
+    {
+      goto configgpio_error;
+    }
+
+  /* Call tiva_can_initialize() to get an instance of CAN interface 0
+   * and register it.
+   */
+
+  ret = tiva_can_initialize("/dev/can0", 0);
+  if (ret < 0)
+    {
+      canerr("ERROR:  Failed to get/register CAN interface 0\n");
+      return ret;
+    }
+#  endif /* CONFIG_TIVA_CAN0 */
+
+#  ifdef CONFIG_TIVA_CAN1
+  tiva_can1_enableclk();
+
+  ret = tiva_configgpio(GPIO_CAN1_RX);
+
+  if (ret < 0)
+    {
+      goto configgpio_error;
+    }
+
+  ret = tiva_configgpio(GPIO_CAN1_TX);
+
+  if (ret < 0)
+    {
+      goto configgpio_error;
+    }
+
+  /* Call tiva_can_initialize() to get an instance of CAN interface 1
+   * and register it.
+   */
+
+  ret = tiva_can_initialize("/dev/can1", 1);
+  if (ret < 0)
+    {
+      canerr("ERROR:  Failed to get/register CAN interface 1\n");
+      return ret;
+    }
+#  endif /* CONFIG_TIVA_CAN1 */
+
+  return OK;
+
+configgpio_error:
+  canerr("ERROR: failed to configure CAN GPIO pin.\n");
+  return ret;
+#else
+  return -ENODEV;
+#endif
+}
+
+#endif /* CONFIG_CAN */
+


[nuttx] 01/02: Bugfix of typo in tiva_can.c

Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jerpelea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 5dbd082fadc14e770b289ce5298a9fcfb74381b1
Author: David <dv...@gmail.com>
AuthorDate: Mon Jan 16 14:18:29 2023 +0100

    Bugfix of typo in tiva_can.c
---
 arch/arm/src/tiva/common/tiva_can.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/src/tiva/common/tiva_can.c b/arch/arm/src/tiva/common/tiva_can.c
index 7fd5613f2f..b2da64d2dd 100644
--- a/arch/arm/src/tiva/common/tiva_can.c
+++ b/arch/arm/src/tiva/common/tiva_can.c
@@ -1882,7 +1882,7 @@ static void tivacan_bittiming_set(struct can_dev_s *dev,
   DEBUGASSERT(timing->prescaler > TIVA_CAN_PRESCALER_MIN &&
               timing->prescaler < TIVA_CAN_PRESCALER_MAX);
   DEBUGASSERT(timing->tseg1 > TIVA_CAN_TSEG1_MIN &&
-              timing->tseg1 < TIVA_CAN_PRESCALER_MAX);
+              timing->tseg1 < TIVA_CAN_TSEG1_MAX);
   DEBUGASSERT(timing->tseg2 > TIVA_CAN_TSEG2_MIN &&
               timing->tseg2 < TIVA_CAN_TSEG2_MAX);
   DEBUGASSERT(timing->sjw > TIVA_CAN_SJW_MIN &&