<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rt-thread.git/src, branch v1.2.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/rt-thread.git/atom/src?h=v1.2.0</id>
<link rel='self' href='http://cgit.235523.xyz/rt-thread.git/atom/src?h=v1.2.0'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/'/>
<updated>2013-12-21T03:31:40Z</updated>
<entry>
<title>kernel: let rt_thread_idle_excute loop until there is no dead thread</title>
<updated>2013-12-21T03:31:40Z</updated>
<author>
<name>Grissiom</name>
<email>chaos.proton@gmail.com</email>
</author>
<published>2013-12-21T03:31:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=04f432f47b906e129209daf8e505ac0f6b57ebd0'/>
<id>urn:sha1:04f432f47b906e129209daf8e505ac0f6b57ebd0</id>
<content type='text'>
Out side world is difficult to tell whethere there is dead thread
remaining. If rt_thread_idle_excute only do one cleanup, it's hard to
finish cleanups outside the idle thread. So let is loop and do all the
cleanups in one call.
</content>
</entry>
<entry>
<title>kernel: add rt_critical_level that return the lock count of scheduler</title>
<updated>2013-12-21T03:27:26Z</updated>
<author>
<name>Grissiom</name>
<email>chaos.proton@gmail.com</email>
</author>
<published>2013-12-21T03:24:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=408ac34bc2d762db7019a14cc5caf8af4df57b43'/>
<id>urn:sha1:408ac34bc2d762db7019a14cc5caf8af4df57b43</id>
<content type='text'>
Out side world may be interested in whether the scheduler is locked or
not. Provide an API to tell that.
</content>
</entry>
<entry>
<title>kernel: timer: fix compiling bug in d59aa279c37b7</title>
<updated>2013-10-19T13:07:14Z</updated>
<author>
<name>Grissiom</name>
<email>chaos.proton@gmail.com</email>
</author>
<published>2013-10-19T13:07:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=6d9e793388cf078647fe7617266ad6efae5edb18'/>
<id>urn:sha1:6d9e793388cf078647fe7617266ad6efae5edb18</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #173 from grissiom/new-timer</title>
<updated>2013-10-17T22:44:20Z</updated>
<author>
<name>Bernard Xiong</name>
<email>bernard.xiong@gmail.com</email>
</author>
<published>2013-10-17T22:44:20Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=3eac58ce8e71ea7993a1febb159c2b156f3835af'/>
<id>urn:sha1:3eac58ce8e71ea7993a1febb159c2b156f3835af</id>
<content type='text'>
kernel: use skip list to implement timer list</content>
</entry>
<entry>
<title>Merge pull request #161 from aozima/pulls</title>
<updated>2013-10-17T22:43:56Z</updated>
<author>
<name>Bernard Xiong</name>
<email>bernard.xiong@gmail.com</email>
</author>
<published>2013-10-17T22:43:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=c29ff6b0ac0456f5275e6a35c8d8ba0ee8d743c1'/>
<id>urn:sha1:c29ff6b0ac0456f5275e6a35c8d8ba0ee8d743c1</id>
<content type='text'>
make sure the device is in STREAM mode when used by rt_kprintf.</content>
</entry>
<entry>
<title>kernel: mutex could only be released in thread context</title>
<updated>2013-10-14T01:50:18Z</updated>
<author>
<name>Grissiom</name>
<email>chaos.proton@gmail.com</email>
</author>
<published>2013-10-14T01:50:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=b72001fcac18d2c37c24e423cc7e15fe900dc172'/>
<id>urn:sha1:b72001fcac18d2c37c24e423cc7e15fe900dc172</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>kernel: use skip list to implement timer list</title>
<updated>2013-10-12T14:48:29Z</updated>
<author>
<name>Grissiom</name>
<email>chaos.proton@gmail.com</email>
</author>
<published>2013-09-26T07:52:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=d59aa279c37b7aba07385a3a2cb3057bce6c5fea'/>
<id>urn:sha1:d59aa279c37b7aba07385a3a2cb3057bce6c5fea</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>kernel: add RT_DEBUG_IN_THREAD_CONTEXT</title>
<updated>2013-10-11T14:51:38Z</updated>
<author>
<name>Grissiom</name>
<email>chaos.proton@gmail.com</email>
</author>
<published>2013-10-11T14:46:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=6f71308ef529bfcecd54daaa309d1336ef0c6366'/>
<id>urn:sha1:6f71308ef529bfcecd54daaa309d1336ef0c6366</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>update rt_kprintf: make sure the device is in STREAM mode when used by rt_kprintf.</title>
<updated>2013-09-24T07:29:08Z</updated>
<author>
<name>aozima</name>
<email>wuyangyong@gmail.com</email>
</author>
<published>2013-09-24T07:25:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=cad12ee14e5b10721c04c4c26eabdfd3167bfc17'/>
<id>urn:sha1:cad12ee14e5b10721c04c4c26eabdfd3167bfc17</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kservice: export vsnprintf as rt_vsnprintf</title>
<updated>2013-09-23T03:34:13Z</updated>
<author>
<name>Grissiom</name>
<email>chaos.proton@gmail.com</email>
</author>
<published>2013-09-23T03:27:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=7b0a3afdf90e85cabe3e39f49a5c2aa22e3e3e8d'/>
<id>urn:sha1:7b0a3afdf90e85cabe3e39f49a5c2aa22e3e3e8d</id>
<content type='text'>
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.
</content>
</entry>
</feed>
