Commit Graph

3072 Commits

Author SHA1 Message Date
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
bernard f1107f6714 add BGR565 definition 2013-10-10 00:22:11 +09:00
bernard 6c5e34fa70 fix the line too long issue 2013-10-09 18:06:40 +09:00
Bernard Xiong 83bb05419f Merge pull request #166 from prife/simulator
scons script: support to generate vs2012 project xml
2013-10-01 01:01:28 -07:00
prife 821ab3b9aa scons script: support to generate vs2012 project xml
rename template.vcproj to template_vs2005.vcproj
add template_vs2012.vcxproj
NOTE: the vs2012.py is ugly, just can work.
2013-10-01 15:37:34 +08:00
Bernard Xiong 0d378bbeac Merge pull request #165 from prife/jffs2-fix
DFS/jffs2: fix file mode init bug in jffs2_open/opendir
2013-09-28 00:42:04 -07:00
prife f71f0595d6 DFS/jffs2: fix bug when umount jffs2
found by haitao5198
clear mount parition device talbe when jffs2 mount falied
2013-09-28 14:57:05 +08:00
prife 12a6366217 DFS/jffs2: fix file mode init bug in jffs2_open/opendir
found by haitao52198
URL:http://www.rt-thread.org/phpBB3/viewtopic.php?f=3&t=3112&p=17153#p17153
2013-09-28 14:43:00 +08:00
Bernard Xiong bfc0d8c91d Merge pull request #163 from grissiom/compiling-fix
Compiling fix
2013-09-25 20:57:46 -07:00
Grissiom df4e8ff060 msh: only export cd/pwd when DFS_USING_WORKDIR is set 2013-09-26 11:50:28 +08:00
Grissiom 05651e7c66 logtrace: only export cmd when finsh is enabled 2013-09-26 11:49:33 +08:00
joyhope 281e55e973 notification function: rt_err_t (*tx_complete)(rt_device_t dev, void
*buffer) with buffer pointer
2013-09-24 20:57:00 +08:00
aozima cad12ee14e update rt_kprintf: make sure the device is in STREAM mode when used by rt_kprintf. 2013-09-24 15:29:08 +08:00
Bernard Xiong 0b844aa82d Merge pull request #160 from grissiom/misc-fix
logtrace: cleanup code and fix compiling warnings
2013-09-23 05:28:03 -07:00
Grissiom 2a20337707 logtrace: adjust the log values
logtrace only use odd number of log levels. So the use could set some
custom level amount them.
2013-09-23 15:13:45 +08:00
Grissiom 519982fa74 logtrace: add LOG_TRACE_VERBOSE log level 2013-09-23 15:10:02 +08:00
Grissiom 783a6a6717 logtrace: cleanup code and fix compiling warnings 2013-09-23 13:13:03 +08:00
Bernard Xiong 29871c0d84 Merge pull request #159 from grissiom/misc-fix
kservice: export vsnprintf as rt_vsnprintf
2013-09-22 21:07:20 -07:00
Grissiom 7b0a3afdf9 kservice: export vsnprintf as rt_vsnprintf
vsnprintf is a common string function that could be used in many places.
Using both vsnprintf in libc and vsnprintf in the RTT could make a
bigger image. Moreover, if newlib is not enabled when compiling with
GCC, referencing vsnprintf will lead to link error:

    .../arm-none-eabi/lib/armv7-ar/thumb/softfp/libc.a(lib_a-sbrkr.o):
    In function `_sbrk_r':
    sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'
    collect2: error: ld returned 1 exit status

Using rt_vsnprintf could avoid such problem.
2013-09-23 11:34:13 +08:00
Bernard Xiong 1cb4ee74fb Merge pull request #158 from grissiom/finsh-fix
finsh: unregister rx_indicate when closing the device
2013-09-22 15:23:56 -07:00
Grissiom 6d2df9bf94 finsh: unregister rx_indicate when closing the device
Because the device could still remain opened when closed by finsh, the
old rx_indicate is useless for finsh. Some buggy driver will still
generate rx_indicate even after the device has been closed. So FinSh
should unregister the rx_indicate when releasing the old device.
2013-09-22 22:12:04 +08:00
Bernard Xiong 7bdb082c91 Delete SConscript 2013-09-22 06:59:52 +08:00
bernard 09b105ecf7 use UART0 as console 2013-09-21 17:18:45 +08:00
bernard 9d09cd9f23 Import beaglebone porting 2013-09-20 21:20:51 +08:00
bernard 0bf7ed76cf Merge branch 'master' of https://github.com/RT-Thread/rt-thread 2013-09-17 11:07:36 +08:00
bernard 77096894f9 change the compiling macro before DFS option 2013-09-17 11:07:24 +08:00
Bernard Xiong 47c152ee7f Merge pull request #156 from grissiom/fix-event_recv
rt_event_recv: add a check on the option flag
2013-09-14 19:24:38 -07:00
prife 63394f5d1b Merge pull request #155 from grissiom/simulator
Simulator
2013-09-14 08:20:28 -07:00
Grissiom c465bc2c2e rt_event_recv: add a check on the option flag
Either RT_EVENT_FLAG_AND or RT_EVENT_FLAG_OR should be set in the option
flag. If none of them is present, the waiting thread will never be
resumed.
2013-09-14 13:12:23 +08:00
Bernard Xiong 2bcb9edd91 Add gettimeofday declaration in sys/time.h 2013-09-08 15:01:29 +08:00
Grissiom dacd2cb9a9 travis: add scan-build in PATH 2013-09-07 18:31:05 +08:00
Grissiom 4240ebd73f travis: don't export RTT_CC in before_script if it's been set
This gives ways for bsp to set it's own RTT_CC.
2013-09-07 17:17:58 +08:00
Grissiom eae89b9576 travis: install the gcc-multilib to get the 32bit build OK 2013-09-07 16:15:43 +08:00
Grissiom 5ab9943eb5 travis: try to fix the SDL building 2013-09-07 16:01:03 +08:00
Grissiom 0168048f27 travis: auto build the simulator
Building is only the first step. Correctness is what we need. There are
already many GCC builds for other bsp so GCC building for simulator is
not important. So I use clang-analyze to check all the source codes in
simulator project. Hope it will help us.
2013-09-07 15:46:11 +08:00
Grissiom 35cac170fa simulator: add clang-analyze tool support
When CROSS_TOOL or 'RTT_CC' env is setted to 'clang-analyze', it will
use Clang to check the codes.
2013-09-07 15:15:48 +08:00
Grissiom c289aa9fc1 Scons: add a custom tool to do clang static analyze
Bsps can use the clang analyzer as a tool:

    env = Environment(toolpath=[os.path.join(RTT_ROOT, 'tools',
                      'tools')], tools = ['clang-analyze'])

When building the project, the static analyzer will be called to check
all the C code. The warnings are print to stderr.
2013-09-07 15:15:48 +08:00