底层驱动面试题.docVIP

  • 67
  • 0
  • 约1.3千字
  • 约 7页
  • 2017-07-01 发布于重庆
  • 举报
底层驱动面试题

笔试题 1)请下列实现的功能 write(fd,0xf0000000+start_addr,size); 2)列举几种任务间通信的方式 3)不同的处理器,其数据存储分大编写一函数,实现大小端数据转换big_val的小端值。 函数原型unsigned int switch_big2small(unsigned int big_val); 4)请把地址0x300000c处的32bits数据的第18位开始的7位设置为0x35 5)有三个油瓶,标号a,b,c,在装满时分别能盛7两、4两、3两油。现在a瓶中有7两油,假设在倒出倒入时油可以全部倒出。只使用三个瓶子,请倒出2两油。写出操作步骤。 6)#define st16554_REG_WRITE1(pChan, reg, data) \ *(volatile unsigned char *) (pChan-regs+reg ) = \ ((unsigned char)data) 指出上述宏定义中的不严谨的地方。 7)写出NOR flash,NAND flash的主要差别。ONENAND flash与NOR flash、NAND flash相比,有什么优点? 8)如何使得执行过程跳转到绝对地址0xfff00000处?请实现 9)阅读下列代码: typedef struct hsmmc { unsigned char res1[0x10]; unsigned int sysconfig; unsigned int sysstatus; unsigned char res2[0x14]; unsigned int con; } hsmmc_t; #define OMAP_HSMMC_BASE 0xe6000000 static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC_BASE; 请问 mmc_base- sysstatus 的值为: 10) 图1 如图1所示的SDRAM示意图。地址线分别是LADDR1…LADDR13,数据线分别是LDATA0…LDATA15.执行如下语句往内存地址0x8600处写入数据0x5 *(unsigned short *)0x8600=0x55ac; 执行上述程序时,地址线有哪几位为1? 11)该函数执行后打印结果 printf(%s,123456789+3); 12) 将整型数换为字符串,函数原型如下: char * itos(int val);请写出具体实现,注意效率。 面试问答题: 1)有两个巨大的数a,b,每一个都无法使用long甚至long long类型存储,一般的,常用思路是 把两个数分别存储为字符串的方式。请问,如何实现a乘b?数据是否有其它的存储方式? 2)移植完驱动程序,发现代码不工作,如果是你,你会怎么debug? 3)还记得你小学给你印象最深刻班主任的名字吗? 以上是我公司招聘时笔试和面试题,笔试部分时间为1小时。分享出来,答案可以联系我得到。

文档评论(0)

1亿VIP精品文档

相关文档