Commit Graph

3067 Commits

Author SHA1 Message Date
Grissiom a8520ed383 cortex-r4: let svc mode reuse the stack of IRQ on startup
As the svc stack is the stack of threads, there is no need to allocate a
separate stack for the startup. Reuse the IRQ stack should be OK.

Tested on rm48 board.
2013-11-17 12:49:07 +08:00
Bright Pan 9691c659c8 It is a big patch for stm32f0x, see the fellow :
1. fix heap management for stm32f0xx(SRAM=8k)
    2. add USART1, USART2 driver for stm32f051R8
    3. fix finsh support for stm32f0x
    4. fix board components initial for stm32f0x and open debug msg
    5. add led driver(pc9) and test thread for stm32f0discovery board
    6. add init thread for stm32f0x do components initial
    7. add rcc initial for stm32f0x in rt_hw_board_init()
    8. add print rcc freq information function

the console output example is:
    SYSCLK_Frequency is 48000000HZ
    PCLK_Frequency is 48000000HZ
    HCLK_Frequency is 48000000HZ
    CECCLK_Frequency is 32786HZ
    ADCCLK_Frequency is 14000000HZ
    USART1CLK_Frequency is 48000000HZ
    I2C1CLK_Frequency is 8000000HZ
    SystemCoreClock is 48000000HZ
    initialize rti_start:0 done

    \ | /
    - RT -     Thread Operating System
    / | \     1.2.0 build Nov 15 2013
    2006 - 2013 Copyright by rt-thread team
    do components intialization.
    initialize rti_board_end:0 done
    initialize rt_hw_led_init:32768 done
    initialize finsh_system_init:0 done
    finsh>>
2013-11-15 14:05:30 +08:00
Bernard Xiong 394657979d Merge pull request #194 from grissiom/eol-issue
freemodbus: fix eol
2013-11-06 16:43:44 -08:00
Grissiom 61ffa2c438 freemodbus: fix eol
On Windows platform, please set `autocrlf = true` and on Linux, please
set `autocrlf = input`.
2013-11-06 21:47:49 +08:00
Bernard Xiong fd28151768 Merge pull request #192 from armink/master
net: add freemodbus master and slave v1.6.0
2013-11-05 22:47:58 -08:00
armink 615579ccf1 add SConscript for freemodbus
Signed-off-by: armink <armink.ztl@gmail.com>
2013-11-06 14:16:24 +08:00
armink b280a940c4 add modbus master to freemodbus
Signed-off-by: armink <armink.ztl@gmail.com>
2013-11-06 09:34:24 +08:00
aozima 56cb5752d4 Merge pull request #189 from bright-pan/master
Fix hardfault bug for gcc port
2013-11-04 04:22:51 -08:00
Bright Pan 06987e72e5 Fix hardfault bug for gcc port
for 2013-02-20 aozima commmit "port for gcc", but the commit is
not tested,and the kernel is breakdown in context_gcc.S, the file
is a copy from cortex-m3,but not port for cortex-m0, so i complete
this port for aozima, test it in stm32f0discovery board ,
and it works fine.
2013-11-04 16:10:11 +08:00
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