附答案底层驱动面试题.pdf_第1页
附答案底层驱动面试题.pdf_第2页
附答案底层驱动面试题.pdf_第3页
附答案底层驱动面试题.pdf_第4页
附答案底层驱动面试题.pdf_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

笔试题 1)请回答下列语句实现的功能 write(fd,0xf0000000+start_addr,size); 答案: 将地址 0xf0000000+start_addr 开始的 size 字节数据 写到文件 2)列举几种任务间通信的方式。 答案: 消息队列,管道,message channel,信号量 3)不同的处理器,其数据存储分大端模式和小端模式。编 写一函数, 实现大端转小端数据转换,返回值为 big_val 的 小端值。 函数原型unsigned int switch_big2small(unsigned int big_val); 答案: unsigned int switch_big2small(unsigned int big_val) return (big_val 24) 4)请把地址 0x6300000c 处的 32bits 数据的第 18 位开 始的 7 位设置为 0x35 答案: void set_data(unsigned char val) unsigned int temp; temp = *(volatile unsigned int *)0x6300000c; temp = (temp (*(foo) 0xfff00000)(); 考察对函数指针的理解和 typedef 的运用, 这种方法独 立于处理器,可在多个处理器平台上使用 9)阅读下列代码: typedef struct hsmmc unsigned char res10x10; unsigned int sysconfig; unsigned int sysstatus; unsigned char res20x14; unsigned int con; hsmmc_t; #define OMAP_HSMMC_BASE 0xe6000000 static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC_BASE; 请问 执行上述程序时,地址线有哪几位为 1? 答案: 注意是 SDRAM,所以地址线是递增式的 11)该函数执行后打印结果 A0 23 A1 24 A2 25 A3 26 A4 29 A5 30 A6 31 A7 32 A8 33 A9 34 A10 22 A11 35 BA1 21 nWE 16 nSRAS 18 nSCS 19 nSCAS 17 LDQM 15 UDQM 39 SCKE 37 SCLK 38 VDD 27 VDD 14 DQ0 2 DQ1 4 DQ2 5 DQ3 7 DQ4 8 DQ5 10 DQ6 11 DQ7 13 DQ8 42 DQ9 44 DQ10 45 DQ11 47 DQ12 48 DQ13 50 DQ14 51 DQ15 53 3 VSS 54 VSS 41 VSS 28 6 BA0 20 VDD 1 A12 36 LADDR2 LADDR3 LADDR4 LADDR5 LADDR6 LADDR7 LADDR8 LADDR9 LADDR10 LADDR11 LADDR12 LADDR13 LDATA0 LDATA1 LDATA2 LDATA3 LDATA4 LDATA5 LDATA6 LDATA7 LDATA8 LDATA9 LDATA10 LDATA11 LDATA12 LDATA13 LDATA14 LDATA15 LADDR1 printf(“%s“,“123456789“+3); 答案: 456789 12) 将整型数换为字符串,函数原型如下: char * itos(int data);请写出具体实现,注意效率。 答案:方法多种,注意考虑到 data 为 0 时需特殊处理 char * itos (int data) unsigned char i,j,value; char *temp = str; if (data != 0) while(data) *str+ = data%10+0; data /= 10; else *str+ = 0; *str = 0;/*得到字符串*/ /*倒转过来*/ i = strlen(temp); for(j = 0; j(i/2); j+) value = tempj; tempj = *(temp+i-j-1); *(temp+i-j-1) = value; return temp; 面试问答题: 1) 有两个巨大的数a,b, 每一个都无法使用long甚至long long 类型存储,一般的,常用思路是 把两个数分别存储为字符串的方式。请问,如何实现 a 乘 b?数据是否有其它的存储方式? 这道题是当年我面试华为时对方出的题,当时我想到了 用字符串方式存储并且实现乘法。肯定还有别的方法,能讲 得通并且能得到结果即可。 2)移植完驱动程序,发现代码不工作,如果是你,你会怎 么 debug? 建议:不工作或者有问题,太正常了,如果一下就工作 了反而不正常。

温馨提示

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

评论

0/150

提交评论