diff options
author | barthess <barthess@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2011-08-09 10:15:25 +0000 |
---|---|---|
committer | barthess <barthess@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2011-08-09 10:15:25 +0000 |
commit | 1bcc0f1dc26c3358ca0c17f0b52e8b44dbc89d42 (patch) | |
tree | ba16188b80e3ed6bceac77805ff42349987a55d4 /os/kernel/src | |
parent | 0752e9d7e973161c32e4b667c7a8d06c68b0a9eb (diff) | |
download | ChibiOS-1bcc0f1dc26c3358ca0c17f0b52e8b44dbc89d42.tar.gz ChibiOS-1bcc0f1dc26c3358ca0c17f0b52e8b44dbc89d42.tar.bz2 ChibiOS-1bcc0f1dc26c3358ca0c17f0b52e8b44dbc89d42.zip |
I2C. Syncing with trunk (step 2)
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/i2c_dev@3216 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/kernel/src')
-rw-r--r-- | os/kernel/src/chsys.c | 6 | ||||
-rw-r--r-- | os/kernel/src/chthreads.c | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/os/kernel/src/chsys.c b/os/kernel/src/chsys.c index 8d9ce4905..4c8cd708d 100644 --- a/os/kernel/src/chsys.c +++ b/os/kernel/src/chsys.c @@ -77,6 +77,9 @@ void _idle_thread(void *p) { */
void chSysInit(void) {
static Thread mainthread;
+#if CH_DBG_ENABLE_STACK_CHECK
+ extern stkalign_t __main_thread_stack_base__;
+#endif
port_init();
_scheduler_init();
@@ -94,6 +97,9 @@ void chSysInit(void) { /* Now this instructions flow becomes the main thread.*/
setcurrp(_thread_init(&mainthread, NORMALPRIO));
currp->p_state = THD_STATE_CURRENT;
+#if CH_DBG_ENABLE_STACK_CHECK
+ currp->p_stklimit = &__main_thread_stack_base__;
+#endif
chSysEnable();
chRegSetThreadName("main");
diff --git a/os/kernel/src/chthreads.c b/os/kernel/src/chthreads.c index b68263a7b..182de7673 100644 --- a/os/kernel/src/chthreads.c +++ b/os/kernel/src/chthreads.c @@ -99,6 +99,9 @@ Thread *_thread_init(Thread *tp, tprio_t prio) { #if CH_USE_MESSAGES
queue_init(&tp->p_msgqueue);
#endif
+#if CH_DBG_ENABLE_STACK_CHECK
+ tp->p_stklimit = (stkalign_t *)(tp + 1);
+#endif
#if defined(THREAD_EXT_INIT_HOOK)
THREAD_EXT_INIT_HOOK(tp);
#endif
|