aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-10-14 12:37:35 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-10-14 12:37:35 +0000
commite571ffd6484806851a4a37cd791508cfce122d40 (patch)
treeaf020e293a087c127dadda591adeaf98680c3a5a
parent3b0fd0fa92ec80455944ff3313b24df0644d73a9 (diff)
downloadChibiOS-e571ffd6484806851a4a37cd791508cfce122d40.tar.gz
ChibiOS-e571ffd6484806851a4a37cd791508cfce122d40.tar.bz2
ChibiOS-e571ffd6484806851a4a37cd791508cfce122d40.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7395 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/LPC21xx/RT-LPC214x-OLIMEX/.project5
-rw-r--r--demos/LPC21xx/RT-LPC214x-OLIMEX/chconf.h12
-rw-r--r--demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch4
-rw-r--r--os/rt/ports/ARM/chcore.h4
-rw-r--r--os/rt/ports/ARM/compilers/GCC/chcoreasm.s22
-rw-r--r--test/rt/testmtx.c14
6 files changed, 37 insertions, 24 deletions
diff --git a/demos/LPC21xx/RT-LPC214x-OLIMEX/.project b/demos/LPC21xx/RT-LPC214x-OLIMEX/.project
index 2afbc5432..4e56772ff 100644
--- a/demos/LPC21xx/RT-LPC214x-OLIMEX/.project
+++ b/demos/LPC21xx/RT-LPC214x-OLIMEX/.project
@@ -34,5 +34,10 @@
<type>2</type>
<locationURI>CHIBIOS/os</locationURI>
</link>
+ <link>
+ <name>test</name>
+ <type>2</type>
+ <locationURI>CHIBIOS/test</locationURI>
+ </link>
</linkedResources>
</projectDescription>
diff --git a/demos/LPC21xx/RT-LPC214x-OLIMEX/chconf.h b/demos/LPC21xx/RT-LPC214x-OLIMEX/chconf.h
index e8d5c8e9e..6b29188af 100644
--- a/demos/LPC21xx/RT-LPC214x-OLIMEX/chconf.h
+++ b/demos/LPC21xx/RT-LPC214x-OLIMEX/chconf.h
@@ -332,7 +332,7 @@
*
* @note The default is @p FALSE.
*/
-#define CH_DBG_SYSTEM_STATE_CHECK FALSE
+#define CH_DBG_SYSTEM_STATE_CHECK TRUE
/**
* @brief Debug option, parameters checks.
@@ -341,7 +341,7 @@
*
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_CHECKS FALSE
+#define CH_DBG_ENABLE_CHECKS TRUE
/**
* @brief Debug option, consistency checks.
@@ -351,7 +351,7 @@
*
* @note The default is @p FALSE.
*/
-#define CH_DBG_ENABLE_ASSERTS FALSE
+#define CH_DBG_ENABLE_ASSERTS TRUE
/**
* @brief Debug option, trace buffer.
@@ -372,7 +372,7 @@
* @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
-#define CH_DBG_ENABLE_STACK_CHECK FALSE
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
/**
* @brief Debug option, stacks initialization.
@@ -382,7 +382,7 @@
*
* @note The default is @p FALSE.
*/
-#define CH_DBG_FILL_THREADS FALSE
+#define CH_DBG_FILL_THREADS TRUE
/**
* @brief Debug option, threads profiling.
@@ -393,7 +393,7 @@
* @note This debug option is not currently compatible with the
* tickless mode.
*/
-#define CH_DBG_THREADS_PROFILING FALSE
+#define CH_DBG_THREADS_PROFILING TRUE
/** @} */
diff --git a/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch b/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch
index 3caa1e031..8705f705f 100644
--- a/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch
+++ b/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch
@@ -6,7 +6,7 @@
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20&#13;&#10;monitor arm7_9 dcc_downloads enable&#13;&#10;monitor arm7_9 fast_memory_access enable&#13;&#10;monitor reset&#13;&#10;monitor sleep 500&#13;&#10;monitor halt 50&#13;&#10;monitor sleep 500&#13;&#10;monitor poll&#13;&#10;monitor flash erase_sector 0 0 8&#13;&#10;"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20&#13;&#10;monitor arm7_9 dcc_downloads enable&#13;&#10;monitor arm7_9 fast_memory_access enable&#13;&#10;monitor reset&#13;&#10;monitor sleep 500&#13;&#10;monitor halt 50&#13;&#10;monitor sleep 500&#13;&#10;monitor poll&#13;&#10;monitor flash erase_sector 0 0 9&#13;&#10;"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="Generic TCP/IP"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
@@ -33,7 +33,7 @@
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList/&gt;"/>
+<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList&gt;&lt;content id=&quot;lr_abt-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;cpsr-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;r6-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;r4-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;r3-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;r1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;r0-(format)&quot; val=&quot;4&quot;/&gt;&lt;/contentList&gt;"/>
<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="./build/ch.elf"/>
diff --git a/os/rt/ports/ARM/chcore.h b/os/rt/ports/ARM/chcore.h
index bcf27d719..daaea7e02 100644
--- a/os/rt/ports/ARM/chcore.h
+++ b/os/rt/ports/ARM/chcore.h
@@ -307,7 +307,7 @@ struct context {
#if CH_DBG_ENABLE_STACK_CHECK
#define port_switch(ntp, otp) { \
- register struct intctx *r13 asm ("r13"); \
+ register struct port_intctx *r13 asm ("r13"); \
if ((stkalign_t *)(r13 - 1) < otp->p_stklimit) \
chSysHalt("stack overflow"); \
_port_switch_thumb(ntp, otp); \
@@ -320,7 +320,7 @@ struct context {
#if CH_DBG_ENABLE_STACK_CHECK
#define port_switch(ntp, otp) { \
- register struct intctx *r13 asm ("r13"); \
+ register struct port_intctx *r13 asm ("r13"); \
if ((stkalign_t *)(r13 - 1) < otp->p_stklimit) \
chSysHalt("stack overflow"); \
_port_switch_arm(ntp, otp); \
diff --git a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
index 7c33135bf..18a0772e7 100644
--- a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
+++ b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
@@ -219,22 +219,22 @@ _port_irq_common:
bx r0
.code 16
#if CH_DBG_SYSTEM_STATE_CHECK
- bl dbg_check_lock
+ bl _dbg_check_lock
#endif
bl chSchDoReschedule
#if CH_DBG_SYSTEM_STATE_CHECK
- bl dbg_check_unlock
+ bl _dbg_check_unlock
#endif
mov lr, pc
bx lr
.code 32
#else /* !defined(THUMB_NO_INTERWORKING) */
#if CH_DBG_SYSTEM_STATE_CHECK
- bl dbg_check_lock
+ bl _dbg_check_lock
#endif
bl chSchDoReschedule
#if CH_DBG_SYSTEM_STATE_CHECK
- bl dbg_check_unlock
+ bl _dbg_check_unlock
#endif
#endif /* !defined(THUMB_NO_INTERWORKING) */
@@ -258,9 +258,17 @@ _port_irq_common:
.globl _port_thread_start
_port_thread_start:
#if CH_DBG_SYSTEM_STATE_CHECK
- mov r0, #0
- ldr r1, =dbg_lock_cnt
- str r0, [r1]
+#if defined(THUMB_NO_INTERWORKING)
+ add r0, pc, #1
+ bx r0
+ .code 16
+#endif
+ bl _dbg_check_unlock
+#if defined(THUMB_NO_INTERWORKING)
+ mov lr, pc
+ bx lr
+ .code 32
+#endif
#endif
msr CPSR_c, #MODE_SYS
#if defined(THUMB_NO_INTERWORKING)
diff --git a/test/rt/testmtx.c b/test/rt/testmtx.c
index ccf7b9497..3fea7036b 100644
--- a/test/rt/testmtx.c
+++ b/test/rt/testmtx.c
@@ -159,7 +159,7 @@ static msg_t thread2L(void *p) {
(void)p;
chMtxLock(&m1);
test_cpu_pulse(40);
- chMtxUnlock();
+ chMtxUnlock(&m1);
test_cpu_pulse(10);
test_emit_token('C');
return 0;
@@ -182,7 +182,7 @@ static msg_t thread2H(void *p) {
chThdSleepMilliseconds(40);
chMtxLock(&m1);
test_cpu_pulse(10);
- chMtxUnlock();
+ chMtxUnlock(&m1);
test_emit_token('A');
return 0;
}
@@ -250,7 +250,7 @@ static msg_t thread3LL(void *p) {
(void)p;
chMtxLock(&m1);
test_cpu_pulse(30);
- chMtxUnlock();
+ chMtxUnlock(&m1);
test_emit_token('E');
return 0;
}
@@ -264,9 +264,9 @@ static msg_t thread3L(void *p) {
test_cpu_pulse(20);
chMtxLock(&m1);
test_cpu_pulse(10);
- chMtxUnlock();
+ chMtxUnlock(&m1);
test_cpu_pulse(10);
- chMtxUnlock();
+ chMtxUnlock(&m2);
test_emit_token('D');
return 0;
}
@@ -278,7 +278,7 @@ static msg_t thread3M(void *p) {
chThdSleepMilliseconds(20);
chMtxLock(&m2);
test_cpu_pulse(10);
- chMtxUnlock();
+ chMtxUnlock(&m2);
test_emit_token('C');
return 0;
}
@@ -300,7 +300,7 @@ static msg_t thread3HH(void *p) {
chThdSleepMilliseconds(50);
chMtxLock(&m2);
test_cpu_pulse(10);
- chMtxUnlock();
+ chMtxUnlock(&m2);
test_emit_token('A');
return 0;
}