From bd443c8166740a9dd049db285e46ccf04800dd67 Mon Sep 17 00:00:00 2001 From: shaojinchun Date: Sat, 5 Jun 2021 18:20:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=5Fmsh=5Fexec=5Flwp=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=88=A4=E6=96=ADexec=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/finsh/msh.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/components/finsh/msh.c b/components/finsh/msh.c index 1ebb21df08..4e3323a821 100644 --- a/components/finsh/msh.c +++ b/components/finsh/msh.c @@ -314,6 +314,7 @@ int _msh_exec_lwp(char *cmd, rt_size_t length) char *argv[FINSH_ARG_MAX]; int fd = -1; char *pg_name; + int ret; /* find the size of first command */ while ((cmd[cmd0_size] != ' ' && cmd[cmd0_size] != '\t') && cmd0_size < length) @@ -364,14 +365,14 @@ int _msh_exec_lwp(char *cmd, rt_size_t length) close(fd); #ifdef RT_USING_GDBSERVER - exec(pg_name, debug, argc, argv); + ret = exec(pg_name, debug, argc, argv); #else - exec(pg_name, argc, argv); + ret = exec(pg_name, argc, argv); #endif if (pg_name != argv[0]) rt_free(pg_name); - return 0; + return ret; } #endif -- Gitee From 32d0b8938cc17284349dfb4a9d6fc96e9bb562fd Mon Sep 17 00:00:00 2001 From: shaojinchun Date: Sat, 5 Jun 2021 18:27:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3raspi4=20smart=E5=9C=A8?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=A4=9Apl011=E4=B8=B2=E5=8F=A3=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=85=B3=E9=97=AD=E5=85=B6=E4=B8=AD=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E4=BC=9A=E5=AF=BC=E8=87=B4=E6=89=80=E6=9C=89=E5=90=8C=E7=B1=BB?= =?UTF-8?q?=E4=B8=B2=E5=8F=A3=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20=E8=A7=A3=E5=86=B3raspi4=E7=BD=91=E7=BB=9C=E5=8D=A1=E6=AD=BB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/raspberry-pi/raspi4-32/driver/board.c | 34 ++----------------- bsp/raspberry-pi/raspi4-32/driver/drv_eth.c | 3 +- bsp/raspberry-pi/raspi4-32/driver/drv_uart.c | 10 ------ bsp/raspberry-pi/raspi4-32/driver/raspi4.h | 6 ++-- bsp/raspberry-pi/raspi4-64/drivers/board.c | 6 ++-- bsp/raspberry-pi/raspi4-64/drivers/drv_eth.c | 2 +- bsp/raspberry-pi/raspi4-64/drivers/drv_uart.c | 10 ------ bsp/raspberry-pi/raspi4-64/drivers/raspi4.h | 6 ++-- 8 files changed, 14 insertions(+), 63 deletions(-) diff --git a/bsp/raspberry-pi/raspi4-32/driver/board.c b/bsp/raspberry-pi/raspi4-32/driver/board.c index f3d683bfc1..8eeca85f50 100644 --- a/bsp/raspberry-pi/raspi4-32/driver/board.c +++ b/bsp/raspberry-pi/raspi4-32/driver/board.c @@ -46,10 +46,10 @@ size_t mbox_addr = MBOX_ADDR; size_t wdt_base_addr = WDT_BASE; -void* mac_reg_base_addr = (void *)MAC_REG; +uint8_t *mac_reg_base_addr = (uint8_t *)MAC_REG; -void* eth_send_no_cache = (void *)SEND_DATA_NO_CACHE; -void* eth_recv_no_cache = (void *)RECV_DATA_NO_CACHE; +uint8_t *eth_send_no_cache = (uint8_t *)SEND_DATA_NO_CACHE; +uint8_t *eth_recv_no_cache = (uint8_t *)RECV_DATA_NO_CACHE; #ifdef RT_USING_USERSPACE struct mem_desc platform_mem_desc[] = { @@ -188,31 +188,3 @@ void rt_hw_board_init(void) rt_components_board_init(); #endif } - -#ifdef RT_USING_GDBSERVER -#include - -#define GDB_CONNECT_DEVICE "/dev/uart4" - -/* for gdb */ -int gdb_com_open(void) -{ - return open(GDB_CONNECT_DEVICE, O_RDWR); -} - -void gdb_com_close(int fd) -{ - close(fd); -} - -ssize_t gdb_com_read(int fd, void *buff, size_t len) -{ - return read(fd, buff, len); -} - -ssize_t gdb_com_write(int fd, void *buff, size_t len) -{ - return write(fd, buff, len); -} - -#endif diff --git a/bsp/raspberry-pi/raspi4-32/driver/drv_eth.c b/bsp/raspberry-pi/raspi4-32/driver/drv_eth.c index 12c7ee89e8..8ab6fc79a3 100644 --- a/bsp/raspberry-pi/raspi4-32/driver/drv_eth.c +++ b/bsp/raspberry-pi/raspi4-32/driver/drv_eth.c @@ -49,7 +49,6 @@ static rt_uint32_t rx_index = 0; static rt_uint32_t index_flag = 0; static rt_uint8_t send_cache_pbuf[RECV_CACHE_BUF]; -static rt_uint8_t recv_data[RX_BUF_LENGTH]; struct rt_eth_dev { @@ -430,7 +429,7 @@ static rt_uint32_t bcmgenet_gmac_eth_recv(rt_uint8_t **packetp) } else { - if(prev_recv_cnt == prod_index) + if(prev_recv_cnt == (prod_index & 0xffffUL)) { return 0; } diff --git a/bsp/raspberry-pi/raspi4-32/driver/drv_uart.c b/bsp/raspberry-pi/raspi4-32/driver/drv_uart.c index 31331a4609..e0b849c34d 100644 --- a/bsp/raspberry-pi/raspi4-32/driver/drv_uart.c +++ b/bsp/raspberry-pi/raspi4-32/driver/drv_uart.c @@ -117,16 +117,6 @@ static rt_err_t uart_control(struct rt_serial_device *serial, int cmd, void *arg switch (cmd) { case RT_DEVICE_CTRL_CLR_INT: - /* disable rx irq */ - if(uart->hw_base == AUX_BASE) - { - AUX_MU_IER_REG(uart->hw_base) = 0x0; - } - else - { - PL011_REG_IMSC(uart->hw_base) &= ~((uint32_t)PL011_IMSC_RXIM); - } - rt_hw_interrupt_mask(uart->irqno); break; case RT_DEVICE_CTRL_SET_INT: diff --git a/bsp/raspberry-pi/raspi4-32/driver/raspi4.h b/bsp/raspberry-pi/raspi4-32/driver/raspi4.h index e0afd1f712..be46bfd958 100644 --- a/bsp/raspberry-pi/raspi4-32/driver/raspi4.h +++ b/bsp/raspberry-pi/raspi4-32/driver/raspi4.h @@ -165,15 +165,15 @@ extern uint32_t mmc2_base_addr; //mac #define MAC_REG (void *)(0xfd580000) -extern void * mac_reg_base_addr; +extern uint8_t * mac_reg_base_addr; #define ETH_IRQ (160+29) #define SEND_DATA_NO_CACHE (0x08200000) -extern void * eth_send_no_cache; +extern uint8_t * eth_send_no_cache; #define RECV_DATA_NO_CACHE (0x08400000) -extern void * eth_recv_no_cache; +extern uint8_t * eth_recv_no_cache; /* the basic constants and interfaces needed by gic */ rt_inline rt_uint32_t platform_get_gic_dist_base(void) diff --git a/bsp/raspberry-pi/raspi4-64/drivers/board.c b/bsp/raspberry-pi/raspi4-64/drivers/board.c index e5960b0fa5..6bc919595d 100644 --- a/bsp/raspberry-pi/raspi4-64/drivers/board.c +++ b/bsp/raspberry-pi/raspi4-64/drivers/board.c @@ -46,10 +46,10 @@ size_t mbox_addr = MBOX_ADDR; size_t wdt_base_addr = WDT_BASE; -void* mac_reg_base_addr = (void *)MAC_REG; +uint8_t *mac_reg_base_addr = (uint8_t *)MAC_REG; -void* eth_send_no_cache = (void *)SEND_DATA_NO_CACHE; -void* eth_recv_no_cache = (void *)RECV_DATA_NO_CACHE; +uint8_t *eth_send_no_cache = (uint8_t *)SEND_DATA_NO_CACHE; +uint8_t *eth_recv_no_cache = (uint8_t *)RECV_DATA_NO_CACHE; #ifdef RT_USING_USERSPACE struct mem_desc platform_mem_desc[] = { diff --git a/bsp/raspberry-pi/raspi4-64/drivers/drv_eth.c b/bsp/raspberry-pi/raspi4-64/drivers/drv_eth.c index 29b598b1f5..da65b94bb9 100644 --- a/bsp/raspberry-pi/raspi4-64/drivers/drv_eth.c +++ b/bsp/raspberry-pi/raspi4-64/drivers/drv_eth.c @@ -431,7 +431,7 @@ static rt_uint32_t bcmgenet_gmac_eth_recv(rt_uint8_t **packetp) } else { - if(prev_recv_cnt == prod_index) + if(prev_recv_cnt == (prod_index & 0xffffUL)) { return 0; } diff --git a/bsp/raspberry-pi/raspi4-64/drivers/drv_uart.c b/bsp/raspberry-pi/raspi4-64/drivers/drv_uart.c index 31331a4609..e0b849c34d 100644 --- a/bsp/raspberry-pi/raspi4-64/drivers/drv_uart.c +++ b/bsp/raspberry-pi/raspi4-64/drivers/drv_uart.c @@ -117,16 +117,6 @@ static rt_err_t uart_control(struct rt_serial_device *serial, int cmd, void *arg switch (cmd) { case RT_DEVICE_CTRL_CLR_INT: - /* disable rx irq */ - if(uart->hw_base == AUX_BASE) - { - AUX_MU_IER_REG(uart->hw_base) = 0x0; - } - else - { - PL011_REG_IMSC(uart->hw_base) &= ~((uint32_t)PL011_IMSC_RXIM); - } - rt_hw_interrupt_mask(uart->irqno); break; case RT_DEVICE_CTRL_SET_INT: diff --git a/bsp/raspberry-pi/raspi4-64/drivers/raspi4.h b/bsp/raspberry-pi/raspi4-64/drivers/raspi4.h index cff7ab906a..f3e6ed8927 100644 --- a/bsp/raspberry-pi/raspi4-64/drivers/raspi4.h +++ b/bsp/raspberry-pi/raspi4-64/drivers/raspi4.h @@ -165,15 +165,15 @@ extern size_t mmc2_base_addr; //mac #define MAC_REG (void *)(0xfd580000) -extern void * mac_reg_base_addr; +extern uint8_t * mac_reg_base_addr; #define ETH_IRQ (160+29) #define SEND_DATA_NO_CACHE (0x08200000) -extern void * eth_send_no_cache; +extern uint8_t * eth_send_no_cache; #define RECV_DATA_NO_CACHE (0x08400000) -extern void * eth_recv_no_cache; +extern uint8_t * eth_recv_no_cache; /* the basic constants and interfaces needed by gic */ rt_inline size_t platform_get_gic_dist_base(void) -- Gitee