第一篇:上海交大--嵌入式系统及应用所有章节单元自测
第一章
1.下列哪个不是嵌入式系统的特点:(D)。A.专用性 B.资源受限 C.功耗约束
D.常由外接交流电电源供电
2.下列哪些不是嵌入式系统:(D)。A.移动电话、手机 B.MP3
C.MID
D.深蓝超级计算机
3.关于嵌入式组成,下面说法错误的是:(A)。A.嵌入式系统的中间层是位于操作系统与应用程序之间。
B.嵌入式系统包括硬件和软件
C.嵌入式系统包含了一个计算机系统基本部件 D.并不是每个嵌入式系统都拥有独立的操作系统
第二章
1.指令和数据共享同一总线的体系结构是(A)。A.冯•诺依曼结构 B.哈佛结构
C.RISC
D.CISC 2.下面不属于嵌入式处理器的是:(A)。A.Intel Core(酷睿)处理器
B.Intel Atom处理器
C.MCS-51单片机
D.ARM处理器
3.在嵌入式处理器与外部设备接口中,使用2根线实现多对多双向收发的是:(B)。A.UART B.I2C C.SPI
D.USB 4.假设使用奇偶校验位,UART发送一个字节的数据,从idle状态开始(及数据线为高),到允许进行下一次发送动作态为止,至少需要(D)个时钟节拍。A.8 B.9 C.10
D.11 第三章
1.关于嵌入式处理器内核性能,下面说法正确的是:(C)A.DMIPS反映处理器内核的功耗性能。
B.DMIPS越高反映处理器内核架构的越先进。
C.“DMIPS/主频”越高反映处理器内核架构的越先进。D.内核的动态功耗性能一般用mW来衡量。2.关于体系结构与实现结构,下面说法正确的是:(C)A.x86是一种实现结构。B.x86架构处理器的实现结构都是一样的。
C.体系结构相同的处理器器其指令集是相同或兼容的。
D.不同处理器要想拥有相同或兼容的指令集,其实现结构也必须一样。
3.关于SIMD说法错误的是:(B)。
A.SIMD通过复制ALU和寄存器组,共享取值、译码单元来获得计算并行。B.SIMD是通过增加寄存器个数来提高数据处理的宽度。
C.SIMD中多个运算单元运行的是相同的指令。D.Intel Atom的SSE指令属于SIMD指令 4.关于跳转代码问题,下面说法正确的是:(D)A.任何处理器都会有跳转代码问题。
B.处理器流水线深度越浅,跳转指令的影响越大。
C.跳转代码问题就是处理器执行跳转指令时跳转目标地址错误导致运行错误问题。D.跳转代码问题就是跳转指令导致处理器处理速度下降的问题。5.ARM7中如果需要实现形如 R0=R1+(R2<<3)的操作,最少可以用(A)条指令。A.1 B.2 C.3
D.4 第四章
1.交叉开发形成的可执行文件(B)。
A.直接在宿主机上运行
B.下载到目标机上运行 C.上载到宿主机上运行 D.在宿主机和目标机任选一处运行
2.____需要操作系统或加载程序将其加载到内存中才能执行,____加载器只能把它加载到固定的地址运行。(A.可重定位执行文件,可重定位执行文件 B.可重定位执行文件,不可重定位执行文件 C.不可重定位执行文件,可重定位执行文件
D.不可重定位执行文件,不可重定位执行文件
3.使用GCC将test.c源代码文件编译、链接成名为test可供gdb调试使用的可执行文件的命令为(B A.gcc test.c –c –o test B.gcc test.c –g –o test
C.gcc test.c –pg –o test
D.gcc test.c –o test-static 4.ELF文件的.bss section一般是用来存储:(C)。A.堆栈 B.寄存器
C.未初始化的全局变量
D.局部变量
5.假设一个软件工程包含一个如下的Makefile,且已经用make命令进行了一次成功的编译。myprog: data.o main.o io.o
cc data.o main.o io.o-o myprog data.o: data.c data.h
cc-c data.c main.o: data.h io.h main.c
cc-c main.c io.o: io.h io.c
cc-c io.c clean:
rm *.o myprog 假设我们又修改了main.c文件,当执行make命令时会(C)。A.无动作 B.删除所有.o目标文件和myprog可执行文件
C.只编译main.o,然后链接myprog可执行文件
D.编译所有的.o文件,然后链接myprog可执行文件
6.上题中(同样假设我们修改了main.c文件),当执行make clean命令时会(B)。A.无动作 B.删除所有.o目标文件和myprog可执行文件
C.只编译main.o,然后链接myprog可执行文件
D.编译所有的.o文件,然后链接myprog可执行文件
第五章
1.关于嵌入式系统组成,下面说法正确的是(B)A.操作系统是嵌入式系统必不可少的部分。
B.硬件抽象层包括设备驱动、Bootloader与BSP。
C.BSP(板级支持包)位于操作系统与应用程序之间。
D.操作系统一般直接访问全部的硬件。
2.关于嵌入式操作系统结构,下面说法正确的是(A)A.应用软件可以直接调用操作系统的系统服务。
B.设备驱动程序工作在用户态(user mode)。
B)。)C.操作系统内核包括系统库。
D.系统库和应用库属于统一层次的两种不同功能的模块。
3.关于Bootloader,下面说法正确的是(C)A.Bootloader是操作系统的一部分。
B.操作系统运行期间,Bootloader一直被使用。
C.Bootloader的主要任务包括初始化系统硬件,引导和启动操作系统内核。
D.Bootloader向操作系统提供访问硬件的接口,操作系统需要通过Bootloader来访问硬件。4.关于BSP,下面说法正确的是(D)A.BSP是操作系统的一部分。
B.从功能上说,BSP不包括设备驱动的功能。
D.BSP位于硬件抽象层。C.BSP(板级支持包)就是向应用提供访问硬件的接口。
5.下列哪个关于实时系统的说法是不正确的:(A)。A.高性能系统一定是实时系统。
B.实时操作系统需保证最坏情况下系统响应时间的可预测性。
C.实时操作系统不以提高系统(特别是CPU)的总体利用率为目标。
D.硬实时系统中,系统的响应时间如果超过允许上限,可能会造成致命影响。
6.关于实时操作系统的任务调度策略,下面说法正确的是(A)A.RMS实现上比EDF简单。
B.RMS属于动态优先级策略。
C.EDF属于静态优先级策略。
D.EDF方法可调度的任务集,RMS一定能实现可调度。7.关于优先级颠倒问题,下面说法正确的是(B)A.优先级顶置和优先级继承都可防止有边际的颠倒。
B.无边际的颠倒对实时性造成妨害比有边际的颠倒要大
C.优先级颠倒造成的问题是使操作系统任务调度的效率急速下降。
D.高优先级任务H和低优先级任务L需要互斥访问一个共享资源R,如果L持有R的过程中,恰好又被一个中间优先级的任务M所抢占,此时称为有边际的优先级颠倒。
8.关于操作系统的定制与裁剪,下面说法正确的是(A)A.操作系统定制与裁剪是一个概念。
B.操作系统定制在操作系统启动时完成。
C.操作系统裁剪就要把操作系统从嵌入式系统删除掉。
D.操作系统裁剪不惜以增加操作系统的存储空间为代价来加快操作系统运行速度。9.关于操作系统的合作式多任务和抢占式多任务,下列哪种说法是对的:(B)。A.Linux不是基于抢占式多任务的。
B.抢占式多任务很少出现合作式多任务那种被恶意或者出错进程阻塞的情况。C.合作式多任务中一个任务执行的最小时间是一个时间片。
10.关于嵌入式操作系统,下面说法正确的是(B)A.μClinux是一种实时操作系统。
C.嵌入式Linux采用了微内核的结构。VxWorks。
B.VxWorks是一种实时操作系统。
D.在嵌入式Linux、VxWorks、Windows CE、μC/OS-II中所占空间最小的是
D.合作式还是抢占式的区别在于是不是支持多进程。
第六章
1.下面说法正确的是(A)。
A.WIMP是由Windows、Icons、Menus以及Pointers为代表的元素组成的图形用户界面。B.WIMP是起源于嵌入式设备图形用户界面设计形成的模式。C.WIMP依赖于触摸屏、指示笔、屏幕键盘来完成交互。2.下面说法正确的是(D)。
A.嵌入式系统一般拥有全键盘之类的输入设备。
B.屏幕键盘是覆盖在屏幕上的半透明的物理键盘。
D.GUI是一种命令行操作界面
C.嵌入式系统和桌面计算机一样常使用4:3屏幕纵横比的屏幕。
D.嵌入式系统常采用触摸屏(Touch-screen)和指示笔(Stylus)代替鼠标完成指向输入。3.当一个应用从桌面计算机移植到同纵横比的小尺寸触摸屏的嵌入式系统时,引起的问题包括(C)。①需正确地解释鼠标移动输入的问题。
②需正确地设置屏幕映射。
③需处理悬停(Hover-Over)问题。A.①~③ B.③④
C.①③④
D.①~④
④需提供右击的代替功能。
4.下面说法正确的是(B)。
A.在GUI库中,消息/事件模型属于设备模型层次的抽象。
B.在GUI库中,应用模型的抽象是最高级别的抽象。
C.在GUI库中,将输入设备被封装成键盘扫描码属于交互(单元)模型层次的抽象。
D.如果使用第三方的图形界面开发库,开发者也不得不直接访问硬件或者访问Linux下的Frame buffer设备。5.常见的嵌入式系统的图形用户界面库包括(B)①Micro Windows
②MiniGUI ③Qt/Embedded ④Windows MFC ⑤Java AWT/Swing A.①~② B.①~③
C.①②③④
D.①~⑤
第七章
1.嵌入式系统的优化包括:(C)。①运行速度优化
②代码尺寸优化
③低功耗优化 A.① B.①②。C.①~③。
D.①~④。
④体积和重量的优化
2.关于性能优化的方法论,下面说法正确的是(B)。A.内存访问方式从SDR换到QDR,体现了优化中并行化的思路。B.双缓存(Double buffer)机制体现了优化中流水线化的思路。
C.并行PCI的速度肯定比串行PCI高,前者替换后者是当今PCI发展的一个趋势。
D.Flash存储Linux内核不应该压缩,因为将其装入RAM运行时需要额外的解压缩时间,与性能优化的方法背道而驰。3.性能优化一般都有代价,也就说性能优化带来的副作用,这些副作用包括:(B)。①增加了存储空间需求
②使得相关设计复杂化了
③带来功耗的增加 A.① B.①② C.①~③
D.①~④
④削弱了系统的鲁棒性
4.关于性能优化的层次,下面说法正确的是(D)。A.降低算法的计算复杂度属于与平台相关的优化。
B.向量运算选用SIMD指令完成属于与平台无关的优化。
C.减少实际的运算次数和数据搬移次数属于系统层次的性能优化。
D.用户界面层次的优化并没有加快应用的实际运行速度,对应用的实际运行性能没有改善。5.关于软件性能优化,下面说法正确的是(A)。A.高速缓存优化的原则是尽量减少命中失败(cache miss)率。B.向量运算选用SIMD指令完成是遵循提高并行度的优化原则。
C.在C/C++中,函数的内联(inline)化是遵循选用速度更快的指令的优化原则。D.整数乘以4的运算可以变为左移2位来完成是遵循减少指令或执行次数的优化原则。6.对于如下C代码片段:
for(i=0;i<30;i++)
a[i] = get_data(i)* 33;假设:1)get_data函数是别人实现的,它返回一个根据i而定的整数值;2)编译器不会帮你进行任何优化;3)目标CPU上乘法需要较多周期。
则以上代码(D)。A.不需要进行优化 B.需要优化,代码为:
for(i=0;i<30;i++)
a[i]=get_data(i)<<5 + get_data(i);C.需要优化,代码为:
for(i=0;i<30;i++)
a[i]=(get_data(i)<<5)+ get_data(i);D.需要优化,代码为: int j;for(i=0;i<30;i++)
{ j = get_data(i);
a[i]=(j<<5)+ j;}
7.对于如下C代码片段: for(i=0;i<30;i++)
a[i] = get_data(i);for(j=0;j<30;j++)
b[j] = a[j] – 78 + 100;假设:1)get_data函数是别人实现的,它返回一个根据i而定的整数值;2)编译器不会帮你进行任何优化; 则以上代码(B)。A.不需要进行优化 B.需要优化,代码为:
for(i=0;i<30;i++){ a[i] = get_data(i);
b[i] = a[i] + 22;} C.需要优化,代码为:
for(i=0;i<30;i++){ a[i] = get_data(i);
b[i] = a[i] – 78 + 100;} D.需要优化,代码为:
for(i=0;i<30;i++)a[i] = get_data(i);for(j=0;j<30;j++)b[j] = a[j] + 22;
8.对于如下C代码片段: for(i=0;i a[i] =get_data(i);假设:1)get_data和loop_count函数是别人实现的,它返回一个整数值;2)编译器不会帮你进行任何优化; 则以上代码(C)。A.不需要进行优化 B.需要优化,代码为: int j = get_data(i);for(i=0;i< loop_count();i++) a[i] = j;C.需要优化,代码为: int j = loop_count();for(i=0;i 9.关于软件优化的工具,下面说法正确的是(C)。A.简档(Profiling)工具可以自己实现对用户程序的修改、优化。B.将归并排序改为快速排序是编译器能自动完成的优化。 C.当gcc编译、链接程序时,使用-O3参数得到可执行文件的长度可能比-O2要大。D.在ARM架构机器上使用IPP库完成计算可以收到缩短运行时间的效果。 第八章 1.下面说法正确的是:(B)。 A.基于CMOS工艺的处理器内核的动态功耗与供电电压成正比 B.基于CMOS工艺的处理器内核可支持的工作频率一定范围内随着供电电压升高而升高 C.目前的笔记本中,CPU功耗在整体系统功耗中占了绝对的大头 D.基于CMOS工艺的处理器内核的动态功耗与工作频率的平方成正比 2.CPU节流(CPU throttling)采用的是(B)功耗控制技术。A.APM、ACPI标准 Gating)技术 3.Intel EIST采用的是(B)功耗控制技术。A.APM、ACPI标准 Gating)技术 4.操作系统的各种睡眠状态中,必须保持对内存供电的是(A)。A.待机(Standby)B.休眠(Hibernate) C.睡眠(Sleep) D.关机 B.动态电压/频率放缩技术 C.节能的电路设计和制造工艺 D.时钟门控(Clock B.动态电压/频率放缩技术 C.节能的电路设计和制造工艺 D.时钟门控(Clock 5.下面不符合低功耗设计原则的行为是(B)。A.在循环控制变量前加register关键词。 B.一个要求持续一段时间的Windows程序的实现思路是,不停地将系统时间比对截止时间,大于等于时结束程序。C.一个要求持续一段时间的Windows程序的实现思路是,用开始程序开始启动一个系统定时器,将时间到消息(Message)的响应动作设置为结束应用。 D.一个要求持续一段时间的Windows程序的实现思路是,调用操作系统Sleep函数睡眠指定时间后结束应用。6.关于Linux的功耗控制技术,下面说法正确的是(C)。 A.PowerTop可以降低Linux内核运行的功率消耗。B.PowerTop可以自动修改程序代码,将其改为符合低功耗原则的代码。 C.Tickless Idle降低了Linux内核运行的功率消耗,特别是系统轻负载时的功率消耗。D.Tickless Idle通过将Linux内核定时循环的周期延长的方式来降低内核的功率消耗。试验基础:嵌入式Linux和Linux 1.关于嵌入式Linux,下面说法正确的是(D)A.嵌入式Linux通用采用了桌面Linux的图形用户界面(GUI)。B.不同Linux发行版本(Linux distribution)的Linux内核不同。C.嵌入式Linux的内核与通用Linux的内核完全属于两个不同的体系。 D.嵌入式Linux在通用Linux上经过裁剪、定制和修改后得到的,它拥有更小的ROM空间要求、更快的启动速度。2.关于Linux内核,下面说法错误的是(A)A.Linux采用了微内核结构。 B.Linux支持虚拟地址模式。 D.Linux的驱动程序可以动态加载和卸载。C.Linux是一种抢占式多任务操作系统。 3.关于Linux设备驱动,下面说法正确的是(D)A.硬盘属于字符设备。B.Linux设备驱动工作在用户态。 C.Linux设备文件对应着磁盘中占一定容量空间的数据,自然可以用cp命令来拷贝。 D.用户可以选择将Linux设备驱动直接编译到kernel中,或者编译成独立的可动态加载的模块(loadable module)。4.关于Linux文件的链接,下面说法正确的是(A)A.无法创建到一个目录的硬链接。 C.无法创建到一个目录的软链接。 B.当移动了原路径后,硬链接就失效(orphaned)了。D.软链接就是多个不同的文件路径名指向同一个inode。 5.关于嵌入式Linux文件系统,下面说法正确的是(D)A.JFFS2中每次修改都是修改原来的数据节点。 B.ext2、ext3是适用于Flash存储介质的文件系统。 C.CRAMFS是可读和写的,并对文件内容进行了压缩的文件系统。 D.Tmpfs、Ramdisk、Initrd都是以内存为存储介质的文件系统,如果系统掉电就会丢失全部的数据。 6.关于嵌入式Linux移植,下面说法正确的是(B)A.嵌入式Linux移植仅仅包括内核的编译与移植。 B.嵌入式Linux移植包括驱动的开发、移植工作。 C.Linux移植最后得到的FLASH中不包括Bootloader。 D.Linux移植最后得到的FLASH中仅仅包括Linux内核和根文件系统。7.显示当前目录的路径的命令是(D)A.cd B.cd / C.cd $HOME D.pwd 8.在整个文件系统搜索hello.c文件所在的位置,可以使用(D)命令。A.ls-l hello.c B.cat “hello.c” C.grep-i hello.c D.find /-name hello. 结课论文要求 1、内容要求:结合课程内容,结合本专业及其研究方向,自选专题阐述嵌入式系统应用技术,主要包括所选专题概述、基于STM32处理器的硬件系统(框图)和基于嵌入式操作系统(μC/OS-Ⅱ或嵌入式Linux)的软件系统(组成结构)介绍以及开发环境和实验结果说明等内容。 2、论文格式要求:按照公开发表论文的格式,参考学校学报的要求。 3、论文字数(含摘要、图、表):3500-4500 论文参考格式 《嵌入式系统及应用》结课论文(首页左上角) 中文标题 作者 (天津职业技术师范大学自动化与电气工程学院天津300222) 摘要: 关键词: Titel Author (Sch of Automation and Elec, Tianjin University of Technology and Education, Tianjin 300222, China) Abstract: Keywords: 1.前言 (以下为正文,可根据内容自由设置二级标题X.X和三级标题X.X.X) 2.3.4.…… X.结束语 参考文献(著录格式见学报封三) [1] [2] …… μC/OS嵌入式实时操作系统的应用和学习心得 μC/OS-II 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。它是一个完整的、可移植、可固化、可裁剪的抢占式实时多任务内核。μC/OS-II绝大部分的代码是用ANSII的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。至今,从8位到64位,μC/OS-II已在超过40种不同架构上的微处理器上运行。μC/OS-II已经在世界范围内得到广泛应用,包括很多领域,如手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制上。实际上,μC/OS-II已经通过了非常严格的测试,并且得到了美国航空管 理局的认证,可以用在飞行器上。这说明μC/OS-II是稳定可靠的,可用于与人性命攸关的安全紧要系统。除此以外,μC/OS-II 的鲜明特点就是源码公开,便于移植和维护。 我们在学习μC/OS嵌入式实时操作系统时用的教科书是任哲编著的 《嵌入式实时操作系统μC/OS-Ⅱ原理及应用》,这本书介绍了嵌入式实时操作系统μC/OS-Ⅱ内核的任务管理和调度、系统时钟和节拍服务、时间管理、中断、任务的通信和同步、内存的简单管理原理,同时给出了实例。最后,还介绍了μC/OS-Ⅱ的移植方法。 在多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这一块吃起内存来是相当厉害的。内核本身对CPU的占用时间一般在2到5个百分点之间。μC/OS-Ⅱ有一个精巧的内核调度算法,实时内核精小,执行效率高,算法巧妙,代码空间很少,具有如下特点:只支持基于优先级的抢占式调度算法,不支持时间片轮循;64个优先级,只能创建64个任务,用户只能创建56个任务;每个任务优先级都不相同;不支持优先级逆转;READY队列通过内存映射表实现快速查询;效率非常高;支持时钟节拍;支持信号量,消息队列,事件控制块,事件标志组,消息邮箱任务通讯机制;支持中断嵌套,中断嵌套层数可达255层,中断使用当前任务的堆栈保存上下文;每个任务有自己的堆栈,堆栈大小用户自己设定;支持动态修改任务优先级;任务TCB为静态数组,建立任务只是从中获得一个TCB,不用动态分配,释放内存;任务堆栈为用户静态或者动态创建,在任务创建外完成,任务创建本身不进行动态内存分配;任务的总个数(OS_MAX_TASKS)由用户决定;0优先级最高,63优先级最低;有一个优先级最低的空闲任务,在没有用户任务运行的时候运行。 任务的调度核心主要是在任务就绪表中查找具有最高优先级别的就绪任务及实现任务切换,即将找到的的最高优先级别的任务的“任务号”---> “当前任务的任务号OSPrioCur”;从OSTCBPrioTbl[]取出最高优先级别任务的任务控制块首地址---> “当前任务的任务控制块指针OSTCBCur”,最后调用OS_TASK_SW()完成现场切换(即将CPU的寄存器信息保存到当前正运行任务的私栈中,然后从待运行的高优先级别的任务私栈中弹出原先保存寄存器信息到CPU)。 时钟节拍服务放到一个时钟节拍任务中完成,通过采用啥希散列表机制来管理延时任务,每次时钟节拍服务只需要处理极少数的延时任务,从而大大减少了时钟节拍服务花费的时间,提高了系统的实时性。 另外,在μC/OS系列RTOS中,时钟节拍服务除了会跟踪延时的任务,还会跟踪那些指定了超时时限的等待任务。也就是说,当指定的超时时限结束时,即使任务等待的事件没有发生,时钟节拍服务也会使该任务恢复运行。 uC/OS-II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次,时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。 uC/OS-II要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍相关的系统函数,例如中断级的任务切换函数,系统时间函数。 uC/OS-II 中最多可以支持64 个任务,分别对应优先级0~63,其中0 为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。还提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。 系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,该任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,该任务负责统计当前cpu的利用率。 想使用在MCU上使用μC/OS-II则必须满足以下几个条件:①处理器C 编译器支持可重入代码的生成;②用C 语言可以打开和关闭中断;③ 处理器支持中断,并能产生定时中断(中断频率通常设置在10~100 Hz 之间);④ 处理器支持足够的RAM 空间,以满足多任务环境下设置任务堆栈的要求;⑤处理器有相应的指令,能将堆栈指针和其它CPU 寄存器读出和存储到堆栈或内存中。μC/OS-II代码中大部分是用C语言写的,但涉及到数据类型的重定义、堆栈结构的设计、任务切换时状态的保存和恢复等问题的大部分代码由于与处理器有关,是用汇编语言实现的。移植所要做的工作,就是在不同的处理器上用汇编语言来改写与处理器有关的代码及其他与处理器特性相关的部分。 在μC/OS-II移植过程中涉及以上问题的代码都包含在文件OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM中。因此移植的主要工作也在源代码的基础上围绕着这三个文件的改写展开。 总之,学习μC/OS嵌入式实时操作系统首先得先了解整个系统的结构,工作时的流程,比如任务1运行时如果有外部中断会发生什么(调用中断服务程序,把相应的任务加如就绪列,内核进行调度,就绪队列中的最高优先级的任务...)等,再对代码进行具体的研究会比较容易。 我们需熟知μC/OS嵌入式实时操作系统中的函数及其应用,例如引起任务调度的系统函数有OSStart()uCOS/II启动 ;OSTaskSuspend()挂起任务 ;OSTaskResume()恢复任务 ;OSTimeDly()/OSTimeDlyHMSM()等待一个事件的发生等。只有在熟识系统运行的方式及可以引发其运行的函数的情况下我们才能较好的去运用它,用它来实现移植,从而达到我们的目的。 学习实时操作系统,任哲编著的 《嵌入式实时操作系统μC/OS-Ⅱ原理及应用》这本书相对来说比较适合初学者,它篇幅适中,通俗易懂,若能结合北京航空航天大学《ucosii操作系统讲义》就更加好了。 正所谓读书百遍,其义自现,通过对《北航》和《任哲》的资料不断反复地学习和阅读,我心中总算有些眉目了,我是先用别人的程序进行移植调试后才加入自己的代码,虽然开始都是实验---下载--失败,但随着我的不断努力,最终也是能够成功的,所以说学习这种技术,需要的是耐心,因为它需要我们一步一步慢慢加深理解,调试程序,有时一个符号打错了都会造成实验的失败,我们就要耐心仔细的在代码的海洋里寻找着这一根小针并把它去除改正。 《嵌入式系统原理及应用》 结课论文 题目:此处写论文题目 学姓专班成 号 名 业 级 绩 此处填写学号 此处填写姓名 机械电子工程 格式如:1班 北京理工大学珠海学院机械与车辆学院 201X年 XX 月 XX 日 论文题目(如:基层电大法学本科毕业论文写作问题研究) 摘 要:摘要是对你写的全文内容的高度概括,而不是简单的前言,100-300字即可。关键词:关键词是你全文中出现频率最高的3-5个词语,如本例文中关键词为基层电大;法学本科;毕业论文;问题研究 撰写毕业论文是开放教育法学本科实施专业教学计划、实现培养目标必不可少的环节。远程开放教育在毕业论文这一集中实践环节上进行了多年的探索并取得了不少成功经验,但毋庸讳言,同时也存在亟待解决的问题。笔者作为多年在基层电大从事法学专业教学和毕业论文指导的专职教师,对法学本科学生在毕业论文写作中存在的若干问题进行了初步的分析和探讨。 一、基层电大法学本科毕业论文写作存在的问题 (一)选题问题 选题问题万丈高楼平地起,完成毕业论文的第一步是确定研究论题,选题得当与否直接影响论文的质量,关系论文的成败。法学本科学生在选题时存在的常见问题如下: 1.选题偏大,如“论依法治国”,“论民法的基本原则”,“谈司法腐败”,这些选题偏大,涉及范围过宽,又由于论文篇幅和字数所限,对于学生而言很难把握,在内容上面面俱到必然导致论述不够透彻深入。 2.题目陈旧,如“论正当防卫的条件”,“浅析青少年犯罪的原因”,选题陈旧则会老生常谈,人云亦云,照搬别人的资料和结论,缺乏个人的创新观点。 3.选题过于集中,视野不够开阔。一是选题时题目扎堆,以我校2004年秋法本为例,在78名学生中有5人写家庭暴力问题研究,4人写计算机犯罪,3人写刑事被害人保护问题,这些选题扎堆的论文大同小异,结构相似,内容相仿,缺乏创新。二是选题集中于民法、刑法及诉讼法等课程,而宪法学、法理学、行政法学等学科以及涉外的学科如国际私法、国际公法等的研究比较缺乏。 (二)论文本身问题 1.文体问题。少数学生上交的初稿根本不是学术论文,或是工作总结,或是学习体会,或是案例分析。 2.论文本身质量不高,写作水平低,学术性欠缺。有的词句表达不清,逻辑思维混乱;有的文章从理论到理论,很少联系到学生自身的实际生活和实际工作,更没有作者自己的思索和见解;还有的罗列了大量的事例,没有提升到理论的高度。 3.论文格式不规范。文章层次不清,绪论、本论、结论标示不明显,小标题混 三、对策及建议 1.明确法学本科毕业论文的学术定位我们不能用普通高校法学本科学生毕业论文的标准来衡量开放教育学生毕业论文的水平,针对开放教育学生的理论基础知识薄弱而实践经验相对丰富的特点,在论文理论性方面的要求可以适当降低,论文的写作着重在于培养一种法律思维能力,重在理论与实践的有机结合。所以,根据开放教育法学本科学生的工作性质和生活阅历,引导其选择能将工作经验、生活积累都运用起来的题目,以充分发挥社会经验丰富,动手能力强的优势,而避免了理论基础相对较薄弱的劣势,从而扬长避短,写出具备电大毕业论文特色(平易性、实践性)的高质量论文。笔者认为这种鼓励务实的做法更符合成人教育的培养目标。 2.毕业论文教学应该贯穿于教学的各个环节按照教学计划的安排,毕业论文安排在最后一个学期完成,而开放教育的学生都是业余学习,用来写论文的时间少之又少。从选题到写作的全部过程都在这么短暂的时间内完成,要保证质量是很难的。笔者认为毕业论文的教学不应只是集中在对学生写作过程的指导上,而应贯穿于从入学教育开始的各个教学环节中;从平时的积累和准备入手,从根本上提高毕业论文的质量,才能真正把这一教学环节落到实处。(1)入学教育的心理准备。在开学初第一学期开学典礼入学教育时,专业责任教师要把毕业论文写作的任务介绍给学生,使学生提早了解毕业论文写作的重要性和意义,引起学生思想上高度重视,从而在今后的学习中会关注并搜集与论文写作有关的资料信息,甚至会主动地进行思考和研究。(2)专业课程学习中进行理论准备和材料准备。论文的写作实际上是一个消化知识、整合知识、训练思维的过程,是一个富于进取性的主动学习的过程。 3.加强指导教师的管理和监督一是严格按中央电大的有关标准聘请熟练掌握本学科理论知识并具有较强的责任心,能够在实践教学中指导到位的称职的教师;二是重视对指导教师的培训,经培训合格的,发给指导教师资格证,持证上岗;三是加强对指导教师的监督,指导教师要从选题开始,对论文的选题、写作提纲、初稿和二稿,实行严格的审查和认真地指导,并有每一次指导过程的记录,对终审发现论文质量不高、抄袭、指导缺位的给予经济制裁和取消指导教师资格的处分,督促指导教师切实负起论文指导的责任。 四、结束语 毕业论文作为检查学生运用理论解决实际问题能力,检查学生综合水平措施的功能是众所周知的,但笔者认为毕业论文的写作更是一个过程、一种训练,是培养学生阅读能力、分析能力、写作能力、创新能力的过程,是对学生掌握法学基础理论、专业技术知识的功底,分析问题的能力及书面语言的表达水平的一种综 合训练。因此,应该把毕业论文这一实践性教学环节当成一门课,当成整个教学过程中的一个组成部分,看成培养学生综合能力的过程。在这一思想的指导下,我们有必要进行毕业论文教学模式及其运行机制的探索和研究,尽快地建立完善的教学操作规程,这是当前开放教育毕业论文教学改革面临的一项重要任务。 参考文献 [1]谢虹光.毕业论文学术定位初探[J].山西广播电视大学学报,2004,(4).[2]张锁通.工商管理本科论文指导和答辩问题探讨[J].河北广播电视大学学报,2006,(3).[3]黄芬香.开放教育文科类毕业论文评价模式的构建[J].中国远程教育,2006,(4).[4]郑春玲.对开放教育毕业论文的反思[J].湖北广播电视大学学报,2006,(5).[5]黄河.教育学[M].北京:高等教育出版社,2008,(5),59-80.注意:(上述模版中黑色字体部分不要改动,直接把蓝色字体部分按照自己的论文题目、提纲及内容进行改写即可,要求正文字数2500-4000字。文中适当插入图、表,但不得占据过大篇幅,必须统一编号、排版。本模板所指定的字体、字号以及所有排版格式请不要擅自调整)(参考文献至少5个) 第一章: 嵌入式系统定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。(一切非PC计算机系统)嵌入式系统特点:“专用”计算机系统,运行环境差异很大,比通用PC系统资源少,功耗低,体积小,集成度高,成本低,具有完整的系统测试和可靠性评估体系,具有较长的生命周期,需要专用开发工具和方法进行设计,包含专用调试电路,多学科知识集成系统。嵌入式系统应用范围:汽车,工业控制,通信设备,消费电子,商业终端,航空航天,军事需求。 嵌入式系统的基本开发流程:系统定义与需求分析阶段,方案设计阶段,详细设计阶段,软、硬件集成测试阶段,系统功能性测试及可靠性测试阶段。 系统定义与需求分析阶段:对系统需求进行分析,制定系统的设计依据。方案设计阶段:确定系统初步设计方案并形成设计描述文档。详细设计阶段:完善初步方案,对方案实施详细设计。 软硬件集成测试阶段:对系统软硬件进行综合测试,验证系统设计功能。 系统功能性能测试及可靠性测试测试:对系统功能,性能,可靠性进行综合测评。 对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含4个层面:板级支持包层,实时操作系统(RTOS)层,应用程序接口(API)层,应用程序层。有些资料将应用程序接口API归属于OS层,按3层划分的应用程序控制系统的运作和行为;操作系统与硬件无关,不同的嵌入式操作系统其组成结构也不尽相同 嵌入式操作系统种类繁多,大体分为两种:商用型和免费型 商用型:VxWorks,Windows CE,pSoS,Palm OS,OS-9,LynxOS,QNX和LYNX 免费型:Linux和uC/OS—II uC/OS—II具有执行效率高,占用空间小,可移植性及扩展性强,实施性能优良,稳定性和可靠性良好等特点。其内核采用微内核结构,将基本功能(如进程管理,存储管理,中断处理)放在内核中,留给用户一个标准API函数,并根据各个任务的优先级分配CPU时间。交叉开发环境:交叉开发是指一个通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行调试的开发方式,它通常采用宿主机/目标机模式。 第二章: RISC是精简指令集 精简指令集体系结构的优点:硬连线的指令译码逻辑,便于流水线执行,大多数RISC指令为单周期执行。 精简指令集处理器的优点:处理器关心面积小,开发时间缩短,开发成本降低,容易实现高性能,低成本的处理器。 精简指令集体系结构缺点:与CISC相比,通常RISC的代码密度低;RISC不能执行x86代码;RISC给优化编译程序带来了困难 ARM设计采用的RISC技术特征主要有:Load/Store体系结构,固定的32位指令,3地址指令格式。 ARM7TDM名称具体含义:ARM7:32位ARM体系结构4T版本;T:Thumb16位压缩指令集;D:支持片上Debug,使处理器能够停止以响应调试请求;M:增强型Multiplier,与前代相比具有较高的性能且产生64位的结果。I:EmbeddedICE硬件以支持片上断点和观察点。ARM7 3级流水线:(取指级,译码级,执行级)ARM9TDMI 流水线操作:(取指,译码,执行,缓冲/数据,回写)5级 ARM处理器核可工作两种状态:ARM状态和Thumb状态 从ARM进入Thumb状态,当操作数寄存器Rm的状态位bit[0]为1时,执行“BX Rm”指令进入Thumb状态 从Thumb进入ARM状态,当操作数寄存器Rm的状态位bit[0]为0时,执行“BX Rm”指令进入ARM状态 ARM处理器工作模式(共7种):除用户模式外的其他六种模式称为特权模式。特权模式:主要处理异常和监控调用(有时也称为软件中断),他们可以自由地访问系统资源和切换模式 ARM处理器总共有37个寄存器,均为32位 ARM状态下的通用寄存器分为3类: 未分组寄存器:R0~~R7(为公用寄存器) 分组寄存器:R8~~R14 R13通常用于堆栈指针SP R14用做子程序链接寄存器 程序计数器:R15(PC) 用做程序计数器 ARM程序状态寄存器中 条件码标志(N Z C V) N——在结果是带符号的二进制补码的情况下,结果为负,N=1 否则为0 Z——结果为0 Z=1 否则为0 C——针对加法:产生进位 C=1 否则为0 针对减法:产生借位 C=0 否则为1 针对有移位操作的非加减法指令 C为移位操作中最后移出位的值 对于其他指令 C通常不变 V——对于加减法指令 操作数和结果为带符号的整数时,产生溢出 V=1 否则为0 对于其他指令 V通常不发生变化 ARM的异常中断响应过程: 一:将CPSR的内容保存到将要执行的异常中断对应的SPSR中,以实现对处理器当前状态,中断屏蔽字以及各条件标志位的保存。二:设置当前状态寄存CPSR中的相应位: 设置CPSR模式控制位CPSR[4:0],使处理器进入相应的执行模式 当进入Reset或FIQ模式时,还要设置中断标志位(CPSR[6]=1)禁止FIQ中断,否则其值不变 设置中断标志位(CPSR[7]=1),禁止IRQ中断 三:将寄存器LR- 四:给程序计数器PC强制赋值,使程序从相应的向量地址开始执行中断处理程序。 非向量中断和中断向量的区别和联系 异常中断的优先级:复位(最高),数据异常中断,FIQ,IRQ,取值指异常中止,SWI未定义指令 ARM支持的数据类型(6种):8位有符号和无符号字节 16位有符号和无符号半字,以2字节的边界定位 32位有符号和无符号半字,以4字节的边界定位 ARM存储器组织:以字节为单位寻址的存储器中有“小端”和“大端”两种方式存储字 小端格式:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址 大端格式:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址 ARM处理器能方便地配置为其中任何一种存储器方式,但他们的缺省设置为小端格式(71页有题) ARM7TDM内核的重要特性:53页最上面 第三章: 指令分类中基本指令格式 S 可选后缀,若指定S,则根据指令执行结果更新CPSR中的条件码 ARM寻址方式 立即寻址有选择题 寄存器间接寻址:ARM的数据传送指令都是基于寄存器间接寻址,即通过Load/Store完成对数据的传送操作 103页举例 可能为考题 伪操作 是ARM汇编语言程序里的一些特殊指令助记符,它的作用主要是为完成汇编程序做各种准备,在源程序进行汇编时由汇编程序处理,而不是在计算机运行期间由机器执行 ARM嵌入式系统程序设计可以分为ARM汇编语言程序设计、嵌入式C语言程序设计以及C语言与汇编语言的混合编程。 ARM汇编程序中 AREA指示符定义本程序段位代码段 即申请一个定义段 161页程序 可能考 嵌入式C语言程序设计中修饰符:interrupt、near、far、huge Interrupt在函数修饰为中断函数,没有输入和输出参数 第三章课后习题见李向妮笔记 第四章 DMA I2C I2S 基于S3C44B0X的最小系统设计: 嵌入式最小系统是指保证嵌入式微处理器可靠工作所必需的基本电路组成的系统,通常包括处理器单元、时钟单元、复位单元、、存储器单元、供电电源和调试接口。 基于ARM的嵌入式最小系统基本组成包括:基于ARM核的微处理器、电源电路、复位电路、时钟电路、存储器电路(FLASH和SDRAM)、UART接口电路和JTAG调试接口 第五章: uC/OS—II采用的抢占式内核是一个真正的实时操作系统 uC/OS—II基本特点:源码开放;可移植性;可裁剪;抢占式内核;可扩展的多任务;可确定的执行时间;中断管理;稳定性和可靠性 uC/OS—II的文件结构(与内核功能相关的文件):任务管理;同步通信;内存管理;时间管理 uC/OS—II任务及其运行状态: 任务是一个简单的程序,对应于实际应用中的一个逻辑功能。对uC/OS—II来说,任务是系统运行的基本单元,系统以任务为单元分配内存资源和处理时间,每个任务都有自己独立的寄存器和栈空间。 任务看起来就像一个无限循环永不返回的函数,但是不同于函数的是,它有一套自己的内存空间,运行时完全占用处理器资源,在任意确定的时刻都处于休眠、就绪、运行、挂起以及中断服务这五种状态之一 图见书上337 第六章 uCLinux与标准Linux的最大区别就在于内存管理。标准Linux是针对有MMU的处理器设计的 uCLinux不使用虚拟内存管理技术,采用的是实存储器管理策略,也就是说uCLinux系统对内存的访问是直接的 uCLinux与标准Linux系统在进程的创建 进程的执行 进程的终止 上有着显著不同 基于uCLinux操作系统的应用开发环境一般是由目标系统硬件开发板和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、电子词典应用程序的开发和调试则需要通过宿主PC机来完成。目标板用来进行内核编译 PC机用来进行调试 移植就是使一个实时操作系统能够在某个微处理器平台上或者微控制器上运行。uCLinux移植包括3个层次的移植: 处理器结构层次移植、芯片层次移植、板级移植。 移植思路:开发环境确定以后,首先,要为uCLinux设计一个BootLoader,通过BootLoader来初始化硬件,引导uCLinux运行。BootLoader的设计可以在ads中或者Linux中实现。其次,针对硬件环境和设计的BootLoader修改uClinux内核。最后,在交叉编译环境下配置、编译、链接uClinux,下载编译得到的印象文件到FLASH,通过BootLoader来启动uCLinux。如果参数默认或者无参数,则先执行BootLoader,否则BootLoader第二位,参数执行为第一位。第二篇:嵌入式系统及应用结课论文要求
第三篇:嵌入式系统应用与学习心得体会
第四篇:《嵌入式系统原理及应用》结课论文格式模版
第五篇:嵌入式系统设计与应用