Browse Source

Merge remote-tracking branch 'upstream/master'

Bernard Xiong 10 years ago
parent
commit
4a66474329

+ 16 - 15
README.md

@@ -3,25 +3,28 @@
 [![Build Status](https://travis-ci.org/RT-Thread/rt-thread.svg)](https://travis-ci.org/RT-Thread/rt-thread)
 [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/RT-Thread/rt-thread?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 
-RT-Thread is an open source real-time operating system for embedded devices from China. RT-Thread RTOS is a scalable real-time operating system: a tiny kernel for ARM Cortex-M0, Cortex-M3/4, or a full feature system in ARM Cortex-A8, ARM Cortex-A9 DualCore etc. 
+RT-Thread is an open source real-time operating system for embedded devices from China. RT-Thread RTOS is a scalable real-time operating system: a tiny kernel for ARM Cortex-M0, Cortex-M3/4/7, or a rich feature system like ARM Cortex-A8, ARM Cortex-A9 DualCore etc. 
 
 ## Overview ##
 
 RT-Thread RTOS like a traditional real-time operating system. The kernel has real-time multi-task scheduling, semaphore, mutex, mail box, message queue etc. However, it has two different things:
 
 * Device Driver;
-* Component. 
+* Component;
+* Application Module
 
-The device driver is more like a driver framework, UART, SPI, USB device/host, EMAC, MTD NAND etc. The developer can easily add low level driver and board configuration, then he/she can use lots of features. 
+The device driver is more like a driver framework, UART, IIC, SPI, SDIO, USB device/host, EMAC, MTD NAND etc. The developer can easily add low level driver and board configuration, then he/she can use lots of features. 
 
-The Component is a software concept upon RT-Thread kernel, for example a shell (finsh shell), virtual file system (FAT, YAFFS, UFFS, ROM/RAM file system etc), TCP/IP protocol stack (lwIP), POSIX interface etc. One component must be a directory under RT-Thread/Components and one component can be descripted by a SConscript file (then be compiled and linked into the system).
+The Component is a software concept upon RT-Thread kernel, for example a shell (finsh/msh shell), virtual file system (FAT, YAFFS, UFFS, ROM/RAM file system etc), TCP/IP protocol stack (lwIP), POSIX (thread) interface etc. One component must be a directory under RT-Thread/Components and one component can be descripted by a SConscript file (then be compiled and linked into the system).
+
+The Appliation Module, or User Applicaion (UA) is a dyanmic loaded module, it can be compiled standalone without Kernel. Each UA has its own object container to manage thread/semaphore/kernel object which was created or initialized inside this UA. More information about UA, please visit another [git repo](https://github.com/RT-Thread/rtthread-apps). 
 
 ## Board Support Package ##
 
 RT-Thread RTOS can support many architectures:
 
 * ARM Cortex-M0
-* ARM Cortex-M3/M4
+* ARM Cortex-M3/M4/7
 * ARM Cortex-R4
 * ARM Cortex-A8/A9
 * ARM920T/ARM926 etc
@@ -37,32 +40,30 @@ As a special exception, including RT-Thread RTOS header files in a file, instant
 
 ## Usage ##
 
-RT-Thread RTOS uses [scons](http://www.scons.org) as its building system. Therefore, please install scons and Python 2.7 firstly. 
-
-So far, the RT-Thread scons building system support the command line compiling or generate some IDE's project. There are some option varaibles in the scons building script:
+RT-Thread RTOS uses [scons](http://www.scons.org) as building system. Therefore, please install scons and Python 2.7 firstly. 
 
-In rtconfig.py file:
+So far, the RT-Thread scons building system support the command line compile or generate some IDE's project. There are some option varaibles in the scons building script (rtconfig.py):
 
 * ```CROSS_TOOL``` the compiler which you want to use, gcc/keil/iar. 
 * ```EXEC_PATH``` the path of compiler. 
 
 In SConstruct file:
 
-```RTT_ROOT``` This variable is the root directory of RT-Thread RTOS. If you build the porting in the bsp directory, you can use the default value. Also, you can set the root directory in ```RTT_ROOT``` environment variable.
+```RTT_ROOT``` This variable is the root directory of RT-Thread RTOS. If you build the porting in the bsp directory, you can use the default setting. Also, you can set the root directory in ```RTT_ROOT``` environment variable and not modify SConstruct files.
 
 When you set these variables correctly, you can use command:
 
     scons 
-    
-  under BSP directory to simplely compile RT-Thread RTOS.
 
-If you want to generate the IDE's project file, firstly you should change the ```RTT_CC``` in the rtconfig.py file. Then use command:
+under BSP directory to simplely compile RT-Thread RTOS.
 
-    scons --target=mdk/mdk4/iar/cb -s 
+If you want to generate the IDE's project file, you can use command:
+s
+    scons --target=mdk/mdk4/mdk5/iar/cb -s 
 
 to generate the project file. 
 
-NOTE: RT-Thread scons building system will tailor the system according to your rtconfig.h configuration header file. For example, if you disable the lwIP in the rtconfig.h by commenting the ```#define RT_USING_LWIP```, the generated project file has no lwIP related files. 
+NOTE: RT-Thread scons building system will tailor the system according to your rtconfig.h configuration header file. For example, if you disable the lwIP in the rtconfig.h by commenting the ```#define RT_USING_LWIP```, the generated project file should have no lwIP related files. 
 
 ## Contribution ##
 

+ 1 - 3
bsp/lm3s8962/applications/startup.c

@@ -142,10 +142,8 @@ void rtthread_startup(void)
 
 int main(void)
 {
-	rt_uint32_t level UNUSED;
-
 	/* disable interrupt first */
-	level = rt_hw_interrupt_disable();
+	rt_hw_interrupt_disable();
 	rtthread_startup();
 	
 	return 0;

+ 1 - 1
bsp/lpc2148/drivers/serial.c

@@ -66,7 +66,7 @@ void rt_hw_serial_init(void);
 
 void rt_hw_uart_isr(struct rt_lpcserial* lpc_serial)
 {
-	UNUSED rt_uint32_t iir;
+	RT_UNUSED rt_uint32_t iir;
 
 	RT_ASSERT(lpc_serial != RT_NULL)
 

+ 1 - 1
bsp/lpc2478/drivers/serial.c

@@ -66,7 +66,7 @@ void rt_hw_serial_init(void);
 
 void rt_hw_uart_isr(int irqno, void *param)
 {
-	UNUSED rt_uint32_t iir;
+	RT_UNUSED rt_uint32_t iir;
 	struct rt_lpcserial* lpc_serial = (struct rt_lpcserial*)param;
 
 	RT_ASSERT(lpc_serial != RT_NULL)

+ 1 - 3
bsp/mb9bf500r/startup.c

@@ -90,10 +90,8 @@ void rtthread_startup(void)
 
 int main(void)
 {
-	rt_uint32_t UNUSED level;
-
 	/* disable interrupt first */
-	level = rt_hw_interrupt_disable();
+	rt_hw_interrupt_disable();
 
 	/* init system setting */
 	SystemInit();

+ 1 - 1
bsp/mini4020/drivers/board.c

@@ -51,7 +51,7 @@ void rt_serial_handler(int vector, void *param)
 {
 	//rt_kprintf("in rt_serial_handler\n");
 	rt_int32_t stat = *(RP)UART0_IIR ;
-	UNUSED char c;
+	RT_UNUSED char c;
 
 	/*Received data*/
 	if (((stat & 0x0E) >> 1) == 0x02)

+ 1 - 1
bsp/mini4020/drivers/sdcard.c

@@ -271,7 +271,7 @@ static rt_err_t sd_readblock(rt_uint32_t address, rt_uint8_t* buf)
 	U32 complete,i;
 	rt_uint8_t temp;
 	rt_err_t err;
-	UNUSED rt_uint32_t discard;
+	RT_UNUSED rt_uint32_t discard;
 	#ifdef USE_TIMEOUT
 	rt_uint32_t to = 10;
 	#endif

+ 1 - 3
bsp/nios_ii/startup.c

@@ -85,10 +85,8 @@ void rtthread_startup(void)
 
 int main(void)
 {
-    rt_uint32_t UNUSED level;
-
     /* disable interrupt first */
-    level = rt_hw_interrupt_disable();
+    rt_hw_interrupt_disable();
 
     /* startup RT-Thread RTOS */
     rtthread_startup();

+ 5 - 3
bsp/stm32f0x/rtconfig.h

@@ -83,11 +83,13 @@
 #define FINSH_THREAD_STACK_SIZE	1024
 #define FINSH_HISTORY_LINES	1
 /* Using symbol table */
-#define FINSH_USING_SYMTAB
-#define FINSH_USING_DESCRIPTION
+//#define FINSH_USING_SYMTAB
+//#define FINSH_USING_DESCRIPTION
+#define FINSH_USING_MSH
+#define FINSH_USING_MSH_ONLY
 
 /* SECTION: libc management */
-#define RT_USING_LIBC
+// #define RT_USING_LIBC
 
 /* SECTION: device filesystem */
 /* #define RT_USING_DFS */

+ 6 - 0
components/drivers/include/drivers/sdio.h

@@ -181,6 +181,12 @@ rt_int32_t sdio_io_rw_extended(struct rt_mmcsd_card *card,
                                rt_uint8_t           *buf,
                                rt_uint32_t           blocks,
                                rt_uint32_t           blksize);
+rt_int32_t sdio_io_rw_extended_block(struct rt_sdio_function *func,
+                              rt_int32_t               rw,
+                              rt_uint32_t              addr,
+                              rt_int32_t               op_code,
+                              rt_uint8_t              *buf,
+                              rt_uint32_t              len);
 rt_uint8_t sdio_io_readb(struct rt_sdio_function *func, 
                          rt_uint32_t              reg,
                          rt_int32_t              *err);

+ 2 - 1
components/drivers/sdio/sdio.c

@@ -244,7 +244,7 @@ rt_inline rt_uint32_t sdio_max_block_size(struct rt_sdio_function *func)
     return MIN(size, 512u); /* maximum size for byte mode */
 }
 
-static rt_int32_t sdio_io_rw_extended_block(struct rt_sdio_function *func,
+rt_int32_t sdio_io_rw_extended_block(struct rt_sdio_function *func,
                                             rt_int32_t               rw,
                                             rt_uint32_t              addr,
                                             rt_int32_t               op_code,
@@ -1325,6 +1325,7 @@ rt_int32_t sdio_register_driver(struct rt_sdio_driver *driver)
         return -RT_ENOMEM;
     }
 
+    sd->drv = driver;
     rt_list_insert_after(&sdio_drivers, &sd->list);
 
     if (!rt_list_isempty(&sdio_cards))