嵌入式Linux操作系统课程报告.docx
- 文档编号:16613770
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:17
- 大小:316.47KB
嵌入式Linux操作系统课程报告.docx
《嵌入式Linux操作系统课程报告.docx》由会员分享,可在线阅读,更多相关《嵌入式Linux操作系统课程报告.docx(17页珍藏版)》请在冰点文库上搜索。
嵌入式Linux操作系统课程报告
信息工程学院
设计报告
课程名称:
嵌入式Linux操作系统
嵌入式Linux操作系统课程设计报告
1摘要
在现今信息时代,生活速度的加快,使得人们越来越向信息化、智能化、数字化方向开展,学生信息管理系统是一个由人、计算机等组成的能进展信息的收集、传递、储存、加工、维护和使用的系统,必然能代替过去大量、繁杂的手工操作。
2开发及运行环境
2.1硬件环境
PC机一台
2.2软件环境
红帽企业版Linux6.5〔64位,带gcc工具链〕
3综合描述
根本的Linux启动流程:
开机后,系统执行存放在ROM中的BIOS程序,然后根据的设置BIOS决定是从硬盘还是软盘启动。
假设是从硬盘启动,那么读入0柱面0磁头1扇区的MBR,引导系统的执行。
一般在LinuxOS中启动盘的0柱面0磁头1扇区中装的是启动装载器GRUB2,它定位内核并装载内核,最后执行内核。
如果GRUB2装在MBR〔MasterBootRecord〕,那么先由BIOS把GRUB2代码调入内存,然后跳转执行GRUB2,再装载执行内核,即:
BIOS->GRUB2〔在MBR中〕->KERNEL;一旦内核装载完毕后,开场初始化系统所有硬件设备,当硬件设备初始化完成后,启动过程会就此停顿而等待根文件系统的装载。
接着,系统在根文件系统上找到init程序并执行它,init程序寻找它的配置文/etc/inittab、/etc/rc.S,并开场执行其中的脚本,这些脚本是一些SHELL命令的组合,用来执行下面一些命令,如加载所需的模块、装载SWAP、初始化网络、装载fstab中列出的所有驱动器等,至此,系统启动流程完毕
图为LINUX的启动流程
4函数设计
4.1主函数main
4.1.1功能描述
函数名称:
main
函数功能:
软件模块的入口函数
函数类型:
int
参数:
参数名称类型输入/输出描述
argcint输入
argvchar**输入
函数返回:
0
说明:
通过全局变量g_value的值判断程序是否退出还是继续运行,当g_value的值等于8时,程序退出,否那么,继续运行。
4.1.2流程图
开场
g_value等于8?
根据编号进展相应的处理
返回
获取菜单编号值
Y
N
4.2Show_Menu
4.2.1功能描述
1.输入功能:
可以一次完成无数条信息的输入。
2.输出功能:
能按XX输出学生的成绩单。
3.修改功能:
完成对单个学生成绩的修改。
4.查询功能:
完成对单个学生成绩的查询并显示。
5.排序功能:
能按学生成绩进展排序并显示。
6.有一个清晰美观的界面来调用各个功能。
4.2.2流程图
5数据构造说明
typedefstructstudent
{
longnum;
charname[20];
intchinese;
intmath;
intenglish;
floateverage;
floatscore;
}STU,*PSTU;
定义学生信息构造体类型,成员包括学号,XX,语文,数学,英语,平均分和总分。
STUs[52];
定义构造体数组,用来存放学生信息。
6程序源代码
#include
#include
#include
typedefstructstudent
{
longnum;
charname[20];
intchinese;
intmath;
intenglish;
floateverage;
floatscore;
}STU,*PSTU;
STUs[52];
PSTUp=&s[0];
intg_value=0;
intm=0;
intShow_Menu()
{
printf("**********************************\n");
printf("1.输入学生信息\t\t");
printf("2计算学生成绩的总分和平均分\n");
printf("3.按照总分进展排序\t");
printf("4.查询学生信息\n");
printf("5.修改学生信息\t\t");
printf("6.增加学生信息\n");
printf("7.删除学生信息\t\t");
printf("8.退出系统\n");
printf("**********************************\n");
printf("请选择你要进展的操作:
");
scanf("%d",&g_value);
returng_value;
}
voidInput_Info()
{
printf("请输入班级人数:
");
scanf("%d",&m);
for(inti=0;i { printf("请依次输入第%d个同学的XX、学号、四门课程成绩\n",i+1); printf("请输入第%d个同学的XX: ",i+1); scanf("%s",p->name); printf("请输入第%d个同学的学号: ",i+1); scanf("%ld",&p->num); printf("请输入第%d个同学的四门课程成绩\n",i+1); printf("语文: "); scanf("%d",&p->chinese); printf("数学: "); scanf("%d",&p->math); printf("英语: "); scanf("%d",&p->english); printf("体育: "); scanf("%d",&p->PE); p++; } printf("\n\n您输入的学生成绩如下: \n学号XX\t语文数学英语体育\n"); p=&s[0]; for(intj=0;j { printf("%3ld%11s%6d%7d%6d%8d\n",p->num,p->name,p->chinese,p->math,p->english,p->PE);p++; } } voidAverage_Info() { inti=0; p=&s[0]; for(inti=0;i { p->score=p->chinese+p->math+p->english+p->PE; p->everage=p->score/4; p++; } p=&s[0]; printf("\n\n总分和平均分计算如下: \n学号XX\t总分\t平均分\n"); for(i=0;i { printf("%2ld%12s%8f%8f%8f\n",p->num,p->name,p->score,p->everage,p->PE); p++; } } voidSort_Info() { structstudenttemp; inti,j,k; for(i=0;i { k=i; for(j=i+1;j { if(s[k].score { k=j; } } if(k! =i) { temp=s[i]; s[i]=s[k]; s[k]=temp; } } p=&s[0]; for(i=0;i { printf("%8ld%8s%8d%8d%8d%8d%8f%8f\n",p->num,p->name,p->chinese,p->math,p->english,p->PE,p->everage,p->score); p++; } } voidCheck_Info() { longx,i;charn[20]; printf("\n请输入您要查询的条件。 1.学号。 2.XX。 \n"); scanf("%d",&i); if(i==1) { printf("学号: "); scanf("%ld",&x); for(intj=0;j { if(s[j].num==x) { printf("%ld%s%10d%10d%12d%12f%12f\n",s[j].num,s[j].name,s[j].chinese,s[j].math,s[j].english,s[j].everage,s[j].score); } } } elseif(i==2) { printf("XX: "); scanf("%s",n); for(intj=0;j { if(strcmp(s[j].name,n)==0) printf("%ld%s%8d%8d%8d%8f%8f\n",s[j].num,s[j].name,s[j].chinese,s[j].math,s[j].english,s[j].everage,s[j].score); } } else { printf("您的输入有误,请返回重新查询! "); } } voidChange_Info() { longx; intflag=0; intj=0; printf("请输入要修改的学生学号: "); scanf("%ld",&x); for(j=0;j if(s[j].num==x) { flag=1; printf("请输入修改后的四门课程成绩\n"); printf("语文: "); scanf("%d",&s[j].chinese); printf("数学: "); scanf("%d",&s[j].math); printf("英语: "); scanf("%d",&s[j].english); printf("体育: "); scanf("%d",&s[j].PE); printf("\n\n您修改后的学生成绩如下: \n学号XX\t语文数学英语体育\n"); printf("%8ld%8s%8d%8d%8d%8d\n",s[j].num,s[j].name,s[j].chinese,s[j].math,s[j].english,s[j].PE); } if(flag==0) { printf("没有找到您输入的学号,请重新选择\n"); } } voidInsert_Info() { intj=0; m++; p=&s[0]; p=p+m-1; printf("请输入新增学生信息"); printf("请依次输入第%d个同学的XX、学号、四门课程成绩\n",m); printf("请输入第%d个同学的XX: ",m); scanf("%s",p->name); printf("请输入第%d个同学的学号: ",m); scanf("%ld",&p->num); printf("请输入第%d个同学的四门课程成绩\n",m); printf("语文: "); scanf("%d",&p->chinese); printf("数学: "); scanf("%d",&p->math); printf("英语: "); scanf("%d",&p->english); printf("体育: "); scanf("%d",&p->PE); printf("\n\n增加成员后的学生成绩如下: \n学号XX\t语文数学英语体育\n"); p=&s[0]; for(j=0;j { printf("%8ld%8s%8d%8d%8d%8d\n",p->num,p->name,p->chinese,p->math,p->english,p->PE);p++; } } voidDelete_Info() { intj=0; longno=0; printf("请输入要删除的学生学号: "); scanf("%ld",&no); for(j=0;j { if(s[j].num==no) { break; } } for(;j { s[j]=s[j+1]; } m--; } voidDosomething(intn) { switch(n) { case1: Input_Info(); break; case2: Average_Info(); break; case3: Sort_Info(); break; case4: Check_Info(); break; case5: Change_Info(); break; case6: Insert_Info(); break; case7: Delete_Info(); break; case8: printf("程序完毕,再见! "); break; default: printf("您的选择不正确,请重新选择\n"); break; } } intmain(intargc,char*argv[]) { while(g_value! =8) { g_value=Show_Menu(); Dosomething(g_value); } return0; } 7运行结果及结论 *************************************************** 1.输入学生信息 2.计算学生成绩的总分和平均分 3.按照总分进展排序 4.查询学生信息 5.修改学生信息 6.增加学生信息 7.删除学生信息 8.退出系统 *************************************************** 请选择你要进展的操作: 8参考文献 [1]嵌入式系统原理与设计王勇编著.XX: XX大学.2007.2 [2]嵌入式Linux操作系统原理与应用文全钢主编.: 航空航天大学.2014.1 [3]嵌入式系统接口原理与应用文全钢主编.: 航空航天大学.2009 [4]嵌入式数据库系统Berkeley施聪编著.BerkeleyDB数据库 [5]嵌入式系统开发根底-基于ARM微处理器和Linux操作系统滕英岩编著.: 电子工业.2008 [6]嵌入式系统程序设计赖晓晨,原旭,X宁编著.: 清华大学.2009 9总结收获与体会 此次嵌入式系统课程设计让我进一步稳固了在课堂上所学到的知识,并运用到实际的设计当中。 通过此次课设让我对嵌入式有了更深层次的了解,学会了构建一个学生成绩管理系统的linux操作系统,了解linux操作系统的具体的构建过程,和linux操作系统的根本组成局部,以及掌握linux操作系统的根本操作,激发了对嵌入式的兴趣。 其间,查阅资料、教师指导、与同学交流,反复修改,反复调试、虽然最终并没有做到教师的最终要求,从虚拟的文件系统中出来,执行自己的程序。 但我还是收获很多,这其中的每一个过程都是对自己能力的一次检验和充实。 比方学会了查阅相关资料、分析问题,学会在一种方法走不通的时候,尝试其他别的方法来实现同一目的。 这也提高了自己解决问题的能力。 通过这次课程设计了解嵌入式操作系统的启动流程,熟悉了内核裁剪移植以及根文件系统的设计步骤。 锻炼了工程设计实践能力,培养了自己独立设计能力,更加巩固了自己学习的信心,完善了自己前期理论学习的同时加强了自己的动手实践能力。 但通过此次课程设计也暴露了我们自己专业根底知识的很多缺乏之处,比方缺乏综合应用知识的能力,对材料的不了解等。 明白自己知识还很浅薄,在以后的学习中不断的改良自身的这些缺点,提升自己。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 Linux 操作系统 课程 报告
文档标签
- 操作系统课程设计报告Linux
- 嵌入式操作系统模拟
- 嵌入式LINUX操作系统字符
- 嵌入式操作系统嵌入式操作系统课程设计
- 流程管理嵌入式操作系统
- 嵌入式系统概述linux
- 精品课程操作系统课程Linux
- linux系统教程课后
- AT91RM9200嵌入式Linux系统
- Linux操作系统报告
- Linux操作系统Linux操作系统课程标准
- LINUX系统嵌入式LED
- 嵌入式操作系统启动流程
- 课程报告嵌入式系统
- 嵌入式Linux系统搭建
- 嵌入式linux基本操作
- 嵌入式操作系统报告
- 180021Linux操作系统课程设计
- 操作系统Linux
- linux课程设计报告
- 操作告知
- 操作系统
- TDLTE系统操作
- Linux操作系统
- WCDMAGSMGPRS系统操作
- 操作系统课程设计操作系统课程设计