Commit Graph

3108 Commits

Author SHA1 Message Date
prife 0701b57eaa Merge pull request #188 from prife/master
simulatr: print error messages when RTT_RTGUI is invalid
2013-10-28 07:59:35 -07:00
prife a12892af31 simulatr: print error messages when RTT_RTGUI is invalid 2013-10-26 14:00:24 +08:00
Bernard Xiong fac2bb2288 Merge pull request #187 from grissiom/serial-fix
Revert "serial: set the errno if and only if in thread context"
2013-10-25 18:11:24 -07:00
Grissiom 6bb2c0f2ea Revert "serial: set the errno if and only if in thread context"
This reverts commit 07bd09fc0f.
The validation of the context is done with in `rt_set_errno`. So it's
safe to call it here.
2013-10-25 21:23:15 +08:00
Bernard Xiong 166531168d Merge pull request #186 from grissiom/serial-fix
Serial fix
2013-10-25 05:40:45 -07:00
Grissiom 400b96d2d9 k60: add rt_interrupt_{enter,leave} in IRQHandler 2013-10-25 20:32:48 +08:00
Grissiom 07bd09fc0f serial: set the errno if and only if in thread context
The errno is associated with threads. It will crash the thread if we set
it in interrupt context.
2013-10-25 20:31:02 +08:00
Grissiom 21fb9a0bac serial: do onthing if the size of read/write is zero
Return early if the size is 0 as there is nothing to do.
2013-10-25 20:15:08 +08:00
Bernard Xiong 5f61b8ce6c Merge pull request #184 from caicai07/k60-fix
K60: fix compile error
2013-10-22 23:15:36 -07:00
caicai 15a769c6e4 K60: fix compile error 2013-10-23 12:08:42 +08:00
Bernard Xiong d327f4a25a Merge pull request #183 from grissiom/log_trace-in-mem
Log trace in mem
2013-10-22 16:22:14 -07:00
Bernard Xiong a3bf5e2d9b Merge pull request #181 from grissiom/rm48x50-next
Rm48x50 next
2013-10-22 16:22:02 -07:00
Grissiom a391e0a893 log_trace: add a in-mem-log example
After `log_trace_init()`, call `memlog_init`. It then turn the logtrace
into a "in-memory" logger which will buffer all the log in memory. It
also set a hook in idle to flush all the log into console. One may
create an other thread to flush the logs but idle might be the simplest
place to go.
2013-10-23 01:48:47 +08:00
Grissiom 0feefc03b6 device/pipe: add a control cmd to get the space left in pipe 2013-10-23 01:43:18 +08:00
Bernard Xiong ac5da68db7 Merge pull request #182 from grissiom/fix-timer-init
initialize timer in bsp
2013-10-20 18:21:37 -07:00
Grissiom 2a9e893c79 initialize timer in bsp
With new timer algorithm, timer should be initialized during startup. So
add them to the bsps. Use these commands to get which bsp is missing
calling the function:

    % git grep rt_system_timer_init bsp|sed -n 's|bsp/\([^/]*\).*|\1|p' | sort | uniq > have_tm_init
    % ls -1 bsp |sed -n 's|\([^/]*\).*|\1|p' | sort > all_bsp
    % comm -3 all_bsp have_tm_init
    beaglebone
    lpc176x
    lpc178x
    ls1bdev
    mb9bf506r
    stm32f10x
    xplorer4330
2013-10-21 00:31:10 +08:00
Grissiom 377c6e6cc9 cortex-r4: dump register on traps
We could not handle any traps except IRQ/FIQ.
2013-10-20 23:46:50 +08:00
Grissiom e1e563e85c cortex-r4: remove RM48x50.h and add armv7.h 2013-10-20 21:10:26 +08:00
Grissiom d3648dbc9f rm48x50: cleanup sys_startup.c 2013-10-20 18:51:47 +08:00
Grissiom 81ab083ae5 rm48: move some asm file to libcpu 2013-10-20 18:51:46 +08:00
Grissiom 9568669109 rm48x50: add GCC support 2013-10-20 18:51:45 +08:00
Grissiom 2f4329430d rm48x50: cleanup HALCoGen code 2013-10-20 04:04:59 +08:00
Bernard Xiong 23e68a8bcc Merge pull request #180 from grissiom/hot-fix
kernel: timer: fix compiling bug in d59aa279c3
2013-10-19 06:20:05 -07:00
Grissiom 6bcf1bc48b rm48x50: fix the prototype of finsh_system_init 2013-10-19 21:10:49 +08:00
Grissiom 6d9e793388 kernel: timer: fix compiling bug in d59aa279c3 2013-10-19 21:07:14 +08:00
Bernard Xiong a0ffbc1fb8 Merge pull request #179 from grissiom/finsh-ex
Finsh ex
2013-10-18 17:06:36 -07:00
Grissiom 1e01252824 finsh: refactor the control key handling
We split the history handling form the key handling. So we could handle
the direction key even if the history is disabled. As a "side effect", I
also remove the unnecessary "use_history" bit.
2013-10-18 22:36:51 +08:00
Bernard Xiong 3eac58ce8e Merge pull request #173 from grissiom/new-timer
kernel: use skip list to implement timer list
2013-10-17 15:44:20 -07:00
Bernard Xiong c29ff6b0ac Merge pull request #161 from aozima/pulls
make sure the device is in STREAM mode when used by rt_kprintf.
2013-10-17 15:43:56 -07:00
Bernard Xiong 8d5dfec3b7 Merge pull request #162 from joyhope/master
UART DMA tx_complete() with buffer information
2013-10-17 15:40:50 -07:00
Bernard Xiong b17ca1fa17 Merge pull request #178 from prife/jffs2
simulator/jffs2: remove _TIME_T_DEFINED when built by VC++
2013-10-17 15:39:01 -07:00
prife 3a33906ab1 simulator/jffs2: remove _TIME_T_DEFINED when built by VC++
_TIME_T_DEFINED was pre-defined in order to build jffs2 with VC.
While it may cause many side effects.
2013-10-17 23:47:08 +08:00
Bernard Xiong 887076bab1 Merge pull request #175 from prife/simulator
simulator: add createdef.py to generate def file for VS
2013-10-14 16:24:03 -07:00
Bernard Xiong 28caaecee3 Merge pull request #174 from grissiom/rtt-next
kernel: mutex could only be released in thread context
2013-10-14 16:23:43 -07:00
prife 5641360b49 simulator: add createdef.py to generate def file for VS
Now we can get rid off Mingw to create def file. To create def file, one
should run:

    scons --def

in the bsp/simulator.
2013-10-14 22:53:59 +08:00
Grissiom b72001fcac kernel: mutex could only be released in thread context
Mutex has the idea of ownership, only the thread which owns the mutex
can release it. So rt_mutex_release could only be called in thread
context.  Add a debug guard to it.
2013-10-14 09:50:18 +08:00
Grissiom d59aa279c3 kernel: use skip list to implement timer list
Skip list is a "random" data structure that in high possibilities it
would get O(log(N)) time complexity in inserting while the old list get
O(N). Forthermore, when set RT_TIMER_SKIP_LIST_LEVEL to 1, it will just
the same as the old double linked list, both in time and space
complexity.

Benchmarks shows that when RT_TIMER_SKIP_LIST_LEVEL is 3, the average
time of random insertion of new timer is about 2 times faster than the
old timer when there are 100 timers and 3 times faster when there are
200 timers.

However, it restores the deprecated funcion rt_system_timer_init. BSPs
must invoke it upon system startup.
2013-10-12 22:48:29 +08:00
Bernard Xiong ca9b83c68f Merge pull request #172 from grissiom/rtt-next
kernel: fix compiling error when RT_DEBUG is not defined
2013-10-12 06:57:00 -07:00
Grissiom c9b8b7465f kernel: fix compiling error when RT_DEBUG is not defined
Define RT_DEBUG_IN_THREAD_CONTEXT when RT_DEBUG is not defined.
2013-10-12 10:58:56 +08:00
Bernard Xiong 9193acafbf Merge pull request #170 from grissiom/rtt-next
kernel: add RT_DEBUG_IN_THREAD_CONTEXT
2013-10-11 08:36:47 -07:00
Grissiom 6f71308ef5 kernel: add RT_DEBUG_IN_THREAD_CONTEXT
In thread context means: 1) the scheduler has been started; 2) not in
interrupt context. It is more stronger than RT_DEBUG_NOT_IN_INTERRUPT.
With this commit, you will catch the error on situations like taking
mutex before scheduling instead of crashing on NULL pointer reference.
2013-10-11 22:51:38 +08:00
Bernard Xiong 4eaadb7a98 Merge pull request #168 from grissiom/dfs-fix
DFS: add dfs_file_flush prototype in dfs_file.h
2013-10-11 07:40:50 -07:00
Bernard Xiong 1c16c5851e Merge pull request #169 from grissiom/log_trace-fix
log_trace: fix the memmove use
2013-10-11 07:40:30 -07:00
Grissiom d0251a523a log_trace: fix the memmove use
The first parameter of memmove is the dst, not src. Besides, fix the
wrong move size.
2013-10-11 17:23:30 +08:00
Grissiom 5fdca8371b DFS: add dfs_file_flush prototype in dfs_file.h 2013-10-11 14:55:23 +08:00
bernard 786a5541a3 Merge branch 'master' of https://github.com/RT-Thread/rt-thread 2013-10-10 00:42:11 +09:00
bernard d092105f3a Add tap netif driver 2013-10-10 00:41:36 +09:00
Bernard Xiong 69bbd35f38 Merge pull request #167 from grissiom/ymodem
components/utilities: add ymodem
2013-10-09 08:33:02 -07:00
Grissiom 5674198759 components/utilities: add ymodem
Real-YModem implemented a flexible YModem support. It use callback-based
structure to let the user application to deal with the data. It contains
3 examples:

    1. echo.c: write the data recieved on YModem to an other device
    2. null.c: discard the YModem data
    3. tofile.c: write the data to the file system

Currently, it does not support batch file transmission.
2013-10-09 23:26:42 +08:00
bernard 1ffb99e6f5 Merge branch 'master' of https://github.com/RT-Thread/rt-thread 2013-10-10 00:22:59 +09:00