avatar-decorate
获赞
3540
粉丝
2532
关注
27
看过 TA
1.1W
山东大学
2022
嵌入式软件开发
IP属地:北京
暂未填写个人简介
私信
关注
头像
2023-10-31 11:17
英特尔_Software_engineer
1、讲一下stm32的时钟系统2、C语言中堆和栈的区别;推挽输出是什么?3、假如一个单片机上电之后不运行?这是为什么?4、举你用过的单片机的型号和它的一些主要参数5、一个温度传感器模块,按照正确的使用方式和参数指标,对人体皮肤测量之后,得到的温度一直都是35摄氏度,这是为什么?6、考一些结构体、联合体、sizeof方面的知识7、对c语言功底考察比较深入8、如果偏硬件的话会考察电路知识比较多9、请说一下51单片机的中断处理流程10、485有几根线11、串口和并口有什么区别12、堆和栈的区别是什么?13、传感器的输出引脚是高阻抗好还是低阻抗比较好14、局部变量和全局变量分别存放在哪里?15、c语言头文件的工作原理16、潮汐是怎么形成的?17、精度和分辨率有什么区别二、开放性问题:*该部分问题很简单,但是回答需要全面18、请问你对c语言的指针熟悉吗?19、const 这个东西 你来解释一下20、讲一下can21、什么是spi?22、iic熟悉吗?23、你会用Linux吗?24、你有没有写过状态机?25、你来说一下中断的处理流程是什么样子的?26、你用过什么传感器27、怎么选择是用51单片机还是STM32单片机28、如果让你设计一款系统,你会考虑什么?29、你更喜欢嵌入式软件还是嵌入式硬件?30、你对自己有什么职业规划没有?对于基础的知识性问题我已经总结到我的面经中,开放性问题还需同学们根据自身情况回答,后续也会出一个文章教大家怎样更好的回答这些问题。关注我的专栏,随时分享最新面经,专栏地址在下边!  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
头像
2023-10-30 09:57
已编辑
英特尔_Software_engineer
1.嵌入式系统中经常要用到无限循环,如何用C编写死循环2.程序的局部变量存在于哪里,全局变量存在于哪里,动态申请数据存在于哪里。3.关键字const有什么含义?4.堆和栈5.已知一个数组table,用一个宏定义,求出数据的元素个数6.写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。7.do……while和while有什么区别?8.什么是预编译,何时需要预编译?9.一个32位的机器,该机器的指针是多少位?10.局部变量能否和全局变量重名?11.引用与指针有什么区别?12.关键字static的作用是什么?13.static全局变量与普通的全局变量有什么区别?static函数与普通函数有什么区别?14.进程之间通信的途径有哪些?15.产生死锁的原因是什么?16.死锁的4个必要条件17.死锁的处理方式有哪些?18.进程和线程有什么区别?19. 线程是否具有相同的堆栈?20.TCP与UDP有啥区别?21.I2C最多可以挂多少个设备。22.递归函数定义没有问题,递归深层次后易引发什么问题?23.堆与栈的区别?24.循环控制条件关键字goto被经常使用,但是goto的使用场合为什么受到局限?25.循环控制条件关键字goto的使用场景有哪些?26.字节对齐的理解,什么是字节对齐?27.局部变量和全局变量可以重名吗?28.UNIX系统中fsync函数的作用?29.const关键字使用有哪些?30.内存布局中有哪些段?所有问题都收录到我的专栏中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
投递字节跳动等公司10个岗位
0 点赞 评论 收藏
分享
头像
2023-10-30 09:14
已编辑
英特尔_Software_engineer
1.嵌入式系统中经常要用到无限循环,如何用C编写死循环2.程序的局部变量存在于哪里,全局变量存在于哪里,动态申请数据存在于哪里。3.关键字const有什么含义?4.堆和栈5.已知一个数组table,用一个宏定义,求出数据的元素个数6.写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。7.do……while和while有什么区别?8.什么是预编译,何时需要预编译?9.一个32位的机器,该机器的指针是多少位?10.局部变量能否和全局变量重名?11.引用与指针有什么区别?12.关键字static的作用是什么?13.static全局变量与普通的全局变量有什么区别?static函数与普通函数有什么区别?14.进程之间通信的途径有哪些?15.产生死锁的原因是什么?16.死锁的4个必要条件17.死锁的处理方式有哪些?18.进程和线程有什么区别?19. 线程是否具有相同的堆栈?20.TCP与UDP有啥区别?21.I2C最多可以挂多少个设备。22.递归函数定义没有问题,递归深层次后易引发什么问题?23.堆与栈的区别?24.循环控制条件关键字goto被经常使用,但是goto的使用场合为什么受到局限?25.循环控制条件关键字goto的使用场景有哪些?26.字节对齐的理解,什么是字节对齐?27.局部变量和全局变量可以重名吗?28.UNIX系统中fsync函数的作用?29.const关键字使用有哪些?30.内存布局中有哪些段?31.volatile关键字的作用?32.sizeof()与strlen()的区别?33.内存泄漏和内存溢出是什么?34.定义一个指针赋值字符串与定义一个数组赋值字符串有什么区别?*35.malloc()与calloc分配空间有什么不一样?36.实现循环的方式?37.全局变量和局部变量在内存中有什么不同?38.预处理的作用是什么?39.编译器的作用?40. 字节对齐的两种方式以上的问题我都汇总到我的专栏里了,有需要的小伙伴可以订阅我的专栏,每天更新最新的嵌入式面经。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
投递字节跳动等公司10个岗位
0 点赞 评论 收藏
分享
头像
2023-10-26 13:16
已编辑
英特尔_Software_engineer
1,字符型驱动设备是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件?2,写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?3,自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能用?为什么?4,原子操作你怎么理解?5,nsmod 一个驱动模块,会执行模块中的哪个函数?rmmod呢?这两个函数在设计上要注意哪些?遇到过卸载驱动出现异常没?是什么问题引起的?6,在驱动调试过程中遇到过oops没?你是怎么处理的?7,ioctl和unlock_ioctl有什么区别?8,驱动中操作物理绝对地址为什么要先ioremap?9,设备驱动模型三个重要成员是?platfoem总线的匹配规则是?在具体应用上要不要先注册驱动再注册设备?有先后顺序没?10,linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些?11,linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化,高端内存概念?高端内存和物理地址、逻辑地址、线性地址的关系?12,linux中中断的实现机制,tasklet与workqueue的区别及底层实现区别?为什么要区分上半部和下半部?13,linux中断的响应执行流程?中断的申请及何时执行(何时执行中断处理函数)?14,linux中的同步机制?spinlock(自旋锁)与信号量的区别?15、linux中RCU原理?16,linux中软中断的实现原理?17,linux系统实现原子操作有哪些方法?18,MIPS Cpu中空间地址是怎么划分的?如在uboot中如何操作设备的特定的寄存器?19,linux中系统调用过程?如:应用程序中read()在linux中执行过程即从用户空间到内核空间?20,linux内核的启动过程(源代码级)?21,linux调度原理?22,linux网络子系统的认识?23,linux内核里面,内存申请有哪几个函数,各自的区别?24,IRQ和FIQ有什么区别,在CPU里面是是怎么做的?25,中断的上半部分和下半部分的问题:讲下分成上半部分和下半部分的原因,为何要分?讲下如何实现?以上会收录到我的专栏中点击下方专栏就可以看到!  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
投递中国软件等公司10个岗位
0 点赞 评论 收藏
分享
头像
2023-10-25 14:42
英特尔_Software_engineer
投递微软等公司10个岗位
0 点赞 评论 收藏
分享
头像
2023-10-25 11:25
已编辑
英特尔_Software_engineer
1.知道动态链接与静态链接吗?两者有什么区别动态链接和静态链接的区别:动态链接:在程序运行时进行链接,加载共享库文件。节省空间,可多个程序共享库文件。灵活性高,可以动态加载不同版本的库文件。维护方便,只需更新库文件本身。静态链接:在编译时进行链接,将库函数复制到可执行文件中。独立的可执行文件,不依赖外部库文件。可执行文件较大,可能会有冗余代码。维护复杂,更新库函数需重新编译和分发可执行文件。使用场景和优缺点:动态链接适合节省资源、可升级和灵活性要求高的场景。但在运行时有一定开销。静态链接适合独立部署和简化依赖关系的场景。但可执行文件较大且维护复杂。2.C++编译时和C有什么不同,在c++中怎么用c?C++与C在编译时的主要区别有以下几点:由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。语法和功能:C++相比C具有更多的语法和功能。C++引入了面向对象编程的概念,包括类、继承、多态等。此外,C++还提供了更多的库和工具,如标准模板库(STL)和异常处理机制等。3.为什么要少使用宏?C++有什么解决方案?在C++中,推荐尽量避免过多使用宏的原因有以下几点:可读性差:宏通常使用简单的文本替换机制,在代码中展开为复杂的表达式或语句,导致代码可读性降低。潜在的副作用:宏的使用可能导致潜在的副作用,比如多次求值、修改变量等,这可能导致意外行为和错误。缺乏类型检查:宏不进行类型检查,因此在使用宏时需要自行确保类型匹配,否则可能导致运行时错误。为了解决这些问题,C++提供了一些替代方案来减少宏的使用:使用const和constexpr:C++中的const和constexpr关键字可以用于定义常量,避免了宏定义常量的麻烦,并且提供了类型安全和编译期计算的优势。使用内联函数:C++的内联函数可以取代宏,以提高代码的可读性和类型安全性。内联函数在编译时展开,避免了宏带来的副作用和类型不匹配的问题。使用模板:模板是C++的强大特性之一,可以实现类型安全的泛型编程。通过模板,可以避免使用宏进行代码的泛化。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
头像
2023-10-24 22:17
英特尔_Software_engineer
1.(内存)堆和栈的区别⭐堆栈空间分配不同:栈由操作系统自动进行分配和释放,用于存放函数的参数值、局部变量的值等,具有高效性。堆一般由程序员手动进行分配和释放,效率比栈低很多。堆栈缓存方式不同:栈使用一级缓存,存储在处理器核心中,调用完成后立即释放,速度较快。堆存储在二级缓存或主存中,速度相对较慢。生长方向:堆:堆的分配方向是向上的,即向地址较大的方向分配。当堆需要扩展时,会向高地址方向增长。栈:栈的分配方向是向下的,即向地址较小的方向分配。当栈需要扩展时,会向低地址方向增长。生命周期:堆:堆上的内存在分配时并不会被立即释放,需要手动进行内存释放操作。堆上的数据可以在程序的任意位置进行访问,不受函数的调用关系限制。栈:栈上的内存分配和释放是自动进行的,随着函数的调用和返回进行相应的操作。栈上的数据只在特定的作用域内有效,函数执行完成后会自动释放。空间大小:栈的空间大小一般较小,通常最多为2MB,超过则会报溢出错误。堆的空间比较大,理论上可以接近3GB(对于32位程序来说)。能否产生碎片:2.在函数中申请堆内存需要注意什么⭐确保不要错误地返回指向栈内存的指针,因为栈内存会在函数结束时自动释放。避免在函数内部申请临时数组,因为函数执行完成后,该数组会消失。不要返回指向常量区的内存空间,因为它们无法修改且获取它们没有意义。使用传入一级指针无法解决问题,因为函数内部指针的修改不会影响传入的指针。在分配堆内存时,确保空间足够存储所需数据,避免访问越界和产生未定义行为。解决办法如下:使用二级指针来返回申请的堆内存的地址,通过间接引用来修改指针值,从而确保在函数外部能够获取到堆内存的内容。使用指针函数来解决问题,即返回通过malloc函数申请的堆内存的地址,这样可以在函数外部使用free函数释放该内存。3.请你说说内存碎片⭐内存碎片是指在内存管理过程中产生的未被有效利用的零散、不连续的内存空间。主要分为两种类型:内部碎片和外部碎片。内部碎片:是由于固定大小的内存分配方式或对齐要求等原因导致的未被利用的小空间。当分配给进程的内存块大于所需的大小时,其中的剩余空间就成为了内部碎片。外部碎片:是由于存在未分配的连续内存空间太小而不能满足分配请求,从而导致这些内存无法被有效利用。解决内存碎片问题的方法可以包括:  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
头像
2023-10-24 12:28
已编辑
英特尔_Software_engineer
注重实力,保持良好心态:秋招过程中,继续巩固好自己的技术栈,然后保持一个良好的心态,尤其是还没有Offer的时候,心态别崩,其实到最后大家都会找到工作的,唯一的区别就是公司的方向、规模、待遇方面,也别太在意别人拿到了牛X的Offer,尤其是牛客网,天天神仙打架,刚开始自己也是很纳闷,怎么就能这么牛,最后也都见怪不怪了~。好多之前一直没Offer的人,可能突然某一天就收获到了几份Offer,所以不断提升自己的综合能力才是关键,与其在这羡慕别人,不如让自己心态沉静下来,认真复习、厚积薄发。多交流,多思考,刻意锻炼表达:牛客网上有各种面经、面试经验,数不胜数,多去刷刷面经,和一起找工作的小伙伴们或者牛友们交流下面试经验、疑难问题什么的,收获也会很大的,也能放松自己紧张的身心。通过交流与思考要能总结出属于你自己的那一套正确的面试技巧,如回答问题的角度,如何更加全面的展现自己等,面试就是一个双向选择的过程,要让企业认同你,你就要有突出的地方,至少表达能力要很OK。我自己就经常模拟回答一个具体的面试问题,这个过程中就可以总结出回答问题的逻辑、层次、深度等技巧了,超级有用的。及时复盘,查漏补缺:每一场面试大家都要尽力展现出自己更优秀的一面,对于线上面试,自己都是有完整录屏的,就是为了能够之后总结面经、查漏补缺,对自己面试的真实表现也有一个完整的了解。对于线下面试,自己前几场面试都是开着手机录音的,之后复盘。最后因为一天要跑很多面试,就没录音了,面经就靠记忆写啦~。在面试过程中,大家肯定也会发现企业都会问到的一些面试问题,对于这类高频问题,最好自己总结下来,对以后的面试也是很有帮助的。我在文末将附上自己总结的面经题库。嵌入式面经专栏https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM #24届软开秋招面试经验大赏#   c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务