summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlatercomer <[email protected]>2025-03-16 23:11:17 +0800
committerRbb666 <[email protected]>2025-03-17 16:46:39 +0800
commit302e60d929d1ebfc84d522b54949f21bb6ff9bd4 (patch)
tree393dd9d91158a7e012bcf787983d105002b6cde2
parentca2d025215f34928827e541a48df7d762c28d20b (diff)
解决rt_interrupt_from_thread和rt_interrupt_to_thread指针赋值错误
Signed-off-by: latercomer <[email protected]>
-rw-r--r--libcpu/sim/win32/cpu_port.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libcpu/sim/win32/cpu_port.c b/libcpu/sim/win32/cpu_port.c
index 1ac9fc0379..ad5891c91f 100644
--- a/libcpu/sim/win32/cpu_port.c
+++ b/libcpu/sim/win32/cpu_port.c
@@ -256,10 +256,10 @@ void rt_hw_context_switch_interrupt(rt_ubase_t from, rt_ubase_t to, rt_thread_t
rt_thread_switch_interrupt_flag = 1;
// set rt_interrupt_from_thread
- rt_interrupt_from_thread = from;
+ rt_interrupt_from_thread = *((rt_ubase_t *)(from));
}
- rt_interrupt_to_thread = to;
+ rt_interrupt_to_thread = *((rt_ubase_t *)(to));
//trigger YIELD exception(cause context switch)
TriggerSimulateInterrupt(CPU_INTERRUPT_YIELD);
@@ -274,12 +274,12 @@ void rt_hw_context_switch(rt_ubase_t from, rt_ubase_t to)
rt_thread_switch_interrupt_flag = 1;
// set rt_interrupt_from_thread
- rt_interrupt_from_thread = from;
+ rt_interrupt_from_thread = *((rt_ubase_t *)(from));
}
// set rt_interrupt_to_thread
- rt_interrupt_to_thread = to;
+ rt_interrupt_to_thread = *((rt_ubase_t *)(to));
//trigger YIELD exception(cause contex switch)
TriggerSimulateInterrupt(CPU_INTERRUPT_YIELD);
@@ -312,7 +312,7 @@ void rt_hw_context_switch(rt_ubase_t from, rt_ubase_t to)
void rt_hw_context_switch_to(rt_ubase_t to)
{
//set to thread
- rt_interrupt_to_thread = to;
+ rt_interrupt_to_thread = *((rt_ubase_t *)(to));
//clear from thread
rt_interrupt_from_thread = 0;