mirror of
https://github.com/apache/nuttx.git
synced 2026-06-04 23:03:27 +08:00
boards/arm/stm32f7: move CAN init logic to a common directory
move CAN init logic to a common directory
This commit is contained in:
+29
-41
@@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* boards/arm/stm32f7/nucleo-f746zg/src/stm32_cansock.c
|
* boards/arm/stm32f7/common/include/stm32_can_setup.h
|
||||||
*
|
*
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
* contributor license agreements. See the NOTICE file distributed with
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
@@ -18,66 +18,54 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H
|
||||||
|
#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <debug.h>
|
|
||||||
|
|
||||||
#include "stm32_can.h"
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Configuration ************************************************************/
|
|
||||||
|
|
||||||
#if !defined(CONFIG_STM32F7_CAN1) && !defined(CONFIG_STM32F7_CAN2)
|
|
||||||
# error "No CAN is enable. Please eneable at least one CAN device"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Public Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: stm32_cansock_setup
|
* Public Data
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Initialize CAN socket interface
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int stm32_cansock_setup(void)
|
#ifdef __cplusplus
|
||||||
|
#define EXTERN extern "C"
|
||||||
|
extern "C"
|
||||||
{
|
{
|
||||||
int ret = OK;
|
#else
|
||||||
|
#define EXTERN extern
|
||||||
UNUSED(ret);
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN1
|
|
||||||
/* Call stm32_caninitialize() to get an instance of the CAN interface */
|
|
||||||
|
|
||||||
ret = stm32_cansockinitialize(1);
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
canerr("ERROR: Failed to get CAN interface %d\n", ret);
|
|
||||||
goto errout;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN2
|
/****************************************************************************
|
||||||
/* Call stm32_caninitialize() to get an instance of the CAN interface */
|
* Inline Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
ret = stm32_cansockinitialize(2);
|
/****************************************************************************
|
||||||
if (ret < 0)
|
* Public Function Prototypes
|
||||||
{
|
****************************************************************************/
|
||||||
canerr("ERROR: Failed to get CAN interface %d\n", ret);
|
|
||||||
goto errout;
|
/****************************************************************************
|
||||||
}
|
* Name: stm32_can_setup
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
|
||||||
|
int stm32_can_setup(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
errout:
|
#undef EXTERN
|
||||||
return ret;
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H */
|
||||||
+29
-41
@@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* boards/arm/stm32f7/nucleo-f722ze/src/stm32_cansock.c
|
* boards/arm/stm32f7/common/include/stm32_cansock_setup.h
|
||||||
*
|
*
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
* contributor license agreements. See the NOTICE file distributed with
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
@@ -18,66 +18,54 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H
|
||||||
|
#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <debug.h>
|
|
||||||
|
|
||||||
#include "stm32_can.h"
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* Configuration ************************************************************/
|
/****************************************************************************
|
||||||
|
* Public Types
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
#if !defined(CONFIG_STM32F7_CAN1) && !defined(CONFIG_STM32F7_CAN2)
|
/****************************************************************************
|
||||||
# error "No CAN is enable. Please eneable at least one CAN device"
|
* Public Data
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define EXTERN extern "C"
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#else
|
||||||
|
#define EXTERN extern
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Inline Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Function Prototypes
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: stm32_cansock_setup
|
* Name: stm32_cansock_setup
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Initialize CAN socket interface
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int stm32_cansock_setup(void)
|
#ifdef CONFIG_STM32F7_CAN_SOCKET
|
||||||
{
|
int stm32_cansock_setup(void);
|
||||||
int ret = OK;
|
|
||||||
|
|
||||||
UNUSED(ret);
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN1
|
|
||||||
/* Call stm32_caninitialize() to get an instance of the CAN interface */
|
|
||||||
|
|
||||||
ret = stm32_cansockinitialize(1);
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
canerr("ERROR: Failed to get CAN interface %d\n", ret);
|
|
||||||
goto errout;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN2
|
#undef EXTERN
|
||||||
/* Call stm32_caninitialize() to get an instance of the CAN interface */
|
#ifdef __cplusplus
|
||||||
|
|
||||||
ret = stm32_cansockinitialize(2);
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
canerr("ERROR: Failed to get CAN interface %d\n", ret);
|
|
||||||
goto errout;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
errout:
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H */
|
||||||
@@ -32,4 +32,13 @@ if(CONFIG_AUDIO_CS4344)
|
|||||||
list(APPEND SRCS stm32_cs4344.c)
|
list(APPEND SRCS stm32_cs4344.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CONFIG_STM32F7_CAN)
|
||||||
|
if(CONFIG_STM32F7_CAN_CHARDRIVER)
|
||||||
|
list(APPEND SRCS stm32_can.c)
|
||||||
|
endif()
|
||||||
|
if(CONFIG_STM32F7_CAN_SOCKET)
|
||||||
|
list(APPEND SRCS stm32_cansock.c)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
target_sources(board PRIVATE ${SRCS})
|
target_sources(board PRIVATE ${SRCS})
|
||||||
|
|||||||
@@ -32,6 +32,15 @@ ifeq ($(CONFIG_AUDIO_CS4344),y)
|
|||||||
CSRCS += stm32_cs4344.c
|
CSRCS += stm32_cs4344.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_STM32F7_CAN),y)
|
||||||
|
ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
|
||||||
|
CSRCS += stm32_can_setup.c
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
|
||||||
|
CSRCS += stm32_cansock_setup.c
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
DEPPATH += --dep-path src
|
DEPPATH += --dep-path src
|
||||||
VPATH += :src
|
VPATH += :src
|
||||||
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src
|
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src
|
||||||
|
|||||||
+1
-2
@@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* boards/arm/stm32f7/nucleo-f722ze/src/stm32_can.c
|
* boards/arm/stm32f7/common/src/stm32_can_setup.c
|
||||||
*
|
*
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
* contributor license agreements. See the NOTICE file distributed with
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
@@ -31,7 +31,6 @@
|
|||||||
#include <nuttx/can/can.h>
|
#include <nuttx/can/can.h>
|
||||||
|
|
||||||
#include "stm32_can.h"
|
#include "stm32_can.h"
|
||||||
#include "nucleo-f722ze.h"
|
|
||||||
|
|
||||||
#ifdef CONFIG_CAN
|
#ifdef CONFIG_CAN
|
||||||
|
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* boards/arm/stm32f7/nucleo-f767zi/src/stm32_cansock.c
|
* boards/arm/stm32f7/common/src/stm32_cansock_setup.c
|
||||||
*
|
*
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
* contributor license agreements. See the NOTICE file distributed with
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
# CONFIG_ARCH_FPU is not set
|
# CONFIG_ARCH_FPU is not set
|
||||||
# CONFIG_STM32F7_USE_LEGACY_PINMAP is not set
|
# CONFIG_STM32F7_USE_LEGACY_PINMAP is not set
|
||||||
CONFIG_ARCH="arm"
|
CONFIG_ARCH="arm"
|
||||||
|
CONFIG_ARCH_BOARD_COMMON=y
|
||||||
CONFIG_ARCH_BOARD="nucleo-f722ze"
|
CONFIG_ARCH_BOARD="nucleo-f722ze"
|
||||||
CONFIG_ARCH_BOARD_NUCLEO_F722ZE=y
|
CONFIG_ARCH_BOARD_NUCLEO_F722ZE=y
|
||||||
CONFIG_ARCH_BUTTONS=y
|
CONFIG_ARCH_BUTTONS=y
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
# CONFIG_NET_IPv4 is not set
|
# CONFIG_NET_IPv4 is not set
|
||||||
# CONFIG_STM32F7_USE_LEGACY_PINMAP is not set
|
# CONFIG_STM32F7_USE_LEGACY_PINMAP is not set
|
||||||
CONFIG_ARCH="arm"
|
CONFIG_ARCH="arm"
|
||||||
|
CONFIG_ARCH_BOARD_COMMON=y
|
||||||
CONFIG_ARCH_BOARD="nucleo-f722ze"
|
CONFIG_ARCH_BOARD="nucleo-f722ze"
|
||||||
CONFIG_ARCH_BOARD_NUCLEO_F722ZE=y
|
CONFIG_ARCH_BOARD_NUCLEO_F722ZE=y
|
||||||
CONFIG_ARCH_BUTTONS=y
|
CONFIG_ARCH_BUTTONS=y
|
||||||
|
|||||||
@@ -76,15 +76,6 @@ ifeq ($(CONFIG_SENSORS_QENCODER),y)
|
|||||||
CSRCS += stm32_qencoder.c
|
CSRCS += stm32_qencoder.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN),y)
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
|
|
||||||
CSRCS += stm32_can.c
|
|
||||||
endif
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
|
|
||||||
CSRCS += stm32_cansock.c
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
|
ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
|
||||||
CSRCS += stm32_composite.c
|
CSRCS += stm32_composite.c
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -325,22 +325,6 @@ int stm32_bbsram_int(void);
|
|||||||
int stm32_qencoder_initialize(const char *devpath, int timer);
|
int stm32_qencoder_initialize(const char *devpath, int timer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_can_setup
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
|
|
||||||
int stm32_can_setup(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_cansock_setup
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN_SOCKET
|
|
||||||
int stm32_cansock_setup(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: stm32f7_gpio_initialize
|
* Name: stm32f7_gpio_initialize
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|||||||
@@ -38,6 +38,14 @@
|
|||||||
|
|
||||||
#include "stm32_i2c.h"
|
#include "stm32_i2c.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
|
||||||
|
# include "stm32_can_setup.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32F7_CAN_SOCKET
|
||||||
|
# include "stm32_cansock_setup.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_STM32_ROMFS
|
#ifdef CONFIG_STM32_ROMFS
|
||||||
#include "stm32_romfs.h"
|
#include "stm32_romfs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ CONFIG_ADC=y
|
|||||||
CONFIG_ADC_FIFOSIZE=16
|
CONFIG_ADC_FIFOSIZE=16
|
||||||
CONFIG_ANALOG=y
|
CONFIG_ANALOG=y
|
||||||
CONFIG_ARCH="arm"
|
CONFIG_ARCH="arm"
|
||||||
|
CONFIG_ARCH_BOARD_COMMON=y
|
||||||
CONFIG_ARCH_BOARD="nucleo-f746zg"
|
CONFIG_ARCH_BOARD="nucleo-f746zg"
|
||||||
CONFIG_ARCH_BOARD_NUCLEO_F746ZG=y
|
CONFIG_ARCH_BOARD_NUCLEO_F746ZG=y
|
||||||
CONFIG_ARCH_BUTTONS=y
|
CONFIG_ARCH_BUTTONS=y
|
||||||
|
|||||||
@@ -74,15 +74,6 @@ if(CONFIG_SENSORS_QENCODER)
|
|||||||
list(APPEND SRCS stm32_qencoder.c)
|
list(APPEND SRCS stm32_qencoder.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CONFIG_STM32F7_CAN)
|
|
||||||
if(CONFIG_STM32F7_CAN_CHARDRIVER)
|
|
||||||
list(APPEND SRCS stm32_can.c)
|
|
||||||
endif()
|
|
||||||
if(CONFIG_STM32F7_CAN_SOCKET)
|
|
||||||
list(APPEND SRCS stm32_cansock.c)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CONFIG_USBDEV_COMPOSITE)
|
if(CONFIG_USBDEV_COMPOSITE)
|
||||||
list(APPEND SRCS stm32_composite.c)
|
list(APPEND SRCS stm32_composite.c)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -76,15 +76,6 @@ ifeq ($(CONFIG_SENSORS_QENCODER),y)
|
|||||||
CSRCS += stm32_qencoder.c
|
CSRCS += stm32_qencoder.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN),y)
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
|
|
||||||
CSRCS += stm32_can.c
|
|
||||||
endif
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
|
|
||||||
CSRCS += stm32_cansock.c
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
|
ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
|
||||||
CSRCS += stm32_composite.c
|
CSRCS += stm32_composite.c
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -325,22 +325,6 @@ int stm32_bbsram_int(void);
|
|||||||
int stm32_qencoder_initialize(const char *devpath, int timer);
|
int stm32_qencoder_initialize(const char *devpath, int timer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_can_setup
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
|
|
||||||
int stm32_can_setup(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_cansock_setup
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN_SOCKET
|
|
||||||
int stm32_cansock_setup(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: stm32f7_gpio_initialize
|
* Name: stm32f7_gpio_initialize
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|||||||
@@ -38,6 +38,14 @@
|
|||||||
|
|
||||||
#include "stm32_i2c.h"
|
#include "stm32_i2c.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
|
||||||
|
# include "stm32_can_setup.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32F7_CAN_SOCKET
|
||||||
|
# include "stm32_cansock_setup.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_STM32_ROMFS
|
#ifdef CONFIG_STM32_ROMFS
|
||||||
#include "stm32_romfs.h"
|
#include "stm32_romfs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,115 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
* boards/arm/stm32f7/nucleo-f746zg/src/stm32_can.c
|
|
||||||
*
|
|
||||||
* 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 <stdbool.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <debug.h>
|
|
||||||
|
|
||||||
#include <nuttx/can/can.h>
|
|
||||||
|
|
||||||
#include "stm32_can.h"
|
|
||||||
#include "nucleo-f746zg.h"
|
|
||||||
|
|
||||||
#ifdef CONFIG_CAN
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Pre-processor Definitions
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN1
|
|
||||||
# define CAN_PORT 1
|
|
||||||
#else
|
|
||||||
# define CAN_PORT 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Public Functions
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_can_setup
|
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Initialize CAN and register the CAN device
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
int stm32_can_setup(void)
|
|
||||||
{
|
|
||||||
#if defined(CONFIG_STM32F7_CAN1)
|
|
||||||
struct can_dev_s *can;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/* Call stm32f7can_initialize() to get an instance of the CAN interface */
|
|
||||||
|
|
||||||
can = stm32_caninitialize(CAN_PORT);
|
|
||||||
if (can == NULL)
|
|
||||||
{
|
|
||||||
canerr("ERROR: Failed to get CAN interface\n");
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Register the CAN driver at "/dev/can0" */
|
|
||||||
|
|
||||||
ret = can_register("/dev/can0", can);
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
canerr("ERROR: can_register failed: %d\n", ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return OK;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_STM32F7_CAN2)
|
|
||||||
struct can_dev_s *can;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/* Call stm32f7can_initialize() to get an instance of the CAN interface */
|
|
||||||
|
|
||||||
can = stm32_caninitialize(CAN_PORT);
|
|
||||||
if (can == NULL)
|
|
||||||
{
|
|
||||||
canerr("ERROR: Failed to get CAN interface\n");
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Register the CAN driver at "/dev/can1" */
|
|
||||||
|
|
||||||
ret = can_register("/dev/can1", can);
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
canerr("ERROR: can_register failed: %d\n", ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return OK;
|
|
||||||
#else
|
|
||||||
return -ENODEV;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_CAN */
|
|
||||||
@@ -74,15 +74,6 @@ if(CONFIG_SENSORS_QENCODER)
|
|||||||
list(APPEND SRCS stm32_qencoder.c)
|
list(APPEND SRCS stm32_qencoder.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CONFIG_STM32F7_CAN)
|
|
||||||
if(CONFIG_STM32F7_CAN_CHARDRIVER)
|
|
||||||
list(APPEND SRCS stm32_can.c)
|
|
||||||
endif()
|
|
||||||
if(CONFIG_STM32F7_CAN_SOCKET)
|
|
||||||
list(APPEND SRCS stm32_cansock.c)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CONFIG_USBDEV_COMPOSITE)
|
if(CONFIG_USBDEV_COMPOSITE)
|
||||||
list(APPEND SRCS stm32_composite.c)
|
list(APPEND SRCS stm32_composite.c)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -76,15 +76,6 @@ ifeq ($(CONFIG_SENSORS_QENCODER),y)
|
|||||||
CSRCS += stm32_qencoder.c
|
CSRCS += stm32_qencoder.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN),y)
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
|
|
||||||
CSRCS += stm32_can.c
|
|
||||||
endif
|
|
||||||
ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
|
|
||||||
CSRCS += stm32_cansock.c
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
|
ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
|
||||||
CSRCS += stm32_composite.c
|
CSRCS += stm32_composite.c
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -325,22 +325,6 @@ int stm32_bbsram_int(void);
|
|||||||
int stm32_qencoder_initialize(const char *devpath, int timer);
|
int stm32_qencoder_initialize(const char *devpath, int timer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_can_setup
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
|
|
||||||
int stm32_can_setup(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_cansock_setup
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN_SOCKET
|
|
||||||
int stm32_cansock_setup(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: stm32f7_gpio_initialize
|
* Name: stm32f7_gpio_initialize
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|||||||
@@ -38,6 +38,14 @@
|
|||||||
|
|
||||||
#include "stm32_i2c.h"
|
#include "stm32_i2c.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
|
||||||
|
# include "stm32_can_setup.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32F7_CAN_SOCKET
|
||||||
|
# include "stm32_cansock_setup.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_STM32_ROMFS
|
#ifdef CONFIG_STM32_ROMFS
|
||||||
#include "stm32_romfs.h"
|
#include "stm32_romfs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,115 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
* boards/arm/stm32f7/nucleo-f767zi/src/stm32_can.c
|
|
||||||
*
|
|
||||||
* 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 <stdbool.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <debug.h>
|
|
||||||
|
|
||||||
#include <nuttx/can/can.h>
|
|
||||||
|
|
||||||
#include "stm32_can.h"
|
|
||||||
#include "nucleo-f767zi.h"
|
|
||||||
|
|
||||||
#ifdef CONFIG_CAN
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Pre-processor Definitions
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef CONFIG_STM32F7_CAN1
|
|
||||||
# define CAN_PORT 1
|
|
||||||
#else
|
|
||||||
# define CAN_PORT 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Public Functions
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: stm32_can_setup
|
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Initialize CAN and register the CAN device
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
int stm32_can_setup(void)
|
|
||||||
{
|
|
||||||
#if defined(CONFIG_STM32F7_CAN1)
|
|
||||||
struct can_dev_s *can;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/* Call stm32f7can_initialize() to get an instance of the CAN interface */
|
|
||||||
|
|
||||||
can = stm32_caninitialize(CAN_PORT);
|
|
||||||
if (can == NULL)
|
|
||||||
{
|
|
||||||
canerr("ERROR: Failed to get CAN interface\n");
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Register the CAN driver at "/dev/can0" */
|
|
||||||
|
|
||||||
ret = can_register("/dev/can0", can);
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
canerr("ERROR: can_register failed: %d\n", ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return OK;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_STM32F7_CAN2)
|
|
||||||
struct can_dev_s *can;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
/* Call stm32f7can_initialize() to get an instance of the CAN interface */
|
|
||||||
|
|
||||||
can = stm32_caninitialize(CAN_PORT);
|
|
||||||
if (can == NULL)
|
|
||||||
{
|
|
||||||
canerr("ERROR: Failed to get CAN interface\n");
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Register the CAN driver at "/dev/can1" */
|
|
||||||
|
|
||||||
ret = can_register("/dev/can1", can);
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
canerr("ERROR: can_register failed: %d\n", ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return OK;
|
|
||||||
#else
|
|
||||||
return -ENODEV;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_CAN */
|
|
||||||
Reference in New Issue
Block a user