2022年下半学期西电嵌入式系统设计大作业解析-2023修改整理_第1页
2022年下半学期西电嵌入式系统设计大作业解析-2023修改整理_第2页
2022年下半学期西电嵌入式系统设计大作业解析-2023修改整理_第3页
2022年下半学期西电嵌入式系统设计大作业解析-2023修改整理_第4页
2022年下半学期西电嵌入式系统设计大作业解析-2023修改整理_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐2022年下半学期西电嵌入式系统设计大作业解析嵌入式系统设计大作业

授课教师:孙江敏

学院:计算机学院

同学姓名:

学号:

日期:2022年6月12日

嵌入式系统设计大作业

1、推断题

(×)1.嵌入式系统调试通常可以分为硬件级调试和在线仿真器调试。

(√)2.在ARM处理器中,迅速中断(FIQ)的优先级高于外部中断(IRQ)。(×)3.ROM能够永远或半永远地保存数据,ROM内的数据永久不会走失。(√)4.内建测试系统(BIST)是SoC片上系统的重要结构之一,JTAG测试接口是IC芯片测试办法的标准。

(×)5.VHDL的基本单元描述不包括库。

(×)6.嵌入式ARM架构的嵌入式处理器同时支持大端、小端(Big/Little-Endian)数据类型。

(×)7.嵌入式操作系统通常采纳整体式内核或层次式内核的结构。

(×)8.ARM7TDMI中的T代表增加型乘法器。

(×)9.看门狗(WatchDog)实际是一个容易的定时器,在固定时光内若正常清零,则自动复位处理器。

(√)10.ARM-CPU由多家不同创造商生产,芯片外部提供的总线是不全都的。(√)11.Linux内核稳定、功能强大并且可以裁减,由于十分适合嵌入式应用。(√)12.Linux内核的中断服务程序运行于与全部进程都无关的中断上下文中。(√)13.Linux遵循POSIX标准,意味着绝大多数UNIX应用程序不需要任何改动就可以在Linux系统上编译且运行。

(×)14.Linux内核支持可以裁减的功能,因此它属于微内核架构。

(√)15.Linux在fork()时采纳了写时拷贝(简称COW)技术,允许父进程和子进程同时分享相同的物理页面。

(√)16.任何一个Linux应用程序都需要调用exit()函数。

(√)17.当前的Linux调度算法十分高效,但是查找当前最高优先级的可运行程序时,开销会随着可运行程序的多少而变化。

(√)18.Linux的系统调用是作为C库的一部分提供的。

(×)19.为了对硬件做出快速的响应并完成对时光严格的操作,中断处理下半部必需在关中断状态下执行。

(×)20.Linux的内存管理采纳了分页的机制,因此即使是内核本身也所有是分页的。

(×)21.嵌入式系统由上到下主要分为3个层次:应用软件层,系统软件层,硬件层。

(×)22.嵌入式系统的软硬件是自立设计的。

(√)23.嵌入式系统设计需要建立交错开发环境。

(√)24.通用系统程序开发不需要建立和使用交错编译环境。

(√)25.对于C++代码,gcc命令只能编译其源文件,而不能自动和C++程序使用的库链接。

(√)26.嵌入式系统可以没有操作系统。

(√)27.JTAG测试允许多个器件通过JTAG接口串联在一起形成一个JTAG链,能实现对各个器件分离测试。

(×)28.GDB调试器只支持本地调试应用程序。

(√)29.KGDB程序是一个特地用于调试Linux内核的GDB调试桩。

(×)30.片上调试器是存在重叠RAM。

2、讲述嵌入式平台的搭建过程,以linux为例。

①建立交错编译环境

普通开发机上已经有一套开发工具,称之为原生开发套件。普通用原生开发套件来写程序,在开发机上再安装一套开发工具,这套开发工具编译出来的程序,如内核、系统工作或者自己的程序,放在目标主机上运行。普通的开发机都是X86平台,原生开发套件开发的工具,也针对X86平台,而目标主机可能是PowerPC、IXP、MIPS。所以,用交错编译环境针对某一类详细平台。交错开发环境普通需要二进制工具程序、编译器、C链接库,嵌入式开发常用的三类软件是:Binutils、Gcc、uClibc。GNU包含的工具套件不仅于此,有时会按照实际需要,举行挑选。

②编译内核

开发工具是针对某一类硬件平台,内核同样也是。这一步需要用第一步中建立的工具,对内核举行编译。

③建立根文件系统

也就是建立平时看到的bin、dev、proc……等名目,以及一些必备的文件;

另外,还需要为目标系统安装一些常用的工具软件,如ls、ifconfig。一个方法是找到这些工具的源代码,用第一步建立的交错编译工具来编译,但是这些软件普通数量多,而且其中某些体积较大,不适合嵌入式系统。所以普通用busybox来完成的,包括系统引导软件init;最后,还需要为系统建立初始化的引导文件,如inittab。

④启动系统

在这一步,把建立好的目标、文件、程序、内核及模块所有拷贝到目标机存储器上,如硬盘。然后为系统安装bootloader。对于嵌入式系统,有许多引导程序可供我们使用。不过它们许多都有硬件平台的限制。固然,假如工作在X86下,可以直接用lilo来引导。做到这一步时,将目标存储设备挂上目标机,假如顺当,就可以启动系统了。固然,针对某些特殊的平台,不能像硬盘这样拷贝,就需要读卡器、烧录。但是基本的办法是相通的。

⑤优化和共性化系统

通过前四步,已经得到了一个可以正常工作的系统。之后只需按照个人的工作习惯举行设置。

3、给浮现今有哪些用于嵌入式开发的芯片名称,

他们分离是哪些公司的产品?体系结构是什么?

①基于32位RISC微处理器芯片的ARM7系列,ARM9系列,ARM9E系列,

ARM10E系列都是ARM公司的产品,arm9以上的体系结构是哈佛总线体系结构以下的是冯。诺依曼体系。

②TI公司的DSP处理器内核是哈佛总线体系结构。

③PowerPC公司的芯片,基于RISC结构,是哈佛总线体系结构。

④MIPS公司的芯片,基于RISC结构,是哈佛总线体系结构。

4、现今较流行的嵌入式操作系统有哪些

①VxWork

②Linux

③μC/OS-Ⅱ

④windowsCE

⑤Android

5、PXA270嵌入式开发板的接口有哪些?

全双工异步串行口和硬件流控制串行口,10M标准以太网接口10M/100M标准以太网接口,USB接口,红外通讯口,音频接口,存储卡口,视频和触摸屏接口摄像头接口,RTC时钟接口,调试接口,下载接口,电源接口。

6、请写出NorFlash和NandFlash的区分。

Flash是一种非易失闪存,它具有和ROM一样的掉电后数据不会走失的

7、冯·诺依曼架构与哈佛架构的区分。

①冯?诺依曼结构是一种程序指令存储器和数据存储器合并在一起的存储

器结构。

②哈佛体系结构是一种将程序指令存储和数据存储分开的存储器结构。

8、单周期3级流水的状况下,第10个指令周期时,第几条指令执行结束?

三级流水读取指令过程:

①取指从存储器装载一条指令

②译码识别将要被执行的指令

③执行处理指令并将结果写会寄存器

故ARM正在执行第1条指令的同时对第2条指令举行译码,并将第3条指令从存储器中取出。所以,ARM7流水线惟独在取第10条指令时,第7条指令才算完成执行。

9、下面是linux下的一个容易的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以解释。

设备驱动程序Keypad.c的源代码:

#include//最基本的文件,支持动态添加和卸载模块。

#include//包含了文件操作相关struct的定义

#include//初始化头文件

#include//轮询文件

#include//对一些特别类型的定义,只是为了便利阅读。

#include//可以在芯片上产生周期性的中断

#include//延时头文件

#include//与处理器相关的硬件

#include//延时头文件

#include//与处理器相关的入口

#defineLEDnKEY_MAJOR251//宏定义

#defineKEYPAD_NAME"X-Hyper250Keypad"//宏定义

#defineKEYPAD_VERSION"Version0.1"//宏定义

#defineEXT_KEY_CSEXT_PORT2//宏定义

#defineEXT_LED_CSEXT_PORT3//宏定义

#defineLED_SHOW10//宏定义

voidled_off_on()

{

inti;

EXT_LED_CS=0xff;

for(i=0;i>i)

}

copy_to_user(Putbuf,//将数据从内核态拷贝到用户态

returnlength;

}

ssize_tlednkey_write(structfile*filp,constchar*Getbuf,size_tlength,loff_t*f_pos)

{

intnum;

unsignedcharUsrWantLed;

copy_from_user(//将数据从用户态拷贝到核心态

num=((UsrWantLed)//确定哪一位要举行设定

EXT_LED_CS=~(1

#include

#include

#include

#include

#include

#defineLED_SHOW10

intfd;

staticchar*dev_name="/dev/keypad";

intmain(intargc,char**argv)

{

intdata=0,pre_data;

fd=open(dev_name,O_RDWR);//使用函数open打开设备keypad

if(!(fd>=0))

{

printf("%sfileopenfailed\n",dev_name);

exit(-1);//打开失败,显示出错信息

}

printf("\nkeypadApp:pressthepushbuttonseeshowled-ExitCtrl-C\n",dev_name);//打开胜利,提醒用户输入

ioctl(fd,LED_SHOW,1);//循环显示LED,看LED是否正常

while(1)

{

do

{

pre_data=data;

read(fd,(char*)

data=(data

}while(data==0);

if(pre_data==0)

{

printf("Write%dLED\n",data);

write(fd,(constchar*)

}//采纳忙等待方式扫描用户输入,传递给write函数

}

close(fd);//使用函数close关闭设备keypad

return0;

}

10、基于嵌入式的智能家居系统设计,重点在于完成智能家居控制平台的结构、功能和设计分析,画出相应的结构功能框图。

11、建立五个文件:ex1.c文件,ex2.c文件,ex.h文件,ex.c文件,makefile文件,其中ex1.c文件和ex2.c文件分离输出hellolinux1和hell

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论