You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/02/06 09:09:22 UTC
[incubator-nuttx] 03/03: net/can: add an option to control CAN EXTID support
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit bc178344a9d023f85a89ceb4fa6a83388ccce9b8
Author: raiden00pl <ra...@railab.me>
AuthorDate: Sat Feb 5 16:40:43 2022 +0100
net/can: add an option to control CAN EXTID support
---
arch/arm/src/stm32/stm32_can_sock.c | 6 +++---
arch/arm/src/stm32/stm32_fdcan_sock.c | 8 ++++----
boards/arm/stm32/nucleo-f446re/configs/cansock/defconfig | 2 +-
net/can/Kconfig | 7 +++++++
4 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/arch/arm/src/stm32/stm32_can_sock.c b/arch/arm/src/stm32/stm32_can_sock.c
index ff13b54..8b35726 100644
--- a/arch/arm/src/stm32/stm32_can_sock.c
+++ b/arch/arm/src/stm32/stm32_can_sock.c
@@ -881,7 +881,7 @@ static int stm32can_transmit(FAR struct stm32_can_s *priv)
/* Set up the ID, standard 11-bit or extended 29-bit. */
-#ifdef CONFIG_CAN_EXTID
+#ifdef CONFIG_NET_CAN_EXTID
regval &= ~CAN_TIR_EXID_MASK;
if (frame->can_id & CAN_EFF_FLAG)
{
@@ -1205,7 +1205,7 @@ static int stm32can_rxinterrupt_work(FAR struct stm32_can_s *priv, int rxmb)
regval = stm32can_getreg(priv, STM32_CAN_RIR_OFFSET(rxmb));
-#ifdef CONFIG_CAN_EXTID
+#ifdef CONFIG_NET_CAN_EXTID
if ((regval & CAN_RIR_IDE) != 0)
{
frame->can_id = (regval & CAN_RIR_EXID_MASK) >> CAN_RIR_EXID_SHIFT;
@@ -1277,7 +1277,7 @@ static int stm32can_rxinterrupt_work(FAR struct stm32_can_s *priv, int rxmb)
/* Release the FIFO */
-#ifndef CONFIG_CAN_EXTID
+#ifndef CONFIG_NET_CAN_EXTID
errout:
#endif
regval = stm32can_getreg(priv, STM32_CAN_RFR_OFFSET(rxmb));
diff --git a/arch/arm/src/stm32/stm32_fdcan_sock.c b/arch/arm/src/stm32/stm32_fdcan_sock.c
index fafecbe..6d61d06 100644
--- a/arch/arm/src/stm32/stm32_fdcan_sock.c
+++ b/arch/arm/src/stm32/stm32_fdcan_sock.c
@@ -520,14 +520,14 @@ struct stm32_fdcan_s
const struct stm32_config_s *config;
uint8_t state; /* See enum can_state_s */
-#ifdef CONFIG_CAN_EXTID
+#ifdef CONFIG_NET_CAN_EXTID
uint8_t nextalloc; /* Number of allocated extended filters */
#endif
uint8_t nstdalloc; /* Number of allocated standard filters */
uint32_t nbtp; /* Current nominal bit timing */
uint32_t dbtp; /* Current data bit timing */
-#ifdef CONFIG_CAN_EXTID
+#ifdef CONFIG_NET_CAN_EXTID
uint32_t extfilters[2]; /* Extended filter bit allocator. 2*32=64 */
#endif
uint32_t stdfilters[4]; /* Standard filter bit allocator. 4*32=128 */
@@ -1718,7 +1718,7 @@ static int fdcan_send(FAR struct stm32_fdcan_s *priv)
* Extended Identifier (XTD) - Depends on configuration.
*/
-#ifdef CONFIG_CAN_EXTID
+#ifdef CONFIG_NET_CAN_EXTID
if (frame->can_id & CAN_EFF_FLAG)
{
DEBUGASSERT(frame->can_id < (1 << 29));
@@ -2409,7 +2409,7 @@ static void fdcan_receive(FAR struct stm32_fdcan_s *priv,
frame->can_id |= CAN_RTR_FLAG;
}
-#ifdef CONFIG_CAN_EXTID
+#ifdef CONFIG_NET_CAN_EXTID
if ((regval & BUFFER_R0_XTD) != 0)
{
/* Save the extended ID of the newly received message */
diff --git a/boards/arm/stm32/nucleo-f446re/configs/cansock/defconfig b/boards/arm/stm32/nucleo-f446re/configs/cansock/defconfig
index 462bdba..96e4263 100644
--- a/boards/arm/stm32/nucleo-f446re/configs/cansock/defconfig
+++ b/boards/arm/stm32/nucleo-f446re/configs/cansock/defconfig
@@ -24,7 +24,6 @@ CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARD_LATE_INITIALIZE=y
CONFIG_BOARD_LOOPSPERMSEC=8499
CONFIG_BUILTIN=y
-CONFIG_CAN_EXTID=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_FS_PROCFS=y
@@ -37,6 +36,7 @@ CONFIG_NETDEVICES=y
CONFIG_NETDEV_IFINDEX=y
CONFIG_NETDEV_LATEINIT=y
CONFIG_NET_CAN=y
+CONFIG_NET_CAN_EXTID=y
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_STATISTICS=y
CONFIG_NSH_BUILTIN_APPS=y
diff --git a/net/can/Kconfig b/net/can/Kconfig
index cd29c36..85c77c0 100644
--- a/net/can/Kconfig
+++ b/net/can/Kconfig
@@ -36,6 +36,13 @@ config CAN_CONNS
---help---
Maximum number of CAN connections (all tasks).
+config NET_CAN_EXTID
+ bool "Enable CAN extended IDs"
+ default n
+ ---help---
+ Enables support for the 29-bit extended ID in SocketCAN stack.
+ Default Standard 11-bit IDs.
+
config NET_CAN_CANFD
bool "Enable CAN FD support"
default y