嵌入式操作系统内核原理和开发(多线程轮转)

嵌入式操作系统内核原理和开发(多线程轮转)

ID:33935111

大小:371.77 KB

页数:5页

时间:2019-02-28

嵌入式操作系统内核原理和开发(多线程轮转)_第1页
嵌入式操作系统内核原理和开发(多线程轮转)_第2页
嵌入式操作系统内核原理和开发(多线程轮转)_第3页
嵌入式操作系统内核原理和开发(多线程轮转)_第4页
嵌入式操作系统内核原理和开发(多线程轮转)_第5页
资源描述:

《嵌入式操作系统内核原理和开发(多线程轮转)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本文由长春白癜风专科医院http://tf463.com/收集,转载请注明出处嵌入式操作系统内核原理和开发(多线程轮转)之前我们也谈到了线程创建,基本上简单的系统就可以跑起来了,但是还没有到多线程运行的地步。所以,我们下面试图所要做的工作就是创建更多的线程,让更多的线程运行起来。为了做好这一点,首先我们需要对task_init重新修整一下,[cpp]viewplaincopy1.voidtask_init(intindex,UINT32data[],intsize,void(*func)())2.{3.UINT32unit=size;4.5.memset((void*)da

2、ta,0,size*sizeof(UINT32));6.data[unit-1]=(UINT32)func;7.data[unit-2]=0;8.data[unit-3]=0;9.data[unit-4]=0;10.data[unit-5]=0;11.data[unit-6]=0;12.data[unit-7]=0;13.data[unit-8]=0;14.data[unit-9]=0;15.data[unit-10]=(UINT32)&data[unit-9];16.new[index]=(UINT32)&data[unit-10];17.}这是一个创建线程的函数,有堆栈

3、、大小、函数入口。那么,我们的函数什么时候创建呢,其实就是在系统的开始位置就可以,[cpp]viewplaincopy1.voidset_all_task()2.{3.intindex;4.5.for(index=0;index

4、[cpp]viewplaincopy1.voidsignal_handler(intm)本文由吉林白癜风医院http://tf463.com/收集,转载请注明出处本文由长春白癜风专科医院http://tf463.com/收集,转载请注明出处2.{3.current_thread_id=current_thread_id%THREAD_MAX_NUMBER;4.5.if(0==quit[current_thread_id])6.{7.swap(&old,&new[current_thread_id]);8.}9.10.printf("count=%dinmain!",

5、count++);11.current_thread_id++;12.}当然,为了要实现真正的多线程运行,我们还要保证线程始终在运行。要达到这一点也不是很复杂,只需要把子函数设计为while(1)即可,[cpp]viewplaincopy1.voidhello()2.{3.while(1){4.printf("id=%i,count=%dinthread!",current_thread_id,count++);5.swap(&new[current_thread_id],&old);6.7.printf("id=%i,count=%dinthread!",curr

6、ent_thread_id,count++);8.swap(&new[current_thread_id],&old);9.}10.}基本上要做到以上几点就可以实现了,最后给出完整的代码,大家可以在linux系统好好试试这个代码。[cpp]viewplaincopy1.#include2.#include3.#include4.#include5.#include6.#include7.8.#defineUINT32unsignedint9.#defineS

7、TACK_LENGTH51210.#defineTHREAD_MAX_NUMBER1011.本文由吉林白癜风医院http://tf463.com/收集,转载请注明出处本文由长春白癜风专科医院http://tf463.com/收集,转载请注明出处12.structitimervaloldtv;13.UINT32old=0;14.UINT32count=0;15.UINT32task_stack[THREAD_MAX_NUMBER][STACK_LENGTH]={0};16.UINT32new[THREAD_MAX_N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。