文档介绍:精品文档
精品文档
1
精品文档
threadx学****笔记(一)
,它是面向处
理器和开发工具的。
Void_tx_initialize_lCPSR|=TX_INT_DISABLE;
2、_tx_thread_current_ptr->SP=SP,CPSR|=SVC_MODE;
3、设置堆栈指针为系统指针SP=SP_sv,c
_tx_thread_current_ptr=0,CPSR|=TX_INT_ENABLE;
4、B_tx_thread_schedule;
}
由于用户模式不能直接更改CPSR来关断的,所以要经过SWI
指令进入特权模式,而且特权模式和用户模式的SP对应不同的
物理存放器,所以要在转入系统模式取得用户模式下SP,最后
再回到特权模式。
精品文档
精品文档
9
精品文档
境。
精品文档
精品文档
10
精品文档
Void_tx_thread_schedule{
精品文档
精品文档
77
精品文档
1、while(_tx_thread_execute_ptr=0);
2、CPSR|=TX_INT_DISABLE,_tx_threadx_current_ptr=_
tx_thread_execute_ptr;
3、_tx_thread_current_ptr->TX_run_count++,_tx_timer_time_slice=_tx_thread_current_ptr->tx_time_slice;
4、If线程堆栈的中止种类=1,restoreContext_irq,else
restoreContext_request;
}
。
Unint_tx_thread_interrupt_control(unintnew_posture){
1、R1=CPSR;
2、SWI;
3、CPSR|=RO=newposture;
4、R0=R1,R0为返回值;
}
移植该函数时,针对不同的办理器,应盖根据准热爱存放器
CPSR的中止禁止未来设置开关中止向量,
果。
,这个初始的构造
精品文档
精品文档
12
精品文档
在线程创立时会惹起中止上下文返回到_tx_thread_shell_entry函
数的开头。然后这个函数调用指定线程入口函数。其中止种类设
精品文档
精品文档
13
精品文档
置为1,表示中止上下文。
Void_tx_thread_stack_build(TXTHREAD*thread_ptr,void
(*function)(void)){
1、保证堆栈初步地点八字节对齐;
2、中止地点存入线程调用的入口地点PUSH
function_ptr;
3、R0-R12,R14的初始值都设置为0,PUSH初始值;
4、要存入堆栈的CPSR值设置为用户模式,开中止,
标志位清零,R1=USER_MODE,PUSHR1;
5、Thread_ptr->sp=newSP;
}
当办理一个初级的中止时,,它是
可选的,大部分端口都用不到。。
这两个函数只需将它们翻译成相应ARM汇编语言就能够了。
threadx学****笔记(二)-1
tx_kernel_enter( );进入threadx核
tx_kernel_enter( )
精品文档
精品文档
14
精品文档
voidtx_kernel_enter(void)
所属文件调用者开关量
精品文档
精品文档
15
精品文档
操作系统首先从从量表直接进入该函数,在函数从前没有进行任何的硬件
及软件的初始化!该函数主要包含_tx_initialize_low_level( ),
_tx_initialize_high_level( ),
tx_application_define(_tx_in