2012年上学期嵌入式系统设计课程大作业.docVIP

2012年上学期嵌入式系统设计课程大作业.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012年上学期嵌入式系统设计课程大作业

2012年上学期嵌入式系统设计课程大作业 1、叙述下列相关名词的含义 ARM、xscale、PXA255、RISC、体系结构 2、画出嵌入式硬件系统组成的模块结构图 3、叙述基于linux的嵌入式平台的搭建过程 4、如下为xscale处理器的内核框图: 简述内核框图中每个模块的名称及指标。 5、下述英文为BTB模块功能的详细介绍,阅读后说明该模块的作用。 6、下面是linux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。 设备驱动程序Keypad.c的源代码: #include linux/module.h #include linux/fs.h #include linux/init.h #include linux/poll.h #include linux/types.h #include linux/fs.h #include linux/rtc.h #include linux/delay.h #include asm/hardware.h #include asm/delay.h #include asm/uaccess.h #define LEDnKEY_MAJOR 251 #define KEYPAD_NAME X-Hyper250 Keypad #define KEYPAD_VERSION Version 0.1 #define EXT_KEY_CS EXT_PORT2 #define EXT_LED_CS EXT_PORT3 #define LED_SHOW 10 /*EXT_KEY_CS 为向外部LED进行数值设定,它定义在其它头文件里*/ void led_off_on() /**/ { int i; EXT_LED_CS = 0xff; for(i =0 ; i8;++i) { EXT_LED_CS = ~((1 i) 0xff); /*点亮相应LED灯*/ udelay(30000); } EXT_LED_CS = 0xff; } /*应用程序用open来打开设备文件,实际上调用驱动的lednkey_open()函数*/ int lednkey_open(struct 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, loff_t *f_pos) /*按键读取函数*/ { unsigned short BottonStatus; unsigned char Bottontmp = 0; int i; BottonStatus = ( EXT_KEY_CS 0xff ); /*按键状态*/ for(i = 0 ; i 8; ++i) /*判断哪个按键按下*/ { if( ((BottonStatus i) 1) == 0 ) Bottontmp = (i+1); } copy_to_user( Putbuf, Bottontmp, length); /*将数据从内核态拷贝到用户态,这是由定义在asm/uaccess.h里的特殊函数实现在不同的空间传输任意字节的数据*/ 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, length);/*将数据从用户态拷贝到核心态*/ num = ( (UsrWantLed) 0xff );/*确定哪一位要进行设定*/ EXT_LED_CS = ~(1 (num-1)); /*点亮相应LED灯*/ return (0); } int lednkey_ioctl(stru

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档