嵌入式系统设计课程大作业

上传人:汽*** 文档编号:564717437 上传时间:2023-06-15 格式:DOCX 页数:9 大小:40.13KB
返回 下载 相关 举报
嵌入式系统设计课程大作业_第1页
第1页 / 共9页
嵌入式系统设计课程大作业_第2页
第2页 / 共9页
嵌入式系统设计课程大作业_第3页
第3页 / 共9页
嵌入式系统设计课程大作业_第4页
第4页 / 共9页
嵌入式系统设计课程大作业_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《嵌入式系统设计课程大作业》由会员分享,可在线阅读,更多相关《嵌入式系统设计课程大作业(9页珍藏版)》请在金锄头文库上搜索。

1、2012年上学期嵌入式系统设计课程大作业1、表达以下相关名词的含义ARM、xscale PXA255、RISC、体系结构答:1ARM:英国的一家公司;时下流行的一种体系结构。2XScale: ARM 架构 v5TE 指令集的 CPU。3PXA255 : XScale 的内核版本。4RISC: Reduced Instruction Set Computing,即精简指令集,一种 CPU 的 设计概念;与之相对的是 CISC,即复杂指令集5体系结构:嵌入式系统硬件与软件的衔接;它确定嵌入式系统设计的部 件、部件功能、部件间借口的设计,并集中于嵌入式系统的核心部分一一处理器 的运算与内存的存取。2

2、、画出嵌入式硬件系统组成的模块结构图功能层应用程序软件层文件系统图形用户接口任务管理实时操作系统中间层BSP/HAL板如支持保范更件抽象层D/A嵌入式处理 器通用接口硬件层A/DROMI/OSDRAM人机交互接口嵌入式计耳机系统3、表达基于linux的嵌入式平台的搭建过程答:Linux嵌入式平台的搭建符合嵌入式平台搭建的一般过程,但是具体到Linux嵌入式平台,又有些许不同,其搭建过程如下:1处理器以及硬件开发平台的选择以处理器为主,结合考虑硬件平台的情况。处理器考虑的问题包括应用类型 及I/O接口、主频和功耗、对不同类型存储器的支持、封装等;硬件平台的选择 和设计包括内存和外围存储器、输入输

3、出接口以及设备等几项主要内容。2操作系统的选择由于已经选取了 Linux操作系统,因此此处主要是内核版本的选取以及对内 核功能的裁剪。3开发环境的选取即开发工具的选取,主要是指开发软件的选取,比方常用的minicom。4开发实施首先,Bootloader的烧制。目的是对硬件系统基本功能的支持,比方串口通 信。其次,内核文件的制作。接下来,内核文件的拷贝。此时,可以通过串口或 者网口实施传输,能够大幅度提高传输速度。最后,在主机使用开发软件,完成 对硬件系统的开发工作。包括硬件驱动程序、上层的应用程序、系统的集成与调 试等。4、如下为xscale处理器的内核框图:InstructionCache

4、32 Kbytes32 WaysLockable by lineMicroprocessor7 Stage pipelineData Cache /Max 32 Kbytes/32 Ways/Back or/ Data RamWR - Through/Max 28 KbytesHit under miss / Re-Map of data / cacheMini-DataCache2 Kbytes2 WaysFill Buffer4 - 8 entriesBranch TargetBuffer128 EntriesIMMU32 entry TLBFully associativeLockabl

5、e by entryDMMU32 entry TLB Fully associative Lockable by entryPerformanceMonitoringDebugHardware Breakpoints Branch History TablePower Mqnt CtrlMACSingle cycle throughput (16*32)1&bit SIMD 40-bit accumulatorWrite Buffer8 entriesFull coalescingJTAG简述内核框图中每个模块的名称及指标。答:1Instruction Cache:指令Cache;大小32KB

6、 , 32路,支持线性锁定2Micro-Processor:微处理器;七级流水3Data Cache 数据 Cache;最大支持 32KB , 32 路4Data Ram:数据Ram;最大支持28KB5Mini-Data Cache:迷你数据 Cache;大小 2KB , 2 路6Branch Target Buffer 分支目标缓存;128 入口7IMMU/DMMU :指令/数据 存储管理单元;32路,全相关,支持锁定8Fill Buffer:填充缓存;48入口9 Performance Monitoring:功能显示器10Debug:硬件中断断点记录11Power Management C

7、ontrol 电源管理控制12MAC:乘加单元;40位累力口/累乘,16位单指令多数据流操作,16*32 位操作单周期支持13Write Buffer:写缓存;8入口,支持合并操作14JTAG:边界扫描技术;支持 JTAG操作5、下述英文为BTB模块功能的详细介绍,阅读后说明该模块的作用。The BTB stores the history of branches that have executed along with their targets. Figure 5-1 shows an entry in the BTB, where the tag is the instruction

8、address of a previously executed branch and the data contains the target address of the previously executed branch along with two bits of history information.The BTB takes the current instruction address and checks to see if this address is a branch that was previously seen. It uses bits 8:2 of the

9、current address to select the tag from the BTB and then compares this tag to bits 31:9,1 of the current instruction address. If the current instruction address matches the tag in the BTB and the history bits indicate that this branch is usually taken in the past, the BTB uses the data (target addres

10、s) as the next instruction address to send to the instruction cache.答:分支目标缓存目标地址历史的分支,具体到每个入口表项,由Tag和数据组成。Tag是以前执行分支的指令地址,数据包括以前执行分支的目标地址, 以及2比特的历史信息。分支目标缓存取得当前的指令地址, 检查这个地址是否 是以前执行过的分支。它用现行指令的位8:2来选择分支目标缓存中的标志Tag, 并与现行指令的位31:9,1进行匹配。假设匹配且历史位指出该分支过去常产生, 则分支目标缓存中的数据目标地址31:1作为下一条指令地址送至指令 Cache6、下面是lin

11、ux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据 结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。设备驱动程序Keypad.c的源代码:#include #include #include #include #include #include #include #include #include #include #include #define LEDnKEY_MAJOR 251#define KEYPAD_NAME X-Hyper250 Keypad#define KEYPAD_VERSION Version 0.1#define EXT_KEY_CS EXT_

12、PORT2#define EXT_LED_CS EXT_PORT3#define LED_SHOW 10/*EXT_KEY_CS为向外部LED行数彳t设定,它定义在其它头文件里*/void led_off_on() /*/ int i;EXT_LED_CS = 0xff;for(i =0 ; i8;+i) EXT_LED_CS =(1 i) & 0xff); /* 点亮相应 LED1*/ udelay(30000);EXT_LED_CS = 0xff;/* 应用程序用 open 来打开设备文件,实际上调用驱动的 lednkey_open 函数 */ int lednkey_open(struc

13、t inode *inode, struct file *filp) /*打开设备文件*/MOD_INC_USE_COUNT;/*核提供的一个宏,检查使用驱动程序的用户数*/return (0);/* success */ int lednkey_release(struct inode *inode, struct file *filp) /*释放设备文件*/ led_off_on();MOD_DEC_USE_COUNT;return (0);/* ssize_t lednkey_read(struct file *filp, char *Putbuf, size_t length, lof

14、f_t *f_pos) 按键读取函数*/unsigned short BottonStatus;unsigned char Bottontmp = 0;int i;BottonStatus = ( EXT_KEY_CS & 0xff ); /*按键状态 */for(i = 0 ; i i) & 1) = 0 ) Bottontmp = (i+1);copy_to_user( Putbuf, &Bottontmp, length); /*将数据从内核态拷贝到用户态,这是由定义在 里的特殊函数实现在不同的空间传输任意字节的数据*/return length;ssize_t lednkey_write(struct file *filp, const char *Getbuf, size_t length, loff_t*f_pos) int num;unsigned char UsrWantLed;copy_from_user( &UsrWantLed, Getbuf, l

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号