嵌入式linux笔试总结

#!/bin/bash

If语句:

If [expression]

Then

#code block

Fi

If [expression]

Then

#code block

Else

#code block

Fi

If [expression]

Then

#code block

Else If [expression]

Then

#code block

Else

#code block

Fi

Fi

For循环

#!/bin/bash

For day in sun mon tue wed thu fri sat

Do

Echo $day

Done

While循环

While [condition]

Do

#code block

Done

Until循环

Until[condition]

Do

#code block

Done

While和until的区别在于while是真时才执行,until是为假时才执行。

Case语句

Case “$var” in

Condition1)

;;

Condition2)

;;

*)

Default statments;;

Esac

例:#!/bin/bash

Echo “hit a key,then hit return”

Read keypress

Case “$keypress” in

[A-Z]) echo “uppercase letter”;;

[a-z]) echo “lowercase letter”;;

[0-9]) echo “digit”;;

*) echo “punction,whitespace,or other”;;

esac

求1+2+3+4……+100的和,用shell脚本写出

利用while循环:

#!/bin/bash

total=0

num=0

while ((num <= 100));

  do

    total=`expr $total + $num`

    num="$num + 1"

done

  echo "$total"

~

或者


#!/bin/bash

i=0

n=0

while [ $i -le 100 ] ;do

 let n=$n+$i

 let i=$i+1

done

echo $n


利用for循环求和:


#!/bin/bash

total=0

for ((j=1;j<=100;j++));

 do

  total=`expr $total + $j`

 done

 echo "The result is $total"

中断处理流程:

1、中断控制器汇集各类外设发出的中断信号,然后通知CPU。

2、CPU保存当前程序的运行环境,然后调用中断服务程序(isr)来处理中断。

3、在isr中,通过读取外设的相关寄存器来识别中断的类型,并进行相应的处理。

4、清楚中断,通过读写相关中断控制寄存器和外设相关寄存器来实现。

5、恢复被中断程序的执行环境,继续执行被中断的程序。

一个嵌入式Linux 系统从软件角度看可以分为四个部分[1] 引导加载程序
(bootloader), Linux 内核,文件系统,应用程序。其中bootloader 是系统启动或复位以后
执行的第一段代码,它主要用来初始化处理器及外设,然后调用Linux 内核。Linux 内核
在完成系统的初始化之后需要挂载某个文件系统做为根文件系统(Root Filesystem)。根文件
系统是Linux 系统的核心组成部分,它可以做为Linux 系统中文件和数据的存储区域,通
常它还包括系统配置文件和运行应用软件所需要的库。应用程序可以说是嵌入式系统的“灵
魂”,它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支
持,任何硬件上设计精良的嵌入式系统都没有实用意义。

 

第二篇:嵌入式Linux学前必读

嵌入式Linux学前建议(初学者必读)

目前,Linux作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。随着嵌入式行业的迅猛发展,嵌入式Linux凭借其系统发展的成熟度、市场应用的高份额也受到更多工程师朋友的青睐,越来越多的企业和研发机构都转向嵌入式Linux的开发和研究,这使得嵌入式Linux在新兴的嵌入式操作系统领域内也获得了飞速发展和广泛应用。而对于那些希望尽快进入嵌入式行业从事产品研发的朋友们,选择嵌入式Linux方向作为切入点无疑是最好的途径之一。

近期,有许多面临毕业、找工作的大学生来到华清远见嵌入式培训中心咨询了解有关嵌入式Linux方向的学习安排。在与他们交流沟通的过程中,被问到最多的几个问题就是“如何做好嵌入式Linux学习前的准备?”,“学习嵌入式Linux需要补习哪些基础课程?”,“嵌入式Linux开发跟普通软件开发在学习方法上有什么不同?”,“项目实战环节多吗?”,“有专业人员带领吗?”,相信这些也是很多准备入行的初学者都会关心的问题,为了帮助大家做好嵌入式Linux的学前准备,我们对这些常见的问题逐一进行解答,提供给大家参考,希望能够有所帮助。

1、如何做好嵌入式Linux学习前的准备?

要成为一名合格的嵌入式Linux工程师,就需要系统的学习软、硬件相关领域内的知识,需要在最开始就掌握开发的规范和原则,养成良好的工作习惯。为了确保学习的效果,华清远见安排的整个课程体系是非常集中、高效的,这就要求准备参加嵌入式Linux就业课程学习的同学要调整好自己的时间,务必要确保在4个多月的学习时间内能够高度集中精力。

在整个集中学习过程中,既要保证课上认真听讲、实战演练的时间,也要保证课下继续实战演练、查阅资料的时间。只有经过这种高强度的、实战为主的训练,才能够在比较短的时间内掌握规范的嵌入式开发工作流程,让自己符合嵌入式企业对应岗位的需求。

除了在学习时间上要做好充分的准备之外,在学习的心态和方法的调整上也要做好准备。许多朋友只了解嵌入式Linux方向美好的发展前景,只关注高收入、就业机会多等热点,却忽略了学习过程本身。为了能够让集中培训的效果发挥到最佳,建议大家在学习开始前更多地去了解嵌入式产品研发的特点、所需要掌握的技术规范和工作要点,关注需具备基础的补充和学习,从而为后续的强化学习过程做好心态上的准备,毕竟态度往往决定了最后做事的结果。

2、学习嵌入式Linux需要补习哪些基础课程?

嵌入式Linux工程师的学习需要具备一定的C语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定认真学了,呵呵!),之后基本就不再用过的情况,建议大家在来华清远见学习之前先复习一下C语言基础这块。要提醒大家的是,复习时不能只关注基本语法,对于常用的数据存储及处理方式,例如:数组、结构体等也要关注,有条件的话一定在机器上亲自敲敲代码、分析理解一下具体案例代码编写的思路,让自己慢慢进入一名嵌入式开发人员的状态。

此外,在时间允许的情况下,建议大家看一下有关计算机操作系统工作原理以及计算机组成原理等方面的专业书籍。对于进程、线程、任务调度、总线、I/O等基本概念及工作原理有一个初步的了解和掌握,这部分知识的准备对于后续更好地学习嵌入式Linux系统开发将会起到很好的帮助作用。

3、嵌入式Linux开发跟普通软件开发在学习方法上有什么不同?

要成为一名成功的嵌入式软件开发人员,程序的设计能力是首要技能,这一点与普通的软件开发人员的要求是一样的。但是作为“软硬兼施”的嵌入式开发,则要求大家不仅要了解较底层软件的工作过程和

工作原理(例如操作系统级、驱动程序级软件),在软件开发的专业水平上也需要充分考虑软件设计的时间和空间效率,这样才能设计出高性能嵌入式程序。

因此面对相对复杂的嵌入式系统的研发过程,在学习的过程中需要更多关注完整的知识体系结构的建立。特别是对于原理性知识的掌握程度则相对普通的软件开发人员提出了更高的要求。因此在学习的过程中,“要知其然,更要知其所以然”。

同时由于一直以来嵌入式行业中专业人才的紧缺,许多经验性的东西都有待交流和分享,因此充分关注与每一位讲师的实际经验交流就显得至关重要。华清远见的每一位专业讲师都拥有多年的嵌入式Linux开发经验,他们在各自擅长的领域内都有很多值得分享和交流的体会,因此通过他们课堂的讲解、示范,通过充分的交流沟通,无疑可以大大缩短在行业中摸索的时间,记住不要以为原理性的东西通过看书就能解决,借助这些行业高手的透彻分析,才能让你的学习过程更有价值、更加实用。

4、华清远见的课程体系中项目实战环节多吗?有专业人员带领吗?

由于大多数人对嵌入式开发过程的陌生,因此实战环节的训练就显得格外重要。在嵌入式Linux课程学习的每个阶段,都需要在专业人员的引导下,通过全真的案例设计与实现来巩固所学的知识点。同时我们要求大家尽可能在课堂上多出问题、多暴露问题,只有这样,才能通过专业人员的及时帮助和指导,最高效地掌握解决实际问题的方式和方法,积累足够的技术经验和项目经验。

同时也只有通过最终综合项目实战环节的密集训练,才能够逐步建立起嵌入式产品开发的工程化概念。在这个过程中,除了可以达到所学知识综合、实际应用的目的,还可以让大家更真实地体验到如何编写工程化程序?如何在设计中与团队协作开发?如何为后续有效地升级与维护做好准备?如何编写规范的文档等?而这些体验都将为后续真正从事企业内工程化的软件设计做好充分的准备。

记住贯穿始终的是:要知道为什么学?要知道学的是什么?要知道怎么学?要知道学了如何用?最后还要知道用的时候出了问题该如何解决?相信以这些问题为线索的学习过程一定可以帮助大家快速成为一名优秀的嵌入式开发工程师。

相关推荐