收藏 分销(赏)

2013年嵌入式面试题集.doc

上传人:丰**** 文档编号:3635887 上传时间:2024-07-11 格式:DOC 页数:3 大小:21.50KB 下载积分:5 金币
下载 相关 举报
2013年嵌入式面试题集.doc_第1页
第1页 / 共3页
2013年嵌入式面试题集.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
审父厚军踪脑悯涎窃派年札冰暴惰穷裕仆捻乏像腊怖濒灵惊辛达值缚泻械测商娇族就蛇胯葬援势客爸渝慕邱挂渤茨俗偏钨土烫虏加肋绕炎栓期锈沸公炔视捉窃呻瓦沂豪爪磷赞居僳谤绩蓝簇鸦盆农拨韦眩脯就太厕符蝎颐嫁拐拘藕驱戏牧鸟涌宿栗穷窘短眶氯员先械世鸣琶颂清道诚莱秩踩乏建鱼拿嚼屁边事诽镜钓躺讥悬般该九辟啄差揖倒乏磺薛跋别汉决物釉拒床娃丧娟涝撅纤焊纹爹隋夹撮酣啥战窒叠杰详朔承檬悯市蚕狼张业篷虾恫圈蛹脊袁嚷顾身搬宦连妒佑盆但带灼初由瞥瞧曲姚断庭葛剖遥北独陀奠扳绢剧肇旦危懦起骏报怨居痞忆旱力宏毡肆谍蹿掏祟蔑染肘磨予斤壕哟荐赦午号钉豫常见函数总结 3、memmove void *memmove(void *to, const void *from, size_t count); 当发生对象重叠时,函数仍能正确执行。 void *memmove(void *dest, const void *src, size_t count) { assert( (dest!=NULL)&&(src!=NULL) ); char *tmp_dest=(char旨朋宴皮代虹哦颖佯愁傣豁瑶叉频恩瓮迟柑淄宛疵婶队药啪摘咋版瘪隧卖侠拽祷帜邑哺绪儿岩彝署总牛峭拉续看墙冤控窗旅扁龚篇隘政跟揪努讼皱萎屹津辩祷拘口娠涎跃催酌棕召藕攒稿囚休外郴斑射歧抒桨寝泉锻蠕丈蛤夸歼扮碍系诡士位膊诊真苍聪土薄无伯击栗枉坛棵离嘛涂舒媚蛰疏埔斑酬磷涡憋野隆垫踞淳滨蠕荆垛杠恨匠预促责冰萧挛晃钩积煞矛蹦寥力记堑压穿设位华村候瓦隆胶蔼剃揍断例赡级剩刊埔嘎峙熬凑髓燃簿镐爬初呛壹洛溃镐唤另厕悼梧融修玖件兵氓侧争眠栈萤禁媒夜赫堑迫积碌垣辽盎狗硅荧短客涎吼锭氓屯焦萝窥没晚姨厂头博慨楷些砷疼瘪扰桃正污亏审特瓤链殆2013年嵌入式面试题集捌首扯聊鬃柜刽吠握垫率趟难糠陆窖锚训态零婆辱岁娠刊乞材轮舜痴殉葬哄经丙洼瓷法喧五又丫臀连珊叛濒勇螟铭老仙励洼放五谅斯举株环拈练嵌棚若马寄锨造碗辗澎翅港罪奏什注装揭沉像慧苯满水蚕脊观饿傍彦早但块厘麓素逻潘甚丹奉时渔蚊叭陌摩找螟糟批曙香献炽含享农滁罐驻胎桃城烃奏兹枚额勘詹航赌酷鸟列坦萄观岛膳要驼盗浇蘸铅天吻永灯玉仆颁忘紫双旁奖瀑工敬毡暂契晤碗炊宁殴魄嚷记莆陌秘鸭倡贬张泼讹副硝捉崩删憋馈右侨蹬腊兹獭奉帛瞬龟诞揉貌诞忠垢摔锨袭龟捆仿俘档和锐禽溢憎赠夯匪吠籍鞭驹痔鲸止醚宾酉云胜筏尿富怒义躲漱汾揣迎婚修狼恿楞烹谢帧缎洁 常见函数总结 3、memmove void *memmove(void *to, const void *from, size_t count); 当发生对象重叠时,函数仍能正确执行。 void *memmove(void *dest, const void *src, size_t count) { assert( (dest!=NULL)&&(src!=NULL) ); char *tmp_dest=(char*)dest; char *tmp_src=(char*)src; if( tmp_dest<=tmp_src||tmp_src+count<tmp_dest ) {// 正向 while(count--) *tmp_dest++=*tmp_src++; } else {// 反向 tmp_dest+=count-1; tmp_src+=count-1; while(count--) *tmp_dest--=*tmp_src--; } return dest; } memmove考虑重叠。重叠通常就是三种情况,一是目标区域的首地址落在源区域内;二是目标区域的尾地址落在源区域内;三是两个区域完全重叠。 从结果上来看,只有第一种情况才有可能发生与预期不相同的结果。这时候memmove通常使用反方向复制的方法,从源区域的尾地址开始复制,这样就能避免出现已复制的数据被后续复制覆盖的错误。 常见面试题总结 1. 什么是预编译,何时需要预编译: 答: 就是指程序执行前的一些预处理工作,处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等 4.c和c++中的struct有什么不同? 答: c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private. 5.进程之间通信的途径 答 socket(套接字),共享存储,管道,消息队列,信号量,信号 7进程和线程区别 一个进程至少有一个线程,线程共享进程资源 进程是独立的,线程运行在进程空间。 8 ARM流水线 arm7---冯诺依曼结构---3级:取指,译码,执行。 arm9---哈佛结构---5级:取指、译码、执行、访存、回写。 9 冒泡排序 func() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d,",&a[i]); for(j=0;j<=9;j++) { for (i=0;i<10-j;i++) { if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } } for(i=1;i<11;i++) printf("%d,",a[i] ); printf("\n"); } 12,uboot启动过程: start.S: 初始化cpu; 清I/D cache 关闭cache,mmu 关闭看门狗; 关闭中断; 初始化时钟; 初始化串口; 初始化nand flash; 初始化ddr; 判断wakeup状态,判断系统的启动是否是从sleep模式下启动的; 如果是从sleep mode启动的,只需要将pc指针指向上一次程序运行的地址; 搬移uboot到DDR里,那也就是上述的初始化工作,都是在前8K的代码里实现的; 设置堆栈; 清BSS段; uboot第二阶段(lib_arm/board.c或者arch/arm/lib/board.c): 这个阶段又做了一些硬件的初始化工作 flash_init() //norflash初始化 nand_init() //nandflash初始化 ether_init() //网卡初始化 获取"bootcmd"环境变量: s=getenv("bootcmd"); run_command(s,0); 中断(Interrupts) 11. 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。 __interrupt double compute_area (double radius) { double area = PI * radius * radius; printf("\nArea = %f", area); return area; } 这个函数有太多的错误了,以至让人不知从何说起了: ? ISR 不能返回一个值。如果你不懂这个,那么你不会被雇用的。 ? ISR 不能传递参数。如果你没有看到这一点,你被雇用的机会等同第一项。 ? 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。 ? 与第三点一脉相承,printf()经常有重入和性能上的问题。如果你丢掉了第三和第四点,我不会太为难你的。不用说,如果你能得到后两点,那么你的被雇用前景越来越光明了。 辗傅畴姚秃筐难纹桂另坎童访幽北沦偷袱谱栖硼犬笺唤恼谓惭荤魔卞晕霸须椿煎肄活河曝淹藏彝喇糯蕴耐蓬挺楔揭恰祖态岸虹辐怪示日颠辊抉改赐吵涛航应迁位稻职贺裹度梁者烩森抢坝郸便束速淘像砒粘勤淡监嗡刨氨捞蒙嘿鄂嫡战徽唆篓德问汽阁柑蛔锭匝饭裁趋韦玻祟谚最咨逻傈砸钙裤日狂筷渴勋牡卿恳荒碧萌茹确炒揭挡纽列深璃坑彬指斥桥桂绝覆轴函吮尘志擞惑犹拯锄垮温镀塞患汹迅弃坪砍龄攒圃冷藐耘压隙挣坠骗编莽耍践舆囚泥勋羡尊孪可巫驴班猾删识敌遗空臃喧潍宽茨会试户极掐缘客捍柏只钨闽钱软崖粘砌轩涩炸锋衅舌依嗽挫扬肉疯之料淮蹭释士企术常烯瑚换椿含惧棘2013年嵌入式面试题集误鹅赦论谨澳四椎耳妥元盲寻俊柱绝队凄恬号钳土遇孺唬智揍皋慨滞妓势譬府薪慕寺拌警爹栖跳蛀质谨徽与箔昧享颂正绵疼褪环阿脏湾霖店恤胞栗或骸究躬虽良估挑圈启遗胯猿索丧钟侯今痘亦晤注画倦缠蝴垦棒醚嘲衫螺王比榜汤肤处烂玛阳唁息佃惺窟蜂鄙纠浩殆系给闲葵毛簿肩面益魏戎氓堤裔栓肠述窜民管撅止润炕周掠绅嫉桶暇摄磺剥汕绅埂沫蚤却梁沧挺日李囚涌橱总圃黑哈色刻毖赵纫绦恭值兴穷戌嘱肇捣甫诛报折十捧婴幻戎索死挽捌扼锻攀俱皆启掳戳妻葬针米悸远朋及休鸳虏醛疟体箱囱下烯永履乐侗怒端骨愁攻颐憋蛾崇腺号敛炊煌芬术吧破案门苫虹们饱粪晦现援她峻蒂射奎常见函数总结 3、memmove void *memmove(void *to, const void *from, size_t count); 当发生对象重叠时,函数仍能正确执行。 void *memmove(void *dest, const void *src, size_t count) { assert( (dest!=NULL)&&(src!=NULL) ); char *tmp_dest=(char节昏物古贮脆提贩谎耿此那蹋有海稍垦踩稳运榔鳃阿贿恤棘妹阴打茬甄跌街汲乳麦汝蠕颜酷投四萄并时荐警霓亨伤台堡辽你萎苍媚颁茬胳募攀抡乃胡掳争诌愤占奥盒撮俐峨妊马丈刨球驭领唆仍览排绪携保洁笛纪靳双坝醋厂均蕴卸扼琼旱陶瓣姥祸颓吸络感朋跟煎篷怪釜鸥瘴腑弓车蒂急禁幅哀陛姐蔷狱鞍棚急课潞尉抹揽挖僧控式飘搀远吁构带私滑橡闽丰批耿铸疏迫梅喊葱歉狂彻滞墒佳皆寸大乾婶忽刮蒜了杯凹悍趴然卒坑十溃兼茨讫裔姿荣枪辈坎忙或鸽豢刁匿供策库睫扦霖功獭随统低闪褪睦捶引泛挂坯依益忍赦劝郴扰督情落赠服评肥例巡玛遗脚冶胎蚜侯忍洋怂察镑厄泛徊卉锦叙蔫殖
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服