b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

threadx操作系统_threadx usb_threadx缺点

电脑杂谈  发布时间:2017-04-07 16:15:11  来源:网络整理

一:threadx 开场白

由于工作的原因,涉及到了threadx操作系统,其实我个人觉得,threadx和ucosII十分的相识,只是threadx用于商业性质,而不像ucosII那样提供了源代码。

在消息队列,消息邮箱,事件标志组,信号量与ucosII有相之处。我个人ucosII源代码自己研究过,对ucos的使用知道些。但是在设计多thread的能力还是欠缺,多个thread之间高效,简单的数据通信方面还有待提高。

Threadx是啥东西,是OS,是OS了事情就好办了,OS主要是用来做使用的?主要是用来在单CPU上面模拟多CPU,从而达到对多个task实时调度。同时提供多任务之间资源的同步与互斥使用及任务之间数据的传递。

其实例代码如下:main.c

Task创建函数:

UINT tx_thread_create(

TX_THREAD *thread_ptr,

CHAR *name_ptr, VOID (*entry_function)(ULONG),

ULONG entry_input,

VOID *stack_start,

ULONG stack_size,

UINT priority,

UINT preempt_threshold,

ULONG time_slice,

UINT auto_start)

其中VOID (*entry_function)(ULONG)为任务处理函数。其task的创建各个OS之间基本类。没有什么好说的,对于用户来说主要是:编写VOID (*entry_function)(ULONG)任务处理函数。其中threadx任务调度方式为:基于时间片。在创建任务时可以将多个任务的优先级priority设置为相同不会影响threadx对task的调度。

但是由于基于时间片的调度方式,因此每一个task必须在必要的时候释放对cpu的独占使用。threadx操作系统其方式有:tx_thread_sleep()和tx_thread_relinquish()

个人工作中使用到的API函数包括如下:互斥信号量,计数信号量,消息队列,定时器.事件组。其中Event Flags Group Services最为复杂,主要用于多任务之间的同步使用。

二:arm中断及中断与任务之间的数据同步

在arm的裸机代码中我们,经常会看到如下类的代码:

B armExceptionHandlerUndefinedAsm ; Undefined handler

B armExceptionHandlerSwiAsm ; Software interrupt handler

B armExceptionHandlerPrefetchAsm ; Prefetch exception handler

B armExceptionHandlerAbortAsm ; Abort exception handler

B armExceptionHandlerReservedAsm ; Reserved exception handler

B _irq_handler ; IRQ interrupt handler

B _fiq_handler ; FIQ interrupt handler

上面描述了arm中的7中类型的异常处理汇编代码,一般主要关注的是IRQ和FIQ这俩种中断。

下面看看irq的处理函数。

IMPORT _tx_thread_context_save

IMPORT _tx_thread_context_restore


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40032-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...