嵌入式测控系统实习报告Word下载.docx

上传人:b****6 文档编号:19635948 上传时间:2023-01-08 格式:DOCX 页数:11 大小:122.27KB
下载 相关 举报
嵌入式测控系统实习报告Word下载.docx_第1页
第1页 / 共11页
嵌入式测控系统实习报告Word下载.docx_第2页
第2页 / 共11页
嵌入式测控系统实习报告Word下载.docx_第3页
第3页 / 共11页
嵌入式测控系统实习报告Word下载.docx_第4页
第4页 / 共11页
嵌入式测控系统实习报告Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

嵌入式测控系统实习报告Word下载.docx

《嵌入式测控系统实习报告Word下载.docx》由会员分享,可在线阅读,更多相关《嵌入式测控系统实习报告Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

嵌入式测控系统实习报告Word下载.docx

stdio.h>

string.h>

ctype.h>

stdlib.h>

conio.h>

dos.h>

setjmp.h>

#include"

E:

\ucos-ii\software\ucos-ii\ix86l\bc45\os_cpu.h"

\ucos-ii\SOFTWARE\uCOS-II\EX1_x86L\BC45\SOURCE\os_cfg.h"

\ucos-ii\software\ucos-ii\source\ucos_ii.h"

\ucos-ii\software\blocks\pc\bc45\pc.h"

/*

*********************************************************************************************************

*CONSTANTS

*/

#defineTASK_STK_SIZE512/*Sizeofeachtask'

sstacks(#ofWORDs)*/

#defineN_TASKS4/*Numberofidenticaltasks*/

*VARIABLES

OS_STKTaskStk[N_TASKS][TASK_STK_SIZE];

/*Tasksstacks*/

OS_STKTaskStartStk[TASK_STK_SIZE];

charTaskData[N_TASKS];

/*Parameterstopasstoeachtask*/

OS_EVENT*RandomSem;

*FUNCTIONPROTOTYPES

voidTask(void*data);

/*Functionprototypesoftasks*/

voidTaskStart(void*data);

/*FunctionprototypesofStartuptask*/

staticvoidTaskStartCreateTasks(void);

staticvoidTaskStartDispInit(void);

staticvoidTaskStartDisp(void);

/*$PAGE*/

*MAIN

voidmain(void)

{

PC_DispClrScr(DISP_FGND_WHITE+DISP_BGND_BLACK);

/*Clearthescreen*/

OSInit();

/*InitializeuC/OS-II*/

PC_DOSSaveReturn();

/*SaveenvironmenttoreturntoDOS*/

PC_VectSet(uCOS,OSCtxSw);

/*InstalluC/OS-II'

scontextswitchvector*/

/*

RandomSem=OSSemCreate

(1);

*//*Randomnumbersemaphore*/

OSTaskCreate(TaskStart,(void*)0,&

TaskStartStk[TASK_STK_SIZE-1],0);

OSStart();

/*Startmultitasking*/

}

*STARTUPTASK

//voidTaskStart(void*pdata)

//{

//#ifOS_CRITICAL_METHOD==3/*AllocatestorageforCPUstatusregister*/

//OS_CPU_SRcpu_sr;

//#endif

//chars[100];

//INT16Skey;

//pdata=pdata;

/*Preventcompilerwarning*/

//TaskStartDispInit();

/*Initializethedisplay*/

//OS_ENTER_CRITICAL();

//PC_VectSet(0x08,OSTickISR);

sclocktickISR*/

//PC_SetTickRate(OS_TICKS_PER_SEC);

/*Reprogramtickrate*/

//OS_EXIT_CRITICAL();

//OSStatInit();

/*InitializeuC/OS-II'

sstatistics*/

//TaskStartCreateTasks();

/*Createalltheapplicationtasks*/

//for(;

;

//{

//TaskStartDisp();

/*Updatethedisplay*/

//if(PC_GetKey(&

key)==TRUE)

//{/*Seeifkeyhasbeenpressed*/

//if(key==0x1B)

//{/*Yes,seeifit'

stheESCAPEkey*/

//PC_DOSReturn();

/*ReturntoDOS*/

//}

//OSCtxSwCtr=0;

/*Clearcontextswitchcounter*/

//OSTimeDlyHMSM(0,0,1,0);

/*Waitonesecond*/

//}

*INITIALIZETHEDISPLAY

staticvoidTaskStartDispInit(void)

{

/*1111111111222222222233333333334444444444555555555566666666667777777777*/

/*01234567890123456789012345678901234567890123456789012345678901234567890123456789*/

PC_DispStr(0,0,"

uC/OS-II,TheReal-TimeKernel"

DISP_FGND_WHITE+DISP_BGND_RED+DISP_BLINK);

PC_DispStr(0,1,"

JeanJ.Labrosse"

DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY);

PC_DispStr(02,"

"

PC_DispStr(0,3,"

EXAMPLE#1"

PC_DispStr(0,4,"

PC_DispStr(0,5,"

PC_DispStr(0,6,"

PC_DispStr(0,7,"

PC_DispStr(0,8,"

PC_DispStr(0,9,"

PC_DispStr(0,10,"

PC_DispStr(0,11,"

PC_DispStr(0,12,"

PC_DispStr(0,13,"

PC_DispStr(0,14,"

PC_DispStr(0,15,"

PC_DispStr(0,16,"

PC_DispStr(0,17,"

PC_DispStr(0,18,"

PC_DispStr(0,19,"

PC_DispStr(0,20,"

PC_DispStr(0,21,"

PC_DispStr(0,22,"

<

-PRESS'

ESC'

TOQUIT->

DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY+DISP_BLINK);

/*$PAGE*//*

*UPDATETHEDISPLAY

staticvoidTaskStartDisp(void)

{

chars[80];

//sprintf(s,"

%5d"

OSTaskCtr);

/*Display#tasksrunning*/

//PC_DispStr(18,22,s,DISP_FGND_YELLOW+DISP_BGND_BLUE);

//#ifOS_TASK_STAT_EN>

0

%3d"

OSCPUUsage);

/*DisplayCPUusagein%*/

//PC_DispStr(36,22,s,DISP_FGND_YELLOW+DISP_BGND_BLUE);

OSCtxSwCtr);

/*Display#contextswitchespersecond*/

//PC_DispStr(18,23,s,DISP_FGND_YELLOW+DISP_BGND_BLUE);

V%1d.%02d"

OSVersion()/100,OSVersion()%100);

/*DisplayuC/OS-II'

sversionnumber*/

//PC_DispStr(75,24,s,DISP_FGND_YELLOW+DISP_BGND_BLUE);

//switch(_8087){/*DisplaywhetherFPUpresent*/

//case0:

//PC_DispStr(71,22,"

NOFPU"

DISP_FGND_YELLOW+DISP_BGND_BLUE);

//break;

//case1:

8087FPU"

//case2:

//PC_DispStr(71,22,"

80287FPU"

//case3:

80387FPU"

//}

*CREATETASKS

staticvoidTaskStartCreateTasks(void)

INT8Uerr;

OSTaskCreate(Task,(void*)0,&

Task1[TASK_STK_SIZE-1],1);

OSTaskCreate(Task,(void*)0,&

Task2[TASK_STK_SIZE-1],2);

OSTaskCreate(Task,(void*)0,&

Task3[TASK_STK_SIZE-1],3);

OSTsakCreate(Task,(void*)0,&

Task4[TASK_STK_SIZE-1],4);

}

*TASKS

voidTask(void*pdata)

INT8Ux;

INT8Uy;

for(;

){

OSSemPend(RandomSem,0,&

err);

/*Acquiresemaphoretoperformrandomnumbers*/

x=random(80);

/*FindXpositionwheretasknumberwillappear*/

y=random(16);

/*FindYpositionwheretasknumberwillappear*/

//OSSemPost(RandomSem);

/*Releasesemaphore*/

/*Displaythetasknumberonthescreen*/

PC_DispChar(x,y+5,*(char*)pdata,DISP_FGND_BLACK+DISP_BGND_LIGHT_GRAY);

PC_DispStr(0,5,"

dianqixinxigongchengxueyuancekongjishuyuyiqi"

PC_DispStr(0,6,"

09_214"

PC_DispStr(0,7,"

maqingying"

PC_DispStr(0,8,"

2012-10-22"

OSTimeDly

(1);

/*Delay1clocktick*/

4、调试过程

1、修改TSET.MAK的地址

2、修改borlandc地址

3、修改TEST的地址

4、找到头文件地址

5、运行程序

实习心得

短暂的实习生活很快的结束了,短短的五天时间学到了不少东西,现在已经大四了,还有半年时间就要毕业了,所以格外珍惜这次机会。

我已经决定考研了,所以时间比较紧张,但是我仍抽出时间学习嵌入式的一些基本原理。

因为时间都是挤出来的,我不能因为考研而不参加任何实习,毕竟实习的机会已经不多了,学一点是一点。

虽然时间紧迫,但是在同学们的指导下,我还是学到了很多东西。

书上看不懂的知识通过程序的验证,让我一目了然,印象深刻。

刚开始接触的时候,比较不知所措,编译的时候出现了很多错误,让我不知从何做起。

而且整个编译运行的过程比较复杂,总是出现失误,经过反复多次的练习,慢慢的熟悉了整个流程,做起来也比较顺手了,在后期大家的共同努力下,只有一个错误。

大家非常的高兴,因为离成功不远了。

最后在老师的指点下,我们及时的完成了任务,学习和掌握了很多难理解的知识。

时间越紧张,我学的越努力,虽然很疲惫,但苦中有乐。

实习过程中仍有很多知识点不明白。

比如说在总任务下建立的四个小任务,在系统执行的过程中它是否依次返回主函数,然后再顺次执行。

与C语言主函数的功能是否一致?

在考核的最后一天我向老师请教了这个问题,老师给与了非常耐心细致的回答,解决了一直困扰我的小难题,在此表示非常的感谢!

有机会一定要深入学习嵌入式,因为在很多专业书中都出现了相关的内容,可以看出它的价值是多么的重要。

最后,祝老师工作顺利,健康如意!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1