1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

500 Commits

Author SHA1 Message Date
Oleg Hahm
70c014d698 doc: additional hint for msg_send_receive() 2015-03-18 14:26:03 +01:00
2acd216d5a Merge pull request #2589 from kushalsingh007/isr
Core: doc: add note advising against creation of threads from within ISR
2015-03-17 10:58:26 +01:00
kushalsingh007
3b7e54b441 Core: Change in description of thread_create function.
- Fixes #2136
- Adds warning about creating threads from within an ISR.
2015-03-13 19:55:08 +05:30
Oleg Hahm
4fec8fd31e doc: improvement to IPC documentation
Per default, doxygen will take only the part until the first dot into
account for the brief description. In this case this leads to an
ambiguous overview over the IPC send functions.
2015-03-13 10:15:41 +01:00
Ludwig Ortmann
0b8271a08a Merge pull request #2429 from authmillenon/all/doc/enable-helper-macros
doc: enable helper macros for doxygen
2015-03-07 11:32:04 +01:00
Oleg Hahm
e75d9505ae core: added missing semicolon in header 2015-03-05 17:08:52 +01:00
Oleg Hahm
b441cdfb3a core: documentation: document msg_reply_int() 2015-03-05 16:03:08 +01:00
Oleg Hahm
460dcdf8bb core: documentation: msg_reply returns -1 on error 2015-03-05 15:54:43 +01:00
Martine Lenders
21dd2eb21d doc: enable helper macros for doxygen 2015-03-03 17:53:32 +01:00
Ludwig Ortmann
cec87139a5 core, cpu, drivers, tests: remove trailing space 2015-02-18 13:52:48 +01:00
Martine Lenders
ffe9678bd1 core: expand documentation of thread_create()
Adds specific documentation for the error return values of
thread_create().
2015-02-13 21:34:33 +01:00
Martine Lenders
29c3fe9830 [SQUASH ME] fix typo 2015-02-12 14:30:36 +01:00
Martine Lenders
da10435a61 debug: Make DEBUGF more platform-independent 2015-02-12 12:57:21 +01:00
Martine Lenders
0eb2d78dda doc: use my real name 2015-02-08 18:52:16 +01:00
BytesGalore
714ee38355 boards: core: cpu: drivers: sys: added missing header guards 2015-01-27 19:10:57 +01:00
René Kijewski
5f29fed076 core: introduce msg_sent_by_int()
msg_send_int() sets `m->sender_pid = target_pid`. This was used to flag a
message as having been sent by an ISR.

This PR introduces a static inline function `msg_sent_by_int()` and a
specific define for this purpose.
2014-12-18 23:04:03 +01:00
Ludwig Ortmann
ad14b60fe7 Merge pull request #1958 from Kijewski/sched_switch-on-run-queue
core: `sched_switch()` switch if not on runqueue
2014-12-16 11:41:39 +01:00
Ludwig Ortmann
093085b4ff native: workaround for missing __builtin_bswap16
Implements a workaround for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624

This is present in current versions of ubuntu 12.04 and debian 7.7 (stable).
2014-12-15 09:27:40 +01:00
René Kijewski
310ea35018 Don't evaluate inISR() if not needed 2014-12-11 17:39:17 +01:00
René Kijewski
370f926bad core: sched_switch() switch if not on runqueue
Fixes #1935.

`sched_switch()` should not only switch if the other priority is higher,
but also if the current thread was moved from the runqueue.
2014-12-11 17:39:17 +01:00
Ludwig Ortmann
6c9e892927 Merge pull request #2139 from OlegHahm/doxygen_fix_core_warnings
doc: core: sched: add some references
2014-12-05 16:56:53 +01:00
b0d98dd8bd Merge pull request #2141 from LudwigOrtmann/core_dint_final
core: remove remaining dINT occurences
2014-12-04 20:23:12 +01:00
Oleg Hahm
07fe5bcc9f Merge pull request #1709 from benpicco/hwtimer_fix
allow HWTIMER_SPEED > 1000000
2014-12-04 19:00:38 +01:00
Oleg Hahm
000450c894 Merge pull request #2117 from OlegHahm/doxygen_eliminate_warnings
Doxygen eliminate warnings pt. 2
2014-12-04 17:18:42 +01:00
Ludwig Ortmann
86189d600e core: remove remaining dINT occurences 2014-12-04 17:17:24 +01:00
Oleg Hahm
0ccf1043de doc: fixed broken doxygen references 2014-12-04 17:16:57 +01:00
Oleg Hahm
bca78dedd5 Merge pull request #2108 from LudwigOrtmann/thread_new_irq_api
Thread new IRQ api
2014-12-04 16:53:58 +01:00
Oleg Hahm
5adb43cc75 doc: add some references 2014-12-04 16:50:21 +01:00
Oleg Hahm
6310927ed7 doc: document internal cib init macro 2014-12-04 15:11:42 +01:00
Oleg Hahm
e9426ef9ab core: undefining ENABLE_DEBUG is no longer required 2014-12-03 22:56:15 +01:00
Ludwig Ortmann
0adba81d2e core/thread: use disableIRQ/restoreIRQ 2014-12-03 20:45:00 +01:00
Ludwig Ortmann
e6c808d5fa Merge pull request #1970 from Kijewski/optimize-cib
core: inline `cib.c`
2014-12-03 17:12:48 +01:00
Martine Lenders
c0b0110de9 core: Fix msg_send_receive
Fixes #1935
2014-12-03 15:42:37 +01:00
Oleg Hahm
d92e9af91c doc: fixed broken param descriptions 2014-11-30 22:34:50 +01:00
Ludwig Ortmann
68e1db938c core/hwtimer: fix HWTIMER_SPIN_BARRIER doc 2014-11-28 13:53:23 +01:00
René Kijewski
8a9220a85c core: cib size must not exceed MAXINT/2 2014-11-26 18:04:54 +01:00
Oleg Hahm
d34e14424e Revert "core: faster bitarithm_msb"
This reverts commit ed7e233876.
2014-11-26 17:20:47 +01:00
Ludwig Ortmann
b4d9c9e6b7 core/msg: coding convention cleanup 2014-11-25 19:38:36 +01:00
Ludwig Ortmann
535839f2d5 core/msg: use disable/restoreIRQ
* needed to change internal `msg_send` to allow external disabling of interrupts
2014-11-25 19:38:36 +01:00
Hauke Petersen
2220a9fab0 core/cpu/boards: removed fw_puts from RIOT 2014-11-21 13:09:02 +01:00
Oleg Hahm
459f550be5 Merge pull request #2042 from Kijewski/restrict
c++: `s/restrict/__restrict/`
2014-11-19 15:29:23 +01:00
Oleg Hahm
771b3a4506 Merge pull request #1984 from Kijewski/net_help-is-odd
core: move NTOHL and friends into byteorder.h
2014-11-19 15:11:43 +01:00
René Kijewski
f89e1f4a3d c++: s/restrict/__restrict/
`restrict` is not a keyword in C++, but `__restrict` is understood by
GCC-ish compilers.
2014-11-19 14:27:19 +01:00
9ce0b676b4 core: sys: move ringbuffer to core 2014-11-19 14:18:39 +01:00
René Kijewski
2c370862b7 core: allow inclusion of byteorder.h in C++ code 2014-11-19 00:47:25 +01:00
René Kijewski
434d6a1f65 core: move NTOHL and friends into byteorder.h 2014-11-19 00:46:41 +01:00
René Kijewski
ff2a1dc61b core: remove needless test in msg.c
`thread.c` initializes a thread with an empty message queue. `cib_put()`
will `return -1` for an empty CIB, so there is no need to test if
`thread->msg_array != NULL`.
2014-11-14 10:54:33 +01:00
René Kijewski
a07b44781d C++ -_- 2014-11-11 21:07:40 +01:00
Ludwig Ortmann
e4fec18bdc core/sched: unify DEBUG text syntax, nomenclature 2014-11-11 17:55:09 +01:00
René Kijewski
ab545f83b0 core: inline cib.c
The functions in `cib.h` are only used in `msg.c`. They are very small,
and proper function calls have a bigger overhead than inlining these
functions.

The difference in .text size (worst to best):

```
+104 native
+69  qemu-i386
+32  mbed_lpc1768
+28  samr21-xpro

-54  chronos
-54  z1
-56  iot-lab_M3
-56  msb-430
-56  msb-430h
-56  msba2
-56  openmote
-56  spark-core
-56  telosb
-56  wsn430-v1_3b
-56  wsn430-v1_4
-58  arduino-mega2560
-60  airfy-beacon
-60  arduino-due
-60  f4vi1
-60  msbiot
-60  pca10000
-60  pca10005
-60  stm32f0discovery
-60  stm32f3discovery
-60  stm32f4discovery
-60  udoo
-60  yunjia-nrf51822
-72  avsextrem
-72  pttu
-120 redbee-econotag
```
2014-11-11 17:40:18 +01:00
René Kijewski
b579372605 Merge pull request #1962 from Kijewski/sched-fix-debug-1
core: sched.c did not compile with DEBUG=1
2014-11-11 17:01:49 +01:00
René Kijewski
23177e5326 Remove special case for atmega in kernel_types.h 2014-11-11 11:42:44 +01:00
Oleg Hahm
a262de0678 core: always set sender_pid in msg_send_int 2014-11-10 09:29:16 +01:00
René Kijewski
12d157247c core: sched.c did not compile with DEBUG=1 2014-11-07 12:45:12 +01:00
René Kijewski
c3ba66781d core: put more intelligence into queue_msg()
Fixes #1942.

There were two instances were it was not checked the target thread has a
message queue before queuing the message.

This PR centralizes the check into `queue_msg()`.
2014-11-07 12:32:15 +01:00
Oleg Hahm
8dab420321 Merge pull request #1835 from OlegHahm/msg_receive_yield
core: msg_receive should yield
2014-11-06 16:27:32 +01:00
Oleg Hahm
4fd3d62f2a core: msg_receive should yield
If a thread sends blocking, but the target thread is not currently in
receive mode, the sender gets queued. If it has a higher priority it
should run again as soon as the target goes into receiving mode.
2014-11-06 15:35:28 +01:00
feb550f17a Merge pull request #1885 from OlegHahm/thread_yield_higher_cleanup
core: thread_yield_higher cleanup
2014-10-30 23:22:27 +01:00
Oleg Hahm
6b39ce9650 config: moved from core to sys
There's no need to run config_load from core directly, can be done by
auto_init.
2014-10-30 22:27:11 +01:00
Oleg Hahm
09f225f6ed config: use radio_address_t 2014-10-30 22:27:11 +01:00
René Kijewski
9ddbf57709 core: refactor sched_run
`sched_run()` was cluttered. Many individual changes were done without a
proper refactoring.
2014-10-30 21:00:09 +01:00
Oleg Hahm
9a61d8cf1c core: move optional tcb members to DEVELHELP 2014-10-30 16:37:10 +01:00
Oleg Hahm
4885690874 core: update irq_arch documentation 2014-10-30 16:11:11 +01:00
Oleg Hahm
9b1e180cd8 core: eliminate warning
This initialized has actually no relevance and is just needed to
suppress a compiler warning.
2014-10-30 16:11:11 +01:00
benpicco
37d8cabbe8 Merge pull request #1883 from kaspar030/hwtimer_new_irq_api
core: hwtimer: use disable/restoreIRQ
2014-10-28 15:53:50 +01:00
Oleg Hahm
93ac114bc3 core: move thread_yield*() to thread.[ch]
Although it might conceptionally rather belong to the scheduler, the
yield functions are prefixed with thread_ and thus, belong there.
2014-10-28 00:56:37 +01:00
Oleg Hahm
6f53cd484d core: make sched_runqueue public
Reverting b604832, because thread_yield() needs to access this
information.
2014-10-28 00:56:14 +01:00
cbab2efe7e core: hwtimer: use disable/restoreIRQ 2014-10-27 17:44:33 +01:00
Ludwig Ortmann
eceb656c49 core,sys: fix storage types for irq API usage
* should not have any effect as long as `unsigned` and `int` are compatible
* also fix two cosmetic `unsigned int` -> `unsigned` for consistency
2014-10-27 16:25:23 +01:00
Oleg Hahm
c33e1b5dad Merge pull request #1844 from OlegHahm/doxygen_cleanup
Doxygen cleanup
2014-10-24 16:04:01 +02:00
Oleg Hahm
9b819c4dd6 Merge pull request #1836 from Kijewski/yield-less
core: introduce sched_yield(), yield less
2014-10-24 10:05:37 +02:00
René Kijewski
677d690e2b core: introduce thread_yield_higher(), yield less
Fixes #1708.

Currently involuntary preemption causes the current thread not only to
yield for a higher prioritized thread, but all other threads of its own
priority class, too.

This PR adds the function `thread_yield_higher()`, which will yield the
current thread in favor of higher prioritized functions, but not for
threads of its own priority class.

Boards now need to implement `thread_yield_higher()` instead of
`thread_yield()`, but `COREIF_NG` boards are not affected in any way.

`thread_yield()` retains its old meaning: yield for every thread that
has the same or a higher priority.

This PR does not touch the occurrences of `thread_yield()` in the periph
drivers, because the author of this PR did not look into the logic of
the various driver implementations.
2014-10-24 00:09:56 +02:00
René Kijewski
c0ce346a12 cppcheck: don't needlessly assign sched_active_pid 2014-10-23 20:50:31 +02:00
Oleg Hahm
206b75933e doc: fixed remaining doxygen warnings in core
Only one warning remains and will be fixed in a separate commit.
2014-10-23 18:30:09 +02:00
Oleg Hahm
db8f3d2650 cpu: use typed function pointer for thread_arch_init 2014-10-23 18:26:21 +02:00
Oleg Hahm
18381661dc doc: fix documentation for hwtimer
@verbatim was used incorrectly and a closing html tag was missing
2014-10-23 17:29:25 +02:00
René Kijewski
b604832777 core: make sched_runqueues static
PR #1000 overlooked to rename `runqueues` into `sched_runqueues` in
 `sched.h`. This shows that the variable is not used outside of
 `sched.c`.

 As the list should not be accessed outside of the scheduler, so it
 can be `static`.
2014-10-22 16:55:50 +02:00
5146c66786 core: adapt to msg_try_send 2014-10-22 12:37:33 +02:00
bdcac07faa core: msg: introduce msg_try_send 2014-10-22 12:37:33 +02:00
DangNhat Pham-Huu
e6c7414357 Merge pull request #1805 from BytesGalore/extern_C_in_headers_core_unguard_includes
core: moved `#include`s outside the `extern "C"` guards
2014-10-22 07:09:57 +07:00
Martine Lenders
a7ed27130d byteorder: silence warnings in clang 2014-10-21 19:50:37 +02:00
BytesGalore
74161f0f2d core: moved #includes outside the extern "C" guards 2014-10-21 13:46:04 +02:00
René Kijewski
862000b715 core: align stack on a 32bit boundary
Fixes #1267.
2014-10-17 18:22:37 +02:00
Ludwig Ortmann
cd3dff3f2e core/msg: add DEVELHELP checks for valid pid 2014-10-13 19:44:35 +02:00
Ludwig Ortmann
ab418faa34 core: add doxygen header for kernel_types 2014-10-13 19:44:35 +02:00
Ludwig Ortmann
2fe2a39602 core: refactor check for valid pid
move into header and remove redundant condition
2014-10-13 19:44:35 +02:00
Martine Lenders
42f96b0d60 Merge pull request #1699 from Kijewski/issue-1586
core: Provide functions for different byte orders
2014-10-10 07:38:57 +02:00
Pham Huu Dang Nhat
2ded32dee7 c++: core: add extern C in header files 2014-10-09 06:18:16 +07:00
Benjamin Valentin
d6ca7c44c2 prevent rounding 0 if HWTIMER_SPEED > 1000000L
The current macros in hwtimer.h expect HWTIMER_SPEED to be < 1000000L, otherwise integer arithmetic will round the result down to 0.
Add a case to prevent that.
2014-10-06 22:13:48 +02:00
Ludwig Ortmann
f677f70836 core/hwtimer: add HWTIMER_WAIT_OVERHEAD 2014-10-01 19:53:43 +02:00
Ludwig Ortmann
0a8be81526 core/hwtimer: clean up header
- break/shorten overlong lines
- improve grammar
2014-10-01 19:53:42 +02:00
Ludwig Ortmann
da550bc913 introduce HWTIMER_SPIN_BARRIER (API change)
Boards should define HWTIMER_SPIN_BARRIER that is used to decide
whether it makes sense to set a timer and yield or call hwtimer_spin
instead.
Used by `core/hwtimer.c` and `sys/vtimer/vtimer.c`.
A default value is provided and a warning is printed when it is used.
2014-10-01 19:53:42 +02:00
René Kijewski
749db8d0dd core: Provide functions for different byte orders
Rationale: see #1586.
2014-09-29 21:07:02 +02:00
René Kijewski
4e50d74272 core: Provide ssize_t in a common place
Now you can include `kernel_types.h` if you need the `ssize_t`, without
 facing problems due to the terrible MSP toolchain.
2014-09-26 14:04:30 +02:00
René Kijewski
1df0b5644a core: sched_switch only switch for higher priority
sched_switch() is called by some library functions when a call unblocks
another thread. Then it needs to be tested if the current thread should
be preempted for the newly runnable thread.

A non-volutarily yield should only happen if the unblocked thread has a
_higher_ priority than the current thread. The current implementation,
which tests if the other thread has the same or a higher priority, does
not fit the documentation.
2014-09-25 10:16:33 +02:00
Ludwig Ortmann
289c4c0ee4 doc: add license headers to some .h files 2014-09-18 17:45:11 +02:00
Martine Lenders
1cc82b6aa7 core: priority_queue: simplify inheritance 2014-09-05 18:17:12 +02:00
Kévin Roussel
d1cf9c4bfd Ensure hwtimer_spin() won't wait for an unreachable stop counter value
without using a costly MOD operation
2014-08-28 15:01:58 +02:00
Ludwig Ortmann
b7992922ce fix license headers in non-.c files 2014-08-23 16:16:26 +02:00
003dd1969c Merge pull request #1566 from Kijewski/undef_is_null
core: let PIDs begin with 1
2014-08-22 00:43:04 +02:00