From 522b8848a20b47382906d4acceccafe004ce625e Mon Sep 17 00:00:00 2001 From: wgzAIIT <820906721@qq.com> Date: Fri, 6 May 2022 10:18:22 +0800 Subject: [PATCH] move include files to imxrt_ch438.h on nuttx and change board_ch438_initialize --- .../aiit_board/xidatong/src/ch438_demo.c | 60 ++++-------- .../aiit_board/xidatong/src/imxrt_bringup.c | 9 +- .../aiit_board/xidatong/src/imxrt_ch438.c | 96 +++++++++++-------- .../aiit_board/xidatong/src/imxrt_ch438.h | 47 ++++++++- 4 files changed, 120 insertions(+), 92 deletions(-) diff --git a/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/ch438_demo.c b/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/ch438_demo.c index 88861f5d5..a90ee6da2 100644 --- a/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/ch438_demo.c +++ b/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/ch438_demo.c @@ -21,58 +21,30 @@ /**************************************************************************** * Included Files ****************************************************************************/ - - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - #include "imxrt_ch438.h" -#define TMP (GPIO_OUTPUT | IOMUX_GOUT_DEFAULT | \ - GPIO_PORT3 | GPIO_PIN3) - void CH438Demo(void) { - int fd1,fd2; + int fd; int i; char buffer[256]; int readlen; - fd1 = open("/dev/extuart_dev2", O_RDWR); - write(fd1, "AT+BAUD=?",9); - readlen = read(fd1, buffer, 256); - - for(i=0;i -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "arm_arch.h" - -#include "imxrt_config.h" -#include "imxrt_irq.h" -#include "imxrt_gpio.h" #include "imxrt_ch438.h" -#include "xidatong.h" - #define CH438PORTNUM 8 #define BUFFERSIZE 128 @@ -74,7 +48,7 @@ static ssize_t ch438_write(FAR struct file *filep, FAR const char *buffer, size_ ****************************************************************************/ struct ch438_dev_s { - uint8_t port; /* ch438 port number*/ + uint8_t port; /* ch438 port number*/ }; /**************************************************************************** @@ -271,14 +245,12 @@ static uint8_t ReadCH438Data(uint8_t addr) up_udelay(1); imxrt_gpio_write(CH438_ALE_PIN, false); - up_udelay(1); CH438SetInput(); up_udelay(1); imxrt_gpio_write(CH438_NRD_PIN, false); - up_udelay(1); if (imxrt_gpio_read(CH438_D7_PIN_INPUT)) dat |= 0x80; @@ -292,7 +264,6 @@ static uint8_t ReadCH438Data(uint8_t addr) imxrt_gpio_write(CH438_NRD_PIN, true); imxrt_gpio_write(CH438_ALE_PIN, true); - up_udelay(1); return dat; @@ -341,12 +312,10 @@ static void WriteCH438Data(uint8_t addr, uint8_t dat) up_udelay(1); imxrt_gpio_write(CH438_NWR_PIN, false); - up_udelay(1); imxrt_gpio_write(CH438_NWR_PIN, true); imxrt_gpio_write(CH438_ALE_PIN, true); - up_udelay(1); CH438SetInput(); @@ -639,39 +608,84 @@ int ch438_register(FAR const char *devpath, uint8_t port) * ch438 initialize * ****************************************************************************/ -void board_ch438_initialize(void) +int board_ch438_initialize(void) { + int ret = 0; + Ch438InitDefault(); #ifdef CONFIG_CH438_EXTUART0 - ch438_register("/dev/extuart_dev0", 0); + ret = ch438_register("/dev/extuart_dev0", 0); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev0: %d\n", ret); + goto __exit; + } #endif #ifdef CONFIG_CH438_EXTUART1 - ch438_register("/dev/extuart_dev1", 1); + ret = ch438_register("/dev/extuart_dev1", 1); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev1: %d\n", ret); + goto __exit; + } #endif #ifdef CONFIG_CH438_EXTUART2 - ch438_register("/dev/extuart_dev2", 2); + ret = ch438_register("/dev/extuart_dev2", 2); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev2: %d\n", ret); + goto __exit; + } #endif #ifdef CONFIG_CH438_EXTUART3 - ch438_register("/dev/extuart_dev3", 3); + ret = ch438_register("/dev/extuart_dev3", 3); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev3: %d\n", ret); + goto __exit; + } #endif #ifdef CONFIG_CH438_EXTUART4 - ch438_register("/dev/extuart_dev4", 4); + ret = ch438_register("/dev/extuart_dev4", 4); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev4: %d\n", ret); + goto __exit; + } #endif #ifdef CONFIG_CH438_EXTUART5 - ch438_register("/dev/extuart_dev5", 5); + ret = ch438_register("/dev/extuart_dev5", 5); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev5: %d\n", ret); + goto __exit; + } #endif #ifdef CONFIG_CH438_EXTUART6 - ch438_register("/dev/extuart_dev6", 6); + ret = ch438_register("/dev/extuart_dev6", 6); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev6: %d\n", ret); + goto __exit; + } #endif #ifdef CONFIG_CH438_EXTUART7 - ch438_register("/dev/extuart_dev7", 7); + ret = ch438_register("/dev/extuart_dev7", 7); + if (ret < 0) + { + ch438err("Failed to register /dev/extuart_dev7: %d\n", ret); + goto __exit; + } #endif + +__exit: + return ret; } \ No newline at end of file diff --git a/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/imxrt_ch438.h b/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/imxrt_ch438.h index 834668a26..7c6c78968 100644 --- a/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/imxrt_ch438.h +++ b/Ubiquitous/Nuttx_Fusion_XiUOS/aiit_board/xidatong/src/imxrt_ch438.h @@ -18,9 +18,44 @@ * @date 2022.04.26 */ -#ifndef __QC_TEST_CH438__ -#define __QC_TEST_CH438__ +#ifndef __BOARDS_ARM_IMXRT_XIDATONG_SRC_IMXRT_CH438_H +#define __BOARDS_ARM_IMXRT_XIDATONG_SRC_IMXRT_CH438_H +/**************************************************************************** + * Included Files + ****************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include "arm_arch.h" + +#include "imxrt_config.h" +#include "imxrt_irq.h" +#include "imxrt_gpio.h" #include "xidatong.h" /******************************************************************************************/ @@ -300,7 +335,7 @@ #ifdef CONFIG_DEBUG_CH438_ERROR -# define ch438err _err +# define ch438err _err #else # define ch438err _none #endif @@ -320,8 +355,12 @@ /**************************************************************************** * Public Function Prototypes ****************************************************************************/ +#ifdef CONFIG_BSP_USING_CH438 int getInterruptStatus(int argc, char **argv); void Ch438InitDefault(void); int ch438_register(FAR const char *devpath,uint8_t port); -void board_ch438_initialize(void); +int board_ch438_initialize(void); #endif + +#endif /* __BOARDS_ARM_IMXRT_XIDATONG_SRC_IMXRT_CH438_H */ +