Merge pull request #1101 from BernardXiong/master
[Kernel] Use rt_object_get_information to get object chain
This commit is contained in:
commit
6962bd1f1e
@ -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 ;
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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 <rtthread.h>
|
||||
|
||||
// #define DEBUG
|
||||
|
||||
#ifdef DEBUG
|
||||
#define DEBUG_PRINTF(...) rt_kprintf(__VA_ARGS__)
|
||||
#else
|
||||
#define DEBUG_PRINTF(...)
|
||||
#endif
|
||||
|
||||
#ifdef RT_USING_GUIENGINE
|
||||
|
||||
#include <rtgui/rtgui.h>
|
||||
#include <rtgui/rtgui_system.h>
|
||||
#include <rtgui/rtgui_app.h>
|
||||
|
||||
#include <rtgui/widgets/window.h>
|
||||
#include <rtgui/dc.h>
|
||||
|
||||
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 */
|
11
bsp/x1000/applications/wlan.c
Normal file
11
bsp/x1000/applications/wlan.c
Normal file
@ -0,0 +1,11 @@
|
||||
#include <rtthread.h>
|
||||
|
||||
#ifdef RT_USING_WIFI
|
||||
#include "wlan_wiced.h"
|
||||
|
||||
int wifi_init(void)
|
||||
{
|
||||
wifi_hw_init();
|
||||
}
|
||||
INIT_ENV_EXPORT(wifi_init);
|
||||
#endif
|
@ -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
|
||||
|
@ -53,6 +53,33 @@ int cplusplus_system_init(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef RT_USING_GUIENGINE
|
||||
#include <rtgui/driver.h>
|
||||
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);
|
||||
|
@ -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
|
||||
|
@ -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 ++;
|
||||
|
@ -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 <dfs.h>
|
||||
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user