- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE2 / NUMPAGES5
嵌入式系统设计大作业
1、叙述JTAG接口在嵌入式开发中的作用。
2、叙述嵌入式平台的搭建过程,以linux为例。
3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品?体系结构是什么?
4、现今较流行的嵌入式操作系统有哪些?
5、PXA270嵌入式开发板的接口有哪些?
6、请写出Nor Flash和 Nand Flash的区别。
7、冯。诺依曼架构与哈佛架构的区别。
8、单周期3级流水的情况下,第10个指令周期时,第几条指令执行结束?
9、下面是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);
udelay(30000);
}
EXT_LED_CS = 0xff;
}
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);
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));
return (0);
}
int lednkey_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,unsigned long arg)
{
switch(cmd)
{
case LED_SHOW:
{
if(arg)
led_off_on();
break;
}
}
return 0;
}
原创力文档


文档评论(0)