forked from xuos/xiuos
repair ch438 driver
This commit is contained in:
parent
fac1c35d38
commit
ec7b594345
|
@ -15,6 +15,8 @@ if GetDepend(['APPLICATION_SENSOR_HUMIDITY_HS300X']):
|
|||
SOURCES = ['humidity_hs300x.c'] + SOURCES
|
||||
if GetDepend(['APPLICATION_SENSOR_TEMPERATURE_HS300X']):
|
||||
SOURCES = ['temperature_hs300x.c'] + SOURCES
|
||||
if GetDepend(['APPLICATION_SENSOR_CH4_AS830']):
|
||||
SOURCES = ['ch4_as830.c'] + SOURCES
|
||||
path = [cwd]
|
||||
objs = DefineGroup('sensor_app', src = SOURCES, depend = DEPENDS,CPPPATH = path)
|
||||
Return("objs")
|
|
@ -43,6 +43,23 @@ config SENSOR_AS830
|
|||
endif
|
||||
|
||||
if ADD_RTTHREAD_FETURES
|
||||
config SENSOR_AS830_DRIVER_EXTUART
|
||||
bool "Using extra uart to support as830"
|
||||
default y
|
||||
|
||||
config SENSOR_DEVICE_AS830_DEV
|
||||
string "as830 device uart path"
|
||||
default "/dev/uart2"
|
||||
depends on !SENSOR_AS830_DRIVER_EXTUART
|
||||
|
||||
if SENSOR_AS830_DRIVER_EXTUART
|
||||
config SENSOR_DEVICE_AS830_DEV
|
||||
string "as830 device extra uart path"
|
||||
default "/dev/extuart_dev1"
|
||||
|
||||
config SENSOR_DEVICE_AS830_DEV_EXT_PORT
|
||||
int "if AS830 device using extuart, choose port"
|
||||
default "1"
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
import os
|
||||
Import('RTT_ROOT')
|
||||
from building import *
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
objs = []
|
||||
list = os.listdir(cwd)
|
||||
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(path, 'SConscript'))
|
||||
|
||||
Return('objs')
|
|
@ -0,0 +1,10 @@
|
|||
from building import *
|
||||
import os
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = []
|
||||
if GetDepend(['SENSOR_AS830']):
|
||||
src += ['as830.c']
|
||||
group = DefineGroup('sensor ch4 as830', src, depend = [], CPPPATH = [cwd])
|
||||
|
||||
Return('group')
|
|
@ -43,7 +43,24 @@ config SENSOR_ZG09
|
|||
endif
|
||||
|
||||
if ADD_RTTHREAD_FETURES
|
||||
config SENSOR_ZG09_DRIVER_EXTUART
|
||||
bool "Using extra uart to support zg09"
|
||||
default y
|
||||
|
||||
config SENSOR_DEVICE_ZG09_DEV
|
||||
string "zg09 device uart path"
|
||||
default "/dev/uart2_dev2"
|
||||
depends on !SENSOR_ZG09_DRIVER_EXTUART
|
||||
|
||||
if SENSOR_ZG09_DRIVER_EXTUART
|
||||
config SENSOR_DEVICE_ZG09_DEV
|
||||
string "zg09 device extra uart path"
|
||||
default "/dev/extuart_dev4"
|
||||
|
||||
config SENSOR_DEVICE_ZG09_DEV_EXT_PORT
|
||||
int "if ZG09 device using extuart, choose port"
|
||||
default "4"
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
from building import *
|
||||
import os
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
src = []
|
||||
if GetDepend(['SENSOR_ZG09']):
|
||||
src += ['zg09.c']
|
||||
group = DefineGroup('sensor co2 zg09', src, depend = [], CPPPATH = [cwd])
|
||||
|
||||
Return('group')
|
|
@ -43,6 +43,23 @@ config SENSOR_D124
|
|||
endif
|
||||
|
||||
if ADD_RTTHREAD_FETURES
|
||||
config SENSOR_D124_DRIVER_EXTUART
|
||||
bool "Using extra uart to support D124"
|
||||
default y
|
||||
|
||||
config SENSOR_DEVICE_D124_DEV
|
||||
string "D124 device name"
|
||||
default "/dev/uart2_dev2"
|
||||
depends on !SENSOR_D124_DRIVER_EXTUART
|
||||
|
||||
if SENSOR_D124_DRIVER_EXTUART
|
||||
config SENSOR_DEVICE_D124_DEV
|
||||
string "D124 device extra uart path"
|
||||
default "/dev/extuart_dev4"
|
||||
|
||||
config SENSOR_DEVICE_D124_DEV_EXT_PORT
|
||||
int "if D124 device using extuart, choose port"
|
||||
default "4"
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -11,7 +11,7 @@ CONFIG_BOARD_K210_EVB=y
|
|||
#
|
||||
# RT-Thread Kernel
|
||||
#
|
||||
CONFIG_RT_NAME_MAX=8
|
||||
CONFIG_RT_NAME_MAX=24
|
||||
# CONFIG_RT_USING_BIG_ENDIAN is not set
|
||||
# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
|
||||
CONFIG_RT_USING_SMP=y
|
||||
|
@ -292,11 +292,6 @@ CONFIG_BSP_UART1_CTS_PIN=-1
|
|||
# CONFIG_BSP_USING_I2C1 is not set
|
||||
# CONFIG_BSP_USING_SPI1 is not set
|
||||
# CONFIG_BSP_USING_LCD is not set
|
||||
# CONFIG_BSP_LCD_BACKLIGHT_ACTIVE_LOW is not set
|
||||
# CONFIG_BSP_LCD_BACKLIGHT_ACTIVE_HIGH is not set
|
||||
# CONFIG_BSP_BOARD_KD233 is not set
|
||||
# CONFIG_BSP_BOARD_K210_OPENMV_TEST is not set
|
||||
# CONFIG_BSP_BOARD_USER is not set
|
||||
# CONFIG_BSP_USING_SDCARD is not set
|
||||
# CONFIG_BSP_USING_DVP is not set
|
||||
CONFIG_BSP_USING_CH438=y
|
||||
|
@ -332,10 +327,28 @@ CONFIG_PKG_KENDRYTE_SDK_VERNUM=0x0055
|
|||
# Framework
|
||||
#
|
||||
CONFIG_TRANSFORM_LAYER_ATTRIUBUTE=y
|
||||
CONFIG_ADD_XIZI_FETURES=y
|
||||
# CONFIG_ADD_XIZI_FETURES is not set
|
||||
# CONFIG_ADD_NUTTX_FETURES is not set
|
||||
# CONFIG_ADD_RTTHREAD_FETURES is not set
|
||||
# CONFIG_SUPPORT_SENSOR_FRAMEWORK is not set
|
||||
CONFIG_ADD_RTTHREAD_FETURES=y
|
||||
CONFIG_SUPPORT_SENSOR_FRAMEWORK=y
|
||||
# CONFIG_SENSOR_HCHO is not set
|
||||
# CONFIG_SENSOR_TVOC is not set
|
||||
# CONFIG_SENSOR_IAQ is not set
|
||||
CONFIG_SENSOR_CH4=y
|
||||
CONFIG_SENSOR_AS830=y
|
||||
CONFIG_SENSOR_DEVICE_AS830="as830_1"
|
||||
CONFIG_SENSOR_QUANTITY_AS830_CH4="ch4_1"
|
||||
CONFIG_SENSOR_AS830_DRIVER_EXTUART=y
|
||||
CONFIG_SENSOR_DEVICE_AS830_DEV="/dev/extuart_dev1"
|
||||
CONFIG_SENSOR_DEVICE_AS830_DEV_EXT_PORT=1
|
||||
# CONFIG_SENSOR_CO2 is not set
|
||||
# CONFIG_SENSOR_PM is not set
|
||||
# CONFIG_SENSOR_VOICE is not set
|
||||
# CONFIG_SENSOR_TEMPERATURE is not set
|
||||
# CONFIG_SENSOR_HUMIDITY is not set
|
||||
# CONFIG_SENSOR_WINDSPEED is not set
|
||||
# CONFIG_SENSOR_WINDDIRECTION is not set
|
||||
# CONFIG_SENSOR_ALTITUDE is not set
|
||||
# CONFIG_SUPPORT_CONNECTION_FRAMEWORK is not set
|
||||
# CONFIG_SUPPORT_KNOWING_FRAMEWORK is not set
|
||||
# CONFIG_SUPPORT_CONTROL_FRAMEWORK is not set
|
||||
|
@ -385,7 +398,8 @@ CONFIG_APPLICATION_SENSOR=y
|
|||
# CONFIG_APPLICATION_SENSOR_HCHO is not set
|
||||
# CONFIG_APPLICATION_SENSOR_TVOC is not set
|
||||
# CONFIG_APPLICATION_SENSOR_IAQ is not set
|
||||
# CONFIG_APPLICATION_SENSOR_CH4 is not set
|
||||
CONFIG_APPLICATION_SENSOR_CH4=y
|
||||
CONFIG_APPLICATION_SENSOR_CH4_AS830=y
|
||||
# CONFIG_APPLICATION_SENSOR_CO2 is not set
|
||||
# CONFIG_APPLICATION_SENSOR_PM1_0 is not set
|
||||
# CONFIG_APPLICATION_SENSOR_PM2_5 is not set
|
||||
|
@ -403,7 +417,7 @@ CONFIG_APPLICATION_SENSOR=y
|
|||
#
|
||||
CONFIG_APP_SELECT_NEWLIB=y
|
||||
# CONFIG_APP_SELECT_OTHER_LIB is not set
|
||||
CONFIG_LIB_USING_CJSON=y
|
||||
# CONFIG_LIB_USING_CJSON is not set
|
||||
# CONFIG_LIB_USING_QUEUE is not set
|
||||
# CONFIG_LIB_LV is not set
|
||||
# CONFIG_USING_EMBEDDED_DATABASE is not set
|
||||
|
|
|
@ -20,9 +20,10 @@
|
|||
|
||||
#include <rtthread.h>
|
||||
#include <stdio.h>
|
||||
|
||||
extern int FrameworkInit();
|
||||
int main(void)
|
||||
{
|
||||
printf("Hello World\n");
|
||||
FrameworkInit();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -5,11 +5,10 @@
|
|||
#include "board.h"
|
||||
#include "ch438.h"
|
||||
#include "sleep.h"
|
||||
|
||||
static struct rt_semaphore ch438_sem;
|
||||
#include <math.h>
|
||||
|
||||
static rt_uint8_t offsetadd[] = {0x00,0x10,0x20,0x30,0x08,0x18,0x28,0x38,}; /* Offset address of serial port number */
|
||||
rt_uint8_t RevLen ,Ch438Buff[8][BUFFSIZE],Ch438BuffPtr[8];
|
||||
struct rt_serial_device *extuart_serial_parm[8];
|
||||
|
||||
void CH438_INIT(void)
|
||||
{
|
||||
|
@ -25,7 +24,7 @@ void CH438_INIT(void)
|
|||
gpiohs_set_pin(FPIOA_CH438_ALE, GPIO_PV_HIGH);
|
||||
}
|
||||
|
||||
void CH438_PORT_INIT( rt_uint8_t ext_uart_no,rt_uint32_t BaudRate )
|
||||
void CH438_PORT_INIT( rt_uint8_t ext_uart_no,rt_uint32_t BaudRate )
|
||||
{
|
||||
rt_uint32_t div;
|
||||
rt_uint8_t DLL,DLM,dlab;
|
||||
|
@ -164,7 +163,6 @@ rt_uint8_t ReadCH438Data( rt_uint8_t addr )
|
|||
usleep(1);
|
||||
|
||||
return dat;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -216,106 +214,47 @@ static void WriteCH438Data( rt_uint8_t addr, rt_uint8_t dat)
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
static void WriteCH438Block( rt_uint8_t mAddr, rt_uint8_t mLen, rt_uint8_t *mBuf )
|
||||
{
|
||||
|
||||
while ( mLen -- )
|
||||
WriteCH438Data( mAddr, *mBuf++ );
|
||||
|
||||
}
|
||||
|
||||
static int Ch438Irq(void *parameter)
|
||||
{
|
||||
rt_uint8_t gInterruptStatus;
|
||||
rt_uint8_t port = 0;
|
||||
|
||||
// void CH438UARTSend( rt_uint8_t ext_uart_no,rt_uint8_t *Data, rt_uint8_t Num )
|
||||
// {
|
||||
// rt_uint8_t REG_LSR_ADDR,REG_THR_ADDR;
|
||||
|
||||
// REG_LSR_ADDR = offsetadd[ext_uart_no] | REG_LSR0_ADDR;
|
||||
// REG_THR_ADDR = offsetadd[ext_uart_no] | REG_THR0_ADDR;
|
||||
|
||||
// while( 1 )
|
||||
// {
|
||||
|
||||
// while( ( ReadCH438Data( REG_LSR_ADDR ) & BIT_LSR_TEMT ) == 0 );
|
||||
|
||||
// if( Num <= 128 )
|
||||
// {
|
||||
|
||||
// WriteCH438Block( REG_THR_ADDR, Num, Data );
|
||||
|
||||
// break;
|
||||
|
||||
// }
|
||||
|
||||
// else
|
||||
// {
|
||||
|
||||
// WriteCH438Block( REG_THR_ADDR, 128, Data );
|
||||
|
||||
// Num -= 128;
|
||||
|
||||
// Data += 128;
|
||||
|
||||
// }
|
||||
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// rt_uint8_t CH438UARTRcv( rt_uint8_t ext_uart_no, rt_uint8_t* buf )
|
||||
// {
|
||||
// rt_uint8_t RcvNum = 0;
|
||||
// rt_uint8_t dat = 0;
|
||||
// rt_uint8_t REG_LSR_ADDR,REG_RBR_ADDR;
|
||||
// rt_uint8_t *p_rev;
|
||||
|
||||
// p_rev = buf;
|
||||
|
||||
// REG_LSR_ADDR = offsetadd[ext_uart_no] | REG_LSR0_ADDR;
|
||||
// REG_RBR_ADDR = offsetadd[ext_uart_no] | REG_RBR0_ADDR;
|
||||
|
||||
// {
|
||||
|
||||
// while( ( ReadCH438Data( REG_LSR_ADDR ) & BIT_LSR_DATARDY ) == 0 );
|
||||
|
||||
// while( ( ReadCH438Data( REG_LSR_ADDR ) & BIT_LSR_DATARDY ) == 0x01 )
|
||||
// {
|
||||
// dat = ReadCH438Data( REG_RBR_ADDR );
|
||||
|
||||
// Ch438Buff[ext_uart_no][Ch438BuffPtr[ext_uart_no]] = dat;
|
||||
|
||||
// Ch438BuffPtr[ext_uart_no] = Ch438BuffPtr[ext_uart_no] + 1;
|
||||
// if (Ch438BuffPtr[ext_uart_no] == BUFFSIZE)
|
||||
// Ch438BuffPtr[ext_uart_no] = 0;
|
||||
|
||||
// RcvNum = RcvNum + 1;
|
||||
|
||||
// }
|
||||
// }
|
||||
// return( RcvNum );
|
||||
// }
|
||||
gInterruptStatus = ReadCH438Data(REG_SSR_ADDR);
|
||||
port = log(gInterruptStatus & 0xFF)/log(2);
|
||||
rt_hw_serial_isr(extuart_serial_parm[port], RT_SERIAL_EVENT_RX_IND);
|
||||
}
|
||||
|
||||
static rt_err_t rt_extuart_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
|
||||
{
|
||||
rt_uint32_t baud_rate = cfg->baud_rate;
|
||||
rt_uint16_t port = cfg->reserved;
|
||||
|
||||
rt_uint32_t baud_rate = cfg->baud_rate;
|
||||
uint16_t port = cfg->reserved;
|
||||
CH438_PORT_INIT(port, baud_rate);
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
static rt_err_t extuart_control(struct rt_serial_device *serial, int cmd, void *arg)
|
||||
{
|
||||
uint16_t ext_uart_no = serial->config.reserved;
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case RT_DEVICE_CTRL_CLR_INT:
|
||||
gpiohs_irq_unregister(FPIOA_CH438_INT);
|
||||
break;
|
||||
|
||||
case RT_DEVICE_CTRL_SET_INT:
|
||||
break;
|
||||
gpiohs_set_drive_mode(FPIOA_CH438_INT, GPIO_DM_INPUT_PULL_UP);
|
||||
gpiohs_set_pin_edge(FPIOA_CH438_INT,GPIO_PE_FALLING);
|
||||
gpiohs_irq_register(FPIOA_CH438_INT, 1, Ch438Irq, RT_NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
return (RT_EOK);
|
||||
}
|
||||
|
||||
|
@ -335,22 +274,21 @@ static int drv_extuart_putc(struct rt_serial_device *serial, char c)
|
|||
|
||||
static int drv_extuart_getc(struct rt_serial_device *serial)
|
||||
{
|
||||
rt_uint8_t dat = 0;
|
||||
rt_int8_t dat = -1;
|
||||
rt_uint8_t REG_LSR_ADDR,REG_RBR_ADDR;
|
||||
|
||||
uint16_t ext_uart_no = serial->config.reserved;///< get extern uart port
|
||||
|
||||
REG_LSR_ADDR = offsetadd[ext_uart_no] | REG_LSR0_ADDR;
|
||||
REG_RBR_ADDR = offsetadd[ext_uart_no] | REG_RBR0_ADDR;
|
||||
|
||||
while( ( ReadCH438Data( REG_LSR_ADDR ) & BIT_LSR_DATARDY ) == 0 );
|
||||
|
||||
// while( ( ReadCH438Data( REG_LSR_ADDR ) & BIT_LSR_DATARDY ) == 0x01 )
|
||||
// {
|
||||
dat = ReadCH438Data( REG_RBR_ADDR );
|
||||
// }
|
||||
|
||||
return( dat );
|
||||
if((ReadCH438Data(REG_LSR_ADDR) & BIT_LSR_DATARDY) == 0x01)
|
||||
{
|
||||
dat = ReadCH438Data( REG_RBR_ADDR );
|
||||
if(dat >= 0)
|
||||
return dat;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
const struct rt_uart_ops extuart_ops =
|
||||
|
@ -362,111 +300,168 @@ const struct rt_uart_ops extuart_ops =
|
|||
RT_NULL
|
||||
};
|
||||
|
||||
static int Ch438Irq(void *parameter)
|
||||
{
|
||||
rt_sem_release(&ch438_sem);
|
||||
}
|
||||
|
||||
int Ch438InitDefault(void)
|
||||
{
|
||||
rt_err_t flag;
|
||||
|
||||
flag = rt_sem_init(&ch438_sem, "sem_438",0,RT_IPC_FLAG_FIFO);
|
||||
if (flag != RT_EOK)
|
||||
{
|
||||
rt_kprintf("ch438.drv create sem failed .\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
gpiohs_set_drive_mode(FPIOA_CH438_INT, GPIO_DM_INPUT_PULL_UP);
|
||||
gpiohs_set_pin_edge(FPIOA_CH438_INT,GPIO_PE_FALLING);
|
||||
gpiohs_irq_register(FPIOA_CH438_INT, 1, Ch438Irq, 0);
|
||||
|
||||
CH438_INIT();
|
||||
return 0;
|
||||
}
|
||||
INIT_APP_EXPORT(Ch438InitDefault);
|
||||
|
||||
int rt_hw_ch438_init(void)
|
||||
{
|
||||
struct rt_serial_device *extserial;
|
||||
struct device_uart *extuart;
|
||||
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
|
||||
rt_err_t ret;
|
||||
|
||||
|
||||
// #ifdef BSP_USING_UART1
|
||||
{
|
||||
static struct rt_serial_device extserial0;
|
||||
// static struct device_uart extuart0;
|
||||
|
||||
extserial = &extserial0;
|
||||
// extuart = &extuart0;
|
||||
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 115200;
|
||||
extserial->config.reserved = 0; ///< extern uart port
|
||||
extserial->config.reserved = 0; ///< extern uart port
|
||||
|
||||
// extuart->hw_base = UART1_BASE_ADDR;
|
||||
// extuart->irqno = IRQN_UART1_INTERRUPT;
|
||||
extuart_serial_parm[0] = &extserial0;
|
||||
|
||||
// _uart_init(UART_DEVICE_1);
|
||||
|
||||
rt_hw_serial_register(extserial,
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev0",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev0 register failed.\n");
|
||||
}
|
||||
}
|
||||
// #endif
|
||||
{
|
||||
static struct rt_serial_device extserial1;
|
||||
|
||||
// #ifdef BSP_USING_UART2
|
||||
// {
|
||||
// static struct rt_serial_device serial2;
|
||||
// static struct device_uart uart2;
|
||||
extserial = &extserial1;
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 9600;
|
||||
extserial->config.reserved = 1; ///< extern uart port
|
||||
|
||||
// serial = &serial2;
|
||||
// uart = &uart2;
|
||||
extuart_serial_parm[1] = &extserial1;
|
||||
|
||||
// serial->ops = &_uart_ops;
|
||||
// serial->config = config;
|
||||
// serial->config.baud_rate = UART_DEFAULT_BAUDRATE;
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev1",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev1 register failed.\n");
|
||||
}
|
||||
}
|
||||
{
|
||||
static struct rt_serial_device extserial2;
|
||||
|
||||
// uart->hw_base = UART2_BASE_ADDR;
|
||||
// uart->irqno = IRQN_UART2_INTERRUPT;
|
||||
extserial = &extserial2;
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 9600;
|
||||
extserial->config.reserved = 2; ///< extern uart port
|
||||
|
||||
// _uart_init(UART_DEVICE_2);
|
||||
extuart_serial_parm[2] = &extserial2;
|
||||
|
||||
// rt_hw_serial_register(serial,
|
||||
// "uart2",
|
||||
// RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
// uart);
|
||||
// }
|
||||
// #endif
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev2",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev2 register failed.\n");
|
||||
}
|
||||
|
||||
// #ifdef BSP_USING_UART3
|
||||
// {
|
||||
// static struct rt_serial_device serial3;
|
||||
// static struct device_uart uart3;
|
||||
}
|
||||
{
|
||||
static struct rt_serial_device extserial3;
|
||||
|
||||
// serial = &serial3;
|
||||
// uart = &uart3;
|
||||
extserial = &extserial3;
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 9600;
|
||||
extserial->config.reserved = 3; ///< extern uart port
|
||||
|
||||
// serial->ops = &_uart_ops;
|
||||
// serial->config = config;
|
||||
// serial->config.baud_rate = UART_DEFAULT_BAUDRATE;
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev3",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev3 register failed.\n");
|
||||
}
|
||||
|
||||
// uart->hw_base = UART3_BASE_ADDR;
|
||||
// uart->irqno = IRQN_UART3_INTERRUPT;
|
||||
extuart_serial_parm[3] = &extserial3;
|
||||
}
|
||||
{
|
||||
static struct rt_serial_device extserial4;
|
||||
|
||||
// _uart_init(UART_DEVICE_3);
|
||||
extserial = &extserial4;
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 9600;
|
||||
extserial->config.reserved = 4; ///< extern uart port
|
||||
|
||||
// rt_hw_serial_register(serial,
|
||||
// "uart3",
|
||||
// RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
// uart);
|
||||
// }
|
||||
// #endif
|
||||
// Ch438InitDefault();
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev4",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev4 register failed.\n");
|
||||
}
|
||||
|
||||
extuart_serial_parm[4] = &extserial4;
|
||||
}
|
||||
{
|
||||
static struct rt_serial_device extserial5;
|
||||
|
||||
extserial = &extserial5;
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 115200;
|
||||
extserial->config.reserved = 5; ///< extern uart port
|
||||
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev5",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev5 register failed.\n");
|
||||
}
|
||||
|
||||
extuart_serial_parm[5] = &extserial5;
|
||||
}
|
||||
{
|
||||
static struct rt_serial_device extserial6;
|
||||
|
||||
extserial = &extserial6;
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 57600;
|
||||
extserial->config.reserved = 6; ///< extern uart port
|
||||
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev6",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev6 register failed.\n");
|
||||
}
|
||||
|
||||
extuart_serial_parm[6] = &extserial6;
|
||||
}
|
||||
{
|
||||
static struct rt_serial_device extserial7;
|
||||
|
||||
extserial = &extserial7;
|
||||
extserial->ops = &extuart_ops;
|
||||
extserial->config = config;
|
||||
extserial->config.baud_rate = 9600;
|
||||
extserial->config.reserved = 7; ///< extern uart port
|
||||
|
||||
ret = rt_hw_serial_register(extserial,
|
||||
"extuart_dev7",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
|
||||
extuart);
|
||||
if(ret < 0){
|
||||
rt_kprintf("extuart_dev7 register failed.\n");
|
||||
}
|
||||
extuart_serial_parm[7] = &extserial7;
|
||||
|
||||
}
|
||||
|
||||
CH438_INIT();
|
||||
return 0;
|
||||
}
|
||||
INIT_DEVICE_EXPORT(rt_hw_ch438_init);
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
/* RT-Thread Kernel */
|
||||
|
||||
#define RT_NAME_MAX 8
|
||||
#define RT_NAME_MAX 24
|
||||
#define RT_USING_SMP
|
||||
#define RT_CPUS_NR 2
|
||||
#define RT_ALIGN_SIZE 8
|
||||
|
@ -206,7 +206,15 @@
|
|||
/* Framework */
|
||||
|
||||
#define TRANSFORM_LAYER_ATTRIUBUTE
|
||||
#define ADD_XIZI_FETURES
|
||||
#define ADD_RTTHREAD_FETURES
|
||||
#define SUPPORT_SENSOR_FRAMEWORK
|
||||
#define SENSOR_CH4
|
||||
#define SENSOR_AS830
|
||||
#define SENSOR_DEVICE_AS830 "as830_1"
|
||||
#define SENSOR_QUANTITY_AS830_CH4 "ch4_1"
|
||||
#define SENSOR_AS830_DRIVER_EXTUART
|
||||
#define SENSOR_DEVICE_AS830_DEV "/dev/extuart_dev1"
|
||||
#define SENSOR_DEVICE_AS830_DEV_EXT_PORT 1
|
||||
|
||||
/* Security */
|
||||
|
||||
|
@ -234,11 +242,12 @@
|
|||
/* sensor app */
|
||||
|
||||
#define APPLICATION_SENSOR
|
||||
#define APPLICATION_SENSOR_CH4
|
||||
#define APPLICATION_SENSOR_CH4_AS830
|
||||
|
||||
/* lib */
|
||||
|
||||
#define APP_SELECT_NEWLIB
|
||||
#define LIB_USING_CJSON
|
||||
#define __STACKSIZE__ 4096
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue