- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式linux题库2-答案
在EduKit-IV中,这4个 LED的状态通过扩展(填空1)接口进行控制。答案:(I/O)
( B )函数用于设备注册。
A. devfs_mk_cdev(MKDEV(keyMajor, 0), S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, DEVICE_NAME);
B . register_chrdev(KEY_MAJOR, DEVICE_NAME, eduk4_ key_fops);
3. (填空1)结构体,给出与虚拟文件系统中文件操作函数相对应的、操作设备的具体函数。答案:(file_operations)
4. set_irq_type(unsigned int irq, unsigned int type),设置(填空1)模式。答案:(中断触发)
6. int request_irq(unsigned int irq,void (*handler)(int irq, void *dev_id, struct pt_regs *regs),unsigned long irqflags,const char * devname,void *dev_id); 该函数声明于include/linux/interrupt.h中,而它的定义位于kernel/irq/manage.c中。用于向系统申请(填空1)(中文)。中断发生时,系统调用函数Handler)
7. 在内核编程中,我们不能使用用户态C库函数中的printf()函数输出信息,而只能使用(填空1)。答案:(printk())
8. 完善EduKit-IV实验箱中模数转换的应用程序,实现0~3.3伏电压的测量。
fd = open(/dev/adc,O_RDWR);
#include stdio.h
┋
#include adc_test.h
int main(int argc, char** argv)
{
int fd;
int buf;
float result;
struct ADC_DEV adcdev;
while(1)
{
{
adcdev.channel = 0;
adcdev.prescale = 49;
//文件写,对adc驱动进行写。
write(fd,adcdev,sizeof(struct ADC_DEV));
read(fd,buf,sizeof(int));
result = buf*3.3000/0x(填空1,十六进制);
printf(ADC Channel %d data = %0.4f \n,adcdev.channel,result);
usleep(1000*500);
}
}
close(fd);
return 0;
}
答案:(3FF)
9.完善下面EduKit-IV实验箱中模数转换的驱动程序。
static ssize_t adc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
{
int data;
unsigned long tmp;
int channel = MINOR(((struct cdev *)(file-private_data))-dev);
tmp = readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START | S3C2410_ADCCON_SELMUX(channel);
writel( tmp, base_addr+S3C2410_ADCCON);
do
{
tmp = readl(base_addr+S3C2410_ADCCON);
}while(!(((unsigned int)tmp)(填空1,十六进制)));
//read data
data = readl(base_addr+S3C2410_ADCDAT0) 0x3ff;
if((填空2)(buf, data, sizeof(int)))
return -EFAULT;
return (sizeof(int));
}
答案:(0x8000)(copy_to_user)
10. 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。可以通过控制(填空1)(中文)来控制角位移量,从而达到准确定位的目的;同时可以通过控制(填空2)(中文)来控制电机转动的速度和加速度,从而达到调速的目的。
答案:(脉冲个数)(脉冲频率)
11
文档评论(0)