diff --git a/bsp/lpc824/applications/startup.c b/bsp/lpc824/applications/startup.c index 35a9784e9f72a29a71232c4fb856988100dfe528..15c949df7e8086b7712c7c28cd825b0046a0aed2 100644 --- a/bsp/lpc824/applications/startup.c +++ b/bsp/lpc824/applications/startup.c @@ -26,11 +26,6 @@ /*@{*/ extern int rt_application_init(void); -#ifdef RT_USING_FINSH -extern int finsh_system_init(void); -extern void finsh_set_device(const char* device); -#endif - /******************************************************************************* * Function Name : assert_failed @@ -87,8 +82,7 @@ void rtthread_startup(void) rt_thread_idle_init(); /* start scheduler */ - -rt_system_scheduler_start(); + rt_system_scheduler_start(); /* never reach here */ return ; diff --git a/bsp/simulator/drivers/module_win32.c b/bsp/simulator/drivers/module_win32.c index 0c998eed2c16286f771978e0ee1e5dc9052eebad..8fcf3ef2fe0c9d099494b741526ffd89da38f3e8 100644 --- a/bsp/simulator/drivers/module_win32.c +++ b/bsp/simulator/drivers/module_win32.c @@ -164,15 +164,15 @@ rt_module_t rt_module_find(const char *name) struct rt_object *object; struct rt_list_node *node; - extern struct rt_object_information rt_object_container[]; - RT_DEBUG_NOT_IN_INTERRUPT; /* enter critical */ rt_enter_critical(); /* try to find device object */ - information = &rt_object_container[RT_Object_Class_Module]; + information = rt_object_get_information(RT_Object_Class_Module); + RT_ASSERT(information != RT_NULL); + for (node = information->object_list.next; node != &(information->object_list); node = node->next) diff --git a/bsp/x1000/.config b/bsp/x1000/.config index 70b39be9c9b48e4f445f1d7cb890d24732506306..ffb6b42cda16ecf101cb30115fca2ff5514039b1 100644 --- a/bsp/x1000/.config +++ b/bsp/x1000/.config @@ -85,6 +85,7 @@ CONFIG_FINSH_USING_MSH_DEFAULT=y CONFIG_RT_USING_DFS=y CONFIG_DFS_USING_WORKDIR=y CONFIG_DFS_FILESYSTEMS_MAX=4 +CONFIG_DFS_FILESYSTEM_TYPES_MAX=2 CONFIG_DFS_FD_MAX=4 CONFIG_RT_USING_DFS_ELMFAT=y @@ -108,6 +109,7 @@ CONFIG_RT_USING_DFS_DEVFS=y # CONFIG_RT_USING_DFS_ROMFS is not set # CONFIG_RT_USING_DFS_RAMFS is not set # CONFIG_RT_USING_DFS_UFFS is not set +# CONFIG_RT_USING_DFS_NFS is not set # # Device Drivers @@ -116,14 +118,20 @@ CONFIG_RT_USING_DEVICE_IPC=y CONFIG_RT_USING_SERIAL=y # CONFIG_RT_USING_CAN is not set # CONFIG_RT_USING_HWTIMER is not set -# CONFIG_RT_USING_I2C is not set +CONFIG_RT_USING_I2C=y +CONFIG_RT_USING_I2C_BITOPS=y CONFIG_RT_USING_PIN=y CONFIG_RT_USING_MTD_NOR=y # CONFIG_RT_USING_MTD_NAND is not set # CONFIG_RT_USING_RTC is not set -# CONFIG_RT_USING_SDIO is not set +CONFIG_RT_USING_SDIO=y # CONFIG_RT_USING_SPI is not set # CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# # CONFIG_RT_USING_USB_HOST is not set # CONFIG_RT_USING_USB_DEVICE is not set @@ -131,10 +139,8 @@ CONFIG_RT_USING_MTD_NOR=y # POSIX layer and C standard library # CONFIG_RT_USING_LIBC=y -# CONFIG_RT_USING_PTHREADS is not set -CONFIG_RT_USING_POSIX=y -# CONFIG_RT_USING_POSIX_MMAP is not set -# CONFIG_RT_USING_POSIX_TERMIOS is not set +CONFIG_RT_USING_PTHREADS=y +# CONFIG_RT_USING_POSIX is not set # # Network stack @@ -143,23 +149,96 @@ CONFIG_RT_USING_POSIX=y # # light weight TCP/IP stack # -# CONFIG_RT_USING_LWIP is not set +CONFIG_RT_USING_LWIP=y +# CONFIG_RT_USING_LWIP141 is not set +CONFIG_RT_USING_LWIP202=y +# CONFIG_RT_USING_LWIP_IPV6 is not set +# CONFIG_RT_LWIP_IGMP is not set +CONFIG_RT_LWIP_ICMP=y +# CONFIG_RT_LWIP_SNMP is not set +CONFIG_RT_LWIP_DNS=y +CONFIG_RT_LWIP_DHCP=y +CONFIG_IP_SOF_BROADCAST=1 +CONFIG_IP_SOF_BROADCAST_RECV=1 + +# +# Static IPv4 Address +# +CONFIG_RT_LWIP_IPADDR="192.168.1.30" +CONFIG_RT_LWIP_GWADDR="192.168.1.1" +CONFIG_RT_LWIP_MSKADDR="255.255.255.0" +CONFIG_RT_LWIP_UDP=y +CONFIG_RT_LWIP_TCP=y +# CONFIG_RT_LWIP_RAW is not set +# CONFIG_RT_LWIP_PPP is not set +CONFIG_RT_MEMP_NUM_NETCONN=8 +CONFIG_RT_LWIP_PBUF_NUM=16 +CONFIG_RT_LWIP_RAW_PCB_NUM=4 +CONFIG_RT_LWIP_UDP_PCB_NUM=4 +CONFIG_RT_LWIP_TCP_PCB_NUM=4 +CONFIG_RT_LWIP_TCP_SEG_NUM=40 +CONFIG_RT_LWIP_TCP_SND_BUF=8196 +CONFIG_RT_LWIP_TCP_WND=8196 +CONFIG_RT_LWIP_TCPTHREAD_PRIORITY=10 +CONFIG_RT_LWIP_TCPTHREAD_MBOX_SIZE=8 +CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=2048 +CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12 +CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=1024 +CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8 +CONFIG_RT_LWIP_REASSEMBLY_FRAG=y +CONFIG_LWIP_NETIF_STATUS_CALLBACK=1 +CONFIG_SO_REUSE=1 +CONFIG_LWIP_SO_RCVTIMEO=1 +CONFIG_LWIP_SO_SNDTIMEO=1 +CONFIG_LWIP_SO_RCVBUF=1 # # Modbus master and slave stack # # CONFIG_RT_USING_MODBUS is not set +# CONFIG_LWIP_USING_DHCPD is not set +# CONFIG_RT_USING_NETUTILS is not set # # RT-Thread UI Engine # -# CONFIG_RT_USING_GUIENGINE is not set +CONFIG_RT_USING_GUIENGINE=y +CONFIG_RTGUI_NAME_MAX=16 +# CONFIG_RTGUI_USING_TTF is not set +CONFIG_RTGUI_USING_FONT16=y +CONFIG_RTGUI_USING_FONT12=y +# CONFIG_RTGUI_USING_FONTHZ is not set +# CONFIG_RTGUI_IMAGE_XPM is not set +CONFIG_RTGUI_IMAGE_JPEG_NONE=y +# CONFIG_RTGUI_IMAGE_JPEG is not set +# CONFIG_RTGUI_IMAGE_TJPGD is not set +# CONFIG_RTGUI_IMAGE_PNG_NONE is not set +# CONFIG_RTGUI_IMAGE_PNG is not set +CONFIG_RTGUI_IMAGE_LODEPNG=y +# CONFIG_RTGUI_IMAGE_BMP is not set +CONFIG_RTGUI_IMAGE_CONTAINER=y +CONFIG_RTGUI_USING_DEMO=y # # VBUS(Virtual Software BUS) # # CONFIG_RT_USING_VBUS is not set +# +# Utilities +# +# CONFIG_RT_USING_LOGTRACE is not set +# CONFIG_RT_USING_RYM is not set + +# +# RT-Thread Senior Membership Packages +# + +# +# system packages +# +# CONFIG_PKG_USING_FTL_SRC is not set + # # RT-Thread online packages # @@ -168,7 +247,9 @@ CONFIG_RT_USING_POSIX=y # system packages # # CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_PERSIMMON is not set # CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set # # IoT - internet of things @@ -179,26 +260,25 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_WEBTERMINAL is not set # CONFIG_PKG_USING_CJSON is not set # CONFIG_PKG_USING_EZXML is not set - -# -# Marvell WiFi -# -# CONFIG_PKG_USING_MARVELLWIFI is not set +# CONFIG_PKG_USING_NANOPB is not set # # security packages # # CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set # # language packages # # CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set # # multimedia packages # -# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_OPENMV is not set # # tools packages @@ -206,10 +286,17 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_CMBACKTRACE is not set # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_IPERF is not set # # miscellaneous packages # +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set + +# +# example package: hello +# # CONFIG_PKG_USING_HELLO is not set CONFIG_BOARD_X1000_REALBOARD=y # CONFIG_RT_USING_HARD_FLOAT is not set @@ -221,5 +308,23 @@ CONFIG_BOARD_HALLEY2_REALBOARD_V2=y # CONFIG_RT_USING_UART0 is not set # CONFIG_RT_USING_UART1 is not set CONFIG_RT_USING_UART2=y +CONFIG_RT_USING_MSC0=y +CONFIG_RT_USING_MSC1=y +CONFIG_RT_MMCSD_STACK_SIZE=2048 +CONFIG_RT_USING_I2C0=y +# CONFIG_RT_USING_I2C1 is not set +# CONFIG_RT_USING_I2C2 is not set +CONFIG_RT_USING_SLCD=y +CONFIG_RT_USING_ILI9488=y +# CONFIG_RT_USING_ILI9341 is not set +# CONFIG_RT_USING_OTM4802 is not set +# CONFIG_RT_USING_TRULY_TFT240240 is not set +CONFIG_RT_USING_TOUCH=y +CONFIG_RT_USING_GT9XX=y +# CONFIG_RT_USING_FT6x06 is not set +CONFIG_RT_TOUCH_THREAD_PRIORITY=10 CONFIG_RT_USING_AUDIO=y +CONFIG_RT_USING_ICODEC=y CONFIG_RT_USING_CPU_FFS=y +# CONFIG_WIFI_USING_AP6212 is not set +# CONFIG_WIFI_USING_AP6181 is not set diff --git a/bsp/x1000/applications/mnt_init.c b/bsp/x1000/applications/mnt.c similarity index 100% rename from bsp/x1000/applications/mnt_init.c rename to bsp/x1000/applications/mnt.c diff --git a/bsp/x1000/applications/rtgui_demo.c b/bsp/x1000/applications/rtgui_demo.c deleted file mode 100644 index 645906792e3349aa246a4ae2d87b0ba6ad26c86b..0000000000000000000000000000000000000000 --- a/bsp/x1000/applications/rtgui_demo.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * File : rtgui_demo.c - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2008 - 2017, RT-Thread Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Change Logs: - * Date Author Notes - * 2017-11-8 Tangyuxin first version - */ - -#include - -// #define DEBUG - -#ifdef DEBUG -#define DEBUG_PRINTF(...) rt_kprintf(__VA_ARGS__) -#else -#define DEBUG_PRINTF(...) -#endif - -#ifdef RT_USING_GUIENGINE - -#include -#include -#include - -#include -#include - -struct rtgui_win *main_win; -rt_bool_t dc_event_handler(struct rtgui_object *object, rtgui_event_t *event); - -static void rt_gui_demo_entry(void *parameter) -{ - struct rtgui_app *app; - - DEBUG_PRINTF("gui demo entry\n"); - - /* create gui app */ - app = rtgui_app_create("gui_demo"); - if (app == RT_NULL) - { - DEBUG_PRINTF("rtgui_app_create faild\n"); - return; - } - - /* create main window */ - main_win = rtgui_mainwin_create(RT_NULL, - "UiWindow", RTGUI_WIN_STYLE_NO_TITLE | RTGUI_WIN_STYLE_NO_BORDER); - if (main_win == RT_NULL) - { - DEBUG_PRINTF("main_win is null\n"); - rtgui_app_destroy(app); - return; - } - - rtgui_object_set_event_handler(RTGUI_OBJECT(main_win), dc_event_handler); - - DEBUG_PRINTF("rtgui_win_show\n"); - rtgui_win_show(main_win, RT_FALSE); - - DEBUG_PRINTF("rtgui_app_run\n"); - rtgui_app_run(app); - - DEBUG_PRINTF("rtgui_win_destroy\n"); - rtgui_win_destroy(main_win); - - DEBUG_PRINTF("rtgui_app_destroy\n"); - rtgui_app_destroy(app); -} - -rt_bool_t dc_event_handler(struct rtgui_object *object, rtgui_event_t *event) -{ - struct rtgui_widget *widget = RTGUI_WIDGET(object); - - if (event->type == RTGUI_EVENT_PAINT) - { - struct rtgui_dc *dc; - rtgui_rect_t rect; - - DEBUG_PRINTF("\r\n RTGUI_EVENT_PAINT \r\n"); - rtgui_win_event_handler(RTGUI_OBJECT(widget), event); - - rtgui_widget_get_rect(widget, &rect); - DEBUG_PRINTF("widget react x1: %d, y1: %d, x2: %d, y2: %d\r\n", - rect.x1, rect.y1, rect.x2, rect.y2); - - dc = rtgui_dc_begin_drawing(widget); - if (dc == RT_NULL) - { - DEBUG_PRINTF("\r\n dc is null \r\n"); - return RT_FALSE; - } - - rtgui_dc_draw_line(dc, rect.x1, rect.y1, rect.x2, rect.y2); - rtgui_dc_draw_line(dc, rect.x1, rect.y2, rect.x2, rect.y1); - - rect.x1 += (rect.x2 - rect.x1) / 2; - rect.y1 += (rect.y2 - rect.y1) / 2; - rtgui_dc_draw_text_stroke(dc, __DATE__"--"__TIME__, &rect, HIGH_LIGHT, BLUE); - - rtgui_dc_end_drawing(dc,RT_TRUE); - } - return RT_FALSE; -} - -int rt_gui_demo_init(void) -{ - rt_thread_t tid; - rt_device_t device; - rt_err_t err; - - device = rt_device_find("lcd"); - if (device == RT_NULL) - { - rt_kprintf("Not found LCD driver\n"); - return RT_ERROR; - } - - err = rt_device_open(device, RT_DEVICE_OFLAG_RDWR); - if (err != RT_EOK) - { - rt_kprintf("Open LCD driver fail\n"); - return RT_ERROR; - } - - /* set graphic device */ - rtgui_graphic_set_device(device); - - tid = rt_thread_create("mygui", - rt_gui_demo_entry, RT_NULL, - 2048, 25, 10); - - if (tid != RT_NULL) - rt_thread_startup(tid); - - return 0; -} -INIT_APP_EXPORT(rt_gui_demo_init); -#endif /* RT_USING_GUIENGINE */ diff --git a/bsp/x1000/applications/wlan.c b/bsp/x1000/applications/wlan.c new file mode 100644 index 0000000000000000000000000000000000000000..585c27687f60525ab68d605bc47de4f04790a064 --- /dev/null +++ b/bsp/x1000/applications/wlan.c @@ -0,0 +1,11 @@ +#include + +#ifdef RT_USING_WIFI +#include "wlan_wiced.h" + +int wifi_init(void) +{ + wifi_hw_init(); +} +INIT_ENV_EXPORT(wifi_init); +#endif diff --git a/bsp/x1000/drivers/Kconfig b/bsp/x1000/drivers/Kconfig index 74406e6754fa366cc0195203497c282c0f65ecd3..6d6d89503a6ff409766bf5b45abf061ad2e16a9b 100644 --- a/bsp/x1000/drivers/Kconfig +++ b/bsp/x1000/drivers/Kconfig @@ -109,16 +109,31 @@ if RT_USING_GUIENGINE endif endif - - -config RT_USING_ICODEC - default n - config RT_USING_AUDIO bool "Using audio" select RT_USING_ICODEC default n +if RT_USING_AUDIO + config RT_USING_ICODEC + bool "Using internal codec for audio" + default y if BOARD_HALLEY2_REALBOARD_V2 + default n +endif + config RT_USING_CPU_FFS bool "Using CPU FFS" default y + +if PKG_USING_WLAN_WICED + choice + prompt "Broadcom Wi-Fi module" + default WIFI_USING_AP6212 + + config WIFI_USING_AP6212 + bool "AP6212A module(bcm43438)" + + config WIFI_USING_AP6181 + bool "AP6181 module(bcm43362)" + endchoice +endif diff --git a/bsp/x1000/drivers/board.c b/bsp/x1000/drivers/board.c index 1f8c5e1e2335c0f1000c632556258d74aff5db0b..ec11017ec203db8bde5a850321a7951a5ceaa30a 100644 --- a/bsp/x1000/drivers/board.c +++ b/bsp/x1000/drivers/board.c @@ -53,6 +53,33 @@ int cplusplus_system_init(void) } #endif +#ifdef RT_USING_GUIENGINE +#include +int lcd_hw_init(void) +{ + rt_device_t device; + rt_err_t err; + + device = rt_device_find("lcd"); + if (device == RT_NULL) + { + rt_kprintf("Not found LCD driver\n"); + return RT_ERROR; + } + + err = rt_device_open(device, RT_DEVICE_OFLAG_RDWR); + if (err != RT_EOK) + { + rt_kprintf("Open LCD driver fail\n"); + return RT_ERROR; + } + + /* set graphic device */ + rtgui_graphic_set_device(device); +} +INIT_ENV_EXPORT(lcd_hw_init); +#endif + void rt_hw_board_init(void) { memcpy((void*)&_iramstart, (void*)&_iramcopy, (rt_uint32_t)&_iramend - (rt_uint32_t)&_iramstart); diff --git a/bsp/x1000/rtconfig.h b/bsp/x1000/rtconfig.h index 6bdde456e8aa54175bc0f199db9d10da3c454ee2..a82c195ffc6695c7f96d48dd4573041b851dc431 100644 --- a/bsp/x1000/rtconfig.h +++ b/bsp/x1000/rtconfig.h @@ -78,6 +78,7 @@ #define RT_USING_DFS #define DFS_USING_WORKDIR #define DFS_FILESYSTEMS_MAX 4 +#define DFS_FILESYSTEM_TYPES_MAX 2 #define DFS_FD_MAX 4 #define RT_USING_DFS_ELMFAT @@ -100,6 +101,7 @@ /* RT_USING_DFS_ROMFS is not set */ /* RT_USING_DFS_RAMFS is not set */ /* RT_USING_DFS_UFFS is not set */ +/* RT_USING_DFS_NFS is not set */ /* Device Drivers */ @@ -107,49 +109,122 @@ #define RT_USING_SERIAL /* RT_USING_CAN is not set */ /* RT_USING_HWTIMER is not set */ -/* RT_USING_I2C is not set */ +#define RT_USING_I2C +#define RT_USING_I2C_BITOPS #define RT_USING_PIN #define RT_USING_MTD_NOR /* RT_USING_MTD_NAND is not set */ /* RT_USING_RTC is not set */ -/* RT_USING_SDIO is not set */ +#define RT_USING_SDIO /* RT_USING_SPI is not set */ /* RT_USING_WDT is not set */ +/* RT_USING_WIFI is not set */ + +/* Using USB */ + /* RT_USING_USB_HOST is not set */ /* RT_USING_USB_DEVICE is not set */ /* POSIX layer and C standard library */ #define RT_USING_LIBC -/* RT_USING_PTHREADS is not set */ -#define RT_USING_POSIX -/* RT_USING_POSIX_MMAP is not set */ -/* RT_USING_POSIX_TERMIOS is not set */ +#define RT_USING_PTHREADS +/* RT_USING_POSIX is not set */ /* Network stack */ /* light weight TCP/IP stack */ -/* RT_USING_LWIP is not set */ +#define RT_USING_LWIP +/* RT_USING_LWIP141 is not set */ +#define RT_USING_LWIP202 +/* RT_USING_LWIP_IPV6 is not set */ +/* RT_LWIP_IGMP is not set */ +#define RT_LWIP_ICMP +/* RT_LWIP_SNMP is not set */ +#define RT_LWIP_DNS +#define RT_LWIP_DHCP +#define IP_SOF_BROADCAST 1 +#define IP_SOF_BROADCAST_RECV 1 + +/* Static IPv4 Address */ + +#define RT_LWIP_IPADDR "192.168.1.30" +#define RT_LWIP_GWADDR "192.168.1.1" +#define RT_LWIP_MSKADDR "255.255.255.0" +#define RT_LWIP_UDP +#define RT_LWIP_TCP +/* RT_LWIP_RAW is not set */ +/* RT_LWIP_PPP is not set */ +#define RT_MEMP_NUM_NETCONN 8 +#define RT_LWIP_PBUF_NUM 16 +#define RT_LWIP_RAW_PCB_NUM 4 +#define RT_LWIP_UDP_PCB_NUM 4 +#define RT_LWIP_TCP_PCB_NUM 4 +#define RT_LWIP_TCP_SEG_NUM 40 +#define RT_LWIP_TCP_SND_BUF 8196 +#define RT_LWIP_TCP_WND 8196 +#define RT_LWIP_TCPTHREAD_PRIORITY 10 +#define RT_LWIP_TCPTHREAD_MBOX_SIZE 8 +#define RT_LWIP_TCPTHREAD_STACKSIZE 2048 +#define RT_LWIP_ETHTHREAD_PRIORITY 12 +#define RT_LWIP_ETHTHREAD_STACKSIZE 1024 +#define RT_LWIP_ETHTHREAD_MBOX_SIZE 8 +#define RT_LWIP_REASSEMBLY_FRAG +#define LWIP_NETIF_STATUS_CALLBACK 1 +#define SO_REUSE 1 +#define LWIP_SO_RCVTIMEO 1 +#define LWIP_SO_SNDTIMEO 1 +#define LWIP_SO_RCVBUF 1 /* Modbus master and slave stack */ /* RT_USING_MODBUS is not set */ +/* LWIP_USING_DHCPD is not set */ +/* RT_USING_NETUTILS is not set */ /* RT-Thread UI Engine */ -/* RT_USING_GUIENGINE is not set */ +#define RT_USING_GUIENGINE +#define RTGUI_NAME_MAX 16 +/* RTGUI_USING_TTF is not set */ +#define RTGUI_USING_FONT16 +#define RTGUI_USING_FONT12 +/* RTGUI_USING_FONTHZ is not set */ +/* RTGUI_IMAGE_XPM is not set */ +#define RTGUI_IMAGE_JPEG_NONE +/* RTGUI_IMAGE_JPEG is not set */ +/* RTGUI_IMAGE_TJPGD is not set */ +/* RTGUI_IMAGE_PNG_NONE is not set */ +/* RTGUI_IMAGE_PNG is not set */ +#define RTGUI_IMAGE_LODEPNG +/* RTGUI_IMAGE_BMP is not set */ +#define RTGUI_IMAGE_CONTAINER +#define RTGUI_USING_DEMO /* VBUS(Virtual Software BUS) */ /* RT_USING_VBUS is not set */ +/* Utilities */ + +/* RT_USING_LOGTRACE is not set */ +/* RT_USING_RYM is not set */ + +/* RT-Thread Senior Membership Packages */ + +/* system packages */ + +/* PKG_USING_FTL_SRC is not set */ + /* RT-Thread online packages */ /* system packages */ /* PKG_USING_PARTITION is not set */ +/* PKG_USING_PERSIMMON is not set */ /* PKG_USING_SQLITE is not set */ +/* PKG_USING_RTI is not set */ /* IoT - internet of things */ @@ -159,31 +234,37 @@ /* PKG_USING_WEBTERMINAL is not set */ /* PKG_USING_CJSON is not set */ /* PKG_USING_EZXML is not set */ - -/* Marvell WiFi */ - -/* PKG_USING_MARVELLWIFI is not set */ +/* PKG_USING_NANOPB is not set */ /* security packages */ /* PKG_USING_MBEDTLS is not set */ +/* PKG_USING_libsodium is not set */ +/* PKG_USING_TINYCRYPT is not set */ /* language packages */ /* PKG_USING_JERRYSCRIPT is not set */ +/* PKG_USING_MICROPYTHON is not set */ /* multimedia packages */ -/* PKG_USING_FASTLZ is not set */ +/* PKG_USING_OPENMV is not set */ /* tools packages */ /* PKG_USING_CMBACKTRACE is not set */ /* PKG_USING_EASYLOGGER is not set */ /* PKG_USING_SYSTEMVIEW is not set */ +/* PKG_USING_IPERF is not set */ /* miscellaneous packages */ +/* PKG_USING_FASTLZ is not set */ +/* PKG_USING_MINILZO is not set */ + +/* example package: hello */ + /* PKG_USING_HELLO is not set */ #define BOARD_X1000_REALBOARD /* RT_USING_HARD_FLOAT is not set */ @@ -195,7 +276,25 @@ /* RT_USING_UART0 is not set */ /* RT_USING_UART1 is not set */ #define RT_USING_UART2 +#define RT_USING_MSC0 +#define RT_USING_MSC1 +#define RT_MMCSD_STACK_SIZE 2048 +#define RT_USING_I2C0 +/* RT_USING_I2C1 is not set */ +/* RT_USING_I2C2 is not set */ +#define RT_USING_SLCD +#define RT_USING_ILI9488 +/* RT_USING_ILI9341 is not set */ +/* RT_USING_OTM4802 is not set */ +/* RT_USING_TRULY_TFT240240 is not set */ +#define RT_USING_TOUCH +#define RT_USING_GT9XX +/* RT_USING_FT6x06 is not set */ +#define RT_TOUCH_THREAD_PRIORITY 10 #define RT_USING_AUDIO +#define RT_USING_ICODEC #define RT_USING_CPU_FFS +/* WIFI_USING_AP6212 is not set */ +/* WIFI_USING_AP6181 is not set */ #endif diff --git a/components/dfs/filesystems/devfs/devfs.c b/components/dfs/filesystems/devfs/devfs.c index 6bfeccb578436989d7096f50ef55289f1cec073a..4f2f0ebcd97b10fc44ef7f5e4f8d5c1dd54bdd4c 100644 --- a/components/dfs/filesystems/devfs/devfs.c +++ b/components/dfs/filesystems/devfs/devfs.c @@ -150,13 +150,12 @@ int dfs_device_fs_open(struct dfs_fd *file) struct device_dirent *root_dirent; rt_uint32_t count = 0; - extern struct rt_object_information rt_object_container[]; - /* lock scheduler */ rt_enter_critical(); /* traverse device object */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) { count ++; diff --git a/components/dfs/src/dfs.c b/components/dfs/src/dfs.c index 97e9ae5b220cd944552a7a70bb67e4fddd856a4f..51aa777484bfb33c80e3012249d358bae787bfcc 100644 --- a/components/dfs/src/dfs.c +++ b/components/dfs/src/dfs.c @@ -20,6 +20,7 @@ * Change Logs: * Date Author Notes * 2005-02-22 Bernard The first version. + * 2017-12-11 Bernard Use rt_free to instead of free in fd_is_open(). */ #include @@ -219,7 +220,7 @@ int fd_is_open(const char *pathname) if (fs == NULL) { /* can't find mounted file system */ - free(fullpath); + rt_free(fullpath); return -1; } diff --git a/components/finsh/cmd.c b/components/finsh/cmd.c index 995ec2a10917bc11a5fe6f161d0210b8fe4740b6..9cd292d570214b6676df17cd8e4b78ef30f9c81d 100644 --- a/components/finsh/cmd.c +++ b/components/finsh/cmd.c @@ -67,8 +67,6 @@ long version(void) FINSH_FUNCTION_EXPORT(version, show RT-Thread version information); MSH_CMD_EXPORT(version, show RT-Thread version information); -extern struct rt_object_information rt_object_container[]; - static int object_name_maxlen(struct rt_list_node *list) { struct rt_list_node *node; @@ -135,7 +133,10 @@ static long _list_thread(struct rt_list_node *list) long list_thread(void) { - return _list_thread(&rt_object_container[RT_Object_Class_Thread].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_Thread); + return _list_thread(&info->object_list); } FINSH_FUNCTION_EXPORT(list_thread, list thread); MSH_CMD_EXPORT(list_thread, list thread); @@ -195,7 +196,11 @@ static long _list_sem(struct rt_list_node *list) long list_sem(void) { - return _list_sem(&rt_object_container[RT_Object_Class_Semaphore].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_Semaphore); + + return _list_sem(&info->object_list); } FINSH_FUNCTION_EXPORT(list_sem, list semaphone in system); MSH_CMD_EXPORT(list_sem, list semaphore in system); @@ -237,7 +242,10 @@ static long _list_event(struct rt_list_node *list) long list_event(void) { - return _list_event(&rt_object_container[RT_Object_Class_Event].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_Event); + return _list_event(&info->object_list); } FINSH_FUNCTION_EXPORT(list_event, list event in system); MSH_CMD_EXPORT(list_event, list event in system); @@ -270,7 +278,11 @@ static long _list_mutex(struct rt_list_node *list) long list_mutex(void) { - return _list_mutex(&rt_object_container[RT_Object_Class_Mutex].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_Mutex); + + return _list_mutex(&info->object_list); } FINSH_FUNCTION_EXPORT(list_mutex, list mutex in system); MSH_CMD_EXPORT(list_mutex, list mutex in system); @@ -321,7 +333,10 @@ static long _list_mailbox(struct rt_list_node *list) long list_mailbox(void) { - return _list_mailbox(&rt_object_container[RT_Object_Class_MailBox].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_MailBox); + return _list_mailbox(&info->object_list); } FINSH_FUNCTION_EXPORT(list_mailbox, list mail box in system); MSH_CMD_EXPORT(list_mailbox, list mail box in system); @@ -370,7 +385,10 @@ static long _list_msgqueue(struct rt_list_node *list) long list_msgqueue(void) { - return _list_msgqueue(&rt_object_container[RT_Object_Class_MessageQueue].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_MessageQueue); + return _list_msgqueue(&info->object_list); } FINSH_FUNCTION_EXPORT(list_msgqueue, list message queue in system); MSH_CMD_EXPORT(list_msgqueue, list message queue in system); @@ -404,7 +422,10 @@ static long _list_memheap(struct rt_list_node *list) long list_memheap(void) { - return _list_memheap(&rt_object_container[RT_Object_Class_MemHeap].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_MemHeap); + return _list_memheap(&info->object_list); } FINSH_FUNCTION_EXPORT(list_memheap, list memory heap in system); MSH_CMD_EXPORT(list_memheap, list memory heap in system); @@ -453,7 +474,10 @@ static long _list_mempool(struct rt_list_node *list) long list_mempool(void) { - return _list_mempool(&rt_object_container[RT_Object_Class_MemPool].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_MemPool); + return _list_mempool(&info->object_list); } FINSH_FUNCTION_EXPORT(list_mempool, list memory pool in system) MSH_CMD_EXPORT(list_mempool, list memory pool in system); @@ -490,7 +514,10 @@ static long _list_timer(struct rt_list_node *list) long list_timer(void) { - return _list_timer(&rt_object_container[RT_Object_Class_Timer].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_Timer); + return _list_timer(&info->object_list); } FINSH_FUNCTION_EXPORT(list_timer, list timer in system); MSH_CMD_EXPORT(list_timer, list timer in system); @@ -550,7 +577,10 @@ static long _list_device(struct rt_list_node *list) long list_device(void) { - return _list_device(&rt_object_container[RT_Object_Class_Device].object_list); + struct rt_object_information *info; + + info = rt_object_get_information(RT_Object_Class_Device); + return _list_device(&info->object_list); } FINSH_FUNCTION_EXPORT(list_device, list device in system); MSH_CMD_EXPORT(list_device, list device in system); @@ -564,8 +594,10 @@ int list_module(void) int maxlen; struct rt_module *module; struct rt_list_node *list, *node; + struct rt_object_information *info; - list = &rt_object_container[RT_Object_Class_Module].object_list; + info = rt_object_get_information(RT_Object_Class_Module); + list = &info->object_list; maxlen = object_name_maxlen(list); diff --git a/components/net/Kconfig b/components/net/Kconfig index f86e7416eb03197c543f262676afe80968979d3d..af375e6c03de66b5c2306cd05900dd76f2539ee8 100644 --- a/components/net/Kconfig +++ b/components/net/Kconfig @@ -55,10 +55,6 @@ config RT_USING_LWIP config IP_SOF_BROADCAST_RECV int "SOF broadcast recv" default 1 - - config LWIP_USING_DHCPD - bool "Enable DHCP server" - default n endif menu "Static IPv4 Address" @@ -91,14 +87,16 @@ config RT_USING_LWIP bool "PPP protocol" default n - config RT_LWIP_PPPOE - bool "PPPoE protocol" - default n - - config RT_LWIP_PPPOS - bool "PPPoS protocol" - default n - + if RT_LWIP_PPP + config RT_LWIP_PPPOE + bool "PPPoE protocol" + default n + + config RT_LWIP_PPPOS + bool "PPPoS protocol" + default n + endif + config RT_MEMP_NUM_NETCONN int "the number of struct netconns" default 8 @@ -187,6 +185,11 @@ endmenu source "$RTT_DIR/components/net/freemodbus/Kconfig" if RT_USING_LWIP + +config LWIP_USING_DHCPD + bool "Enable DHCP server" + default n + config RT_USING_NETUTILS bool "Enable net utils" default n diff --git a/components/net/lwip-1.3.2/src/arch/sys_arch_init.c b/components/net/lwip-1.3.2/src/arch/sys_arch_init.c index 73aa34171cf4b33838d7d1ac25f5479e778c078b..f70de7cc0a18be5ee25988306e9e2cb70dca2dd6 100644 --- a/components/net/lwip-1.3.2/src/arch/sys_arch_init.c +++ b/components/net/lwip-1.3.2/src/arch/sys_arch_init.c @@ -41,8 +41,6 @@ static void tcpip_init_done_callback(void *arg) struct rt_object* object; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; - LWIP_ASSERT("invalid arg.\n",arg); IP4_ADDR(&gw, 0,0,0,0); @@ -53,7 +51,9 @@ static void tcpip_init_done_callback(void *arg) rt_enter_critical(); /* for each network interfaces */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); + for (node = information->object_list.next; node != &(information->object_list); node = node->next) { object = rt_list_entry(node, struct rt_object, list); diff --git a/components/net/lwip-1.4.1/src/arch/sys_arch.c b/components/net/lwip-1.4.1/src/arch/sys_arch.c index 3ae636019898939f06fbb0d4060d94b7ce9d223a..d480242cd01dde6176e9cc6b3d05404212f3d910 100644 --- a/components/net/lwip-1.4.1/src/arch/sys_arch.c +++ b/components/net/lwip-1.4.1/src/arch/sys_arch.c @@ -72,8 +72,6 @@ static void tcpip_init_done_callback(void *arg) struct rt_object* object; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; - LWIP_ASSERT("invalid arg.\n",arg); IP4_ADDR(&gw, 0,0,0,0); @@ -84,7 +82,8 @@ static void tcpip_init_done_callback(void *arg) rt_enter_critical(); /* for each network interfaces */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) diff --git a/components/net/lwip-2.0.2/src/arch/sys_arch.c b/components/net/lwip-2.0.2/src/arch/sys_arch.c index 06198d51918c8d4f347b2c879a844426f70c386a..c8e1fe1d33f9dc677603349cbf2e2f9a7a81ac1f 100644 --- a/components/net/lwip-2.0.2/src/arch/sys_arch.c +++ b/components/net/lwip-2.0.2/src/arch/sys_arch.c @@ -74,8 +74,6 @@ static void tcpip_init_done_callback(void *arg) struct rt_object* object; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; - LWIP_ASSERT("invalid arg.\n",arg); IP4_ADDR(&gw, 0,0,0,0); @@ -86,7 +84,8 @@ static void tcpip_init_done_callback(void *arg) rt_enter_critical(); /* for each network interfaces */ - information = &rt_object_container[RT_Object_Class_Device]; + information = rt_object_get_information(RT_Object_Class_Device); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) diff --git a/src/memheap.c b/src/memheap.c index 8b7588a068c66a9de1dbf8ad23e795835ffc4af3..dcd91146206c1ae4af9f07ae3638d046dc7d8cc0 100644 --- a/src/memheap.c +++ b/src/memheap.c @@ -620,10 +620,10 @@ void *rt_malloc(rt_size_t size) struct rt_list_node *node; struct rt_memheap *heap; struct rt_object_information *information; - extern struct rt_object_information rt_object_container[]; /* try to allocate on other memory heap */ - information = &rt_object_container[RT_Object_Class_MemHeap]; + information = rt_object_get_information(RT_Object_Class_MemHeap); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next) diff --git a/src/thread.c b/src/thread.c index c39d689e0f02df73dc8aa7f54fa7ebd255b6cf3d..3a3e55302e700885f51cfa114e5fbe7553a2f8bc 100644 --- a/src/thread.c +++ b/src/thread.c @@ -750,14 +750,13 @@ rt_thread_t rt_thread_find(char *name) struct rt_object *object; struct rt_list_node *node; - extern struct rt_object_information rt_object_container[]; - /* enter critical */ if (rt_thread_self() != RT_NULL) rt_enter_critical(); /* try to find device object */ - information = &rt_object_container[RT_Object_Class_Thread]; + information = rt_object_get_information(RT_Object_Class_Thread); + RT_ASSERT(information != RT_NULL); for (node = information->object_list.next; node != &(information->object_list); node = node->next)