- 博客(313)
- 资源 (17)
- 问答 (1)
- 收藏
- 关注
原创 嵌入式软件工程师笔试面试指南目录
嵌入式软件笔试,嵌入式软件面试,程序员简历书写,Linux驱动工程师笔试,Linux驱动工程师面试,BSP工程师笔试,BSP工程师面试,应届生秋招,应届生春招,C/C++笔试题目,C/C++面试题目,C/C++程序员,BSP工程师
2021-06-09 22:37:51
13545
3
原创 【技术交流群内容分享】
榜上有名希望有一天,你也能获得心仪的offer!真心为这些同学感到开心~20210430扫码加我微信备注【交流群】,拉你进群,无备注,不通过。干货分享20210430扫码加我微信备注【交流群】,拉你进群,无备注,不通过。...
2021-05-01 17:18:04
2930
4
原创 嵌入式软件工程师笔试面试指南-ARM体系与架构
嵌入式软件笔试,嵌入式软件面试,程序员简历书写,Linux驱动工程师笔试,Linux驱动工程师面试,BSP工程师笔试,BSP工程师面试,应届生秋招,应届生春招,C/C++笔试题目,C/C++面试题目,C/C++程序员,BSP工程师
2021-04-28 15:22:06
14976
15
原创 嵌入式软件工程师笔试面试指南-C/C++
嵌入式软件笔试,嵌入式软件面试,程序员简历书写,Linux驱动工程师笔试,Linux驱动工程师面试,BSP工程师笔试,BSP工程师面试,应届生秋招,应届生春招,C/C++笔试题目,C/C++面试题目,C/C++程序员,BSP工程师
2021-04-15 17:45:09
21685
7
原创 9个提高代码运行效率的小技巧你知道几个?
我们写程序的目的就是使它在任何情况下都可以稳定工作。一个运行的很快但是结果错误的程序并没有任何用处。在程序开发和优化的过程中,我们必须考虑代码使用的方式,以及影响它的关键因素。通常,我们必须在程序的简洁性与它的运行速度之间做出权衡。今天我们就来聊一聊如何优化程序的性能。
2021-01-10 17:28:38
4039
3
原创 24张图7000字详解计算机中的高速缓存
什么是缓存 缓存又叫高速缓存,是计算机存储器中的一种,本质上和硬盘是一样的,都是用来存储数据和指令的。它们最大的区别在于读取速度的不同。程序一般是放在内存中的,当CPU执行程序的时候,执行完一条指令需要从内存中读取下一条指令,读取内存中的指令要花费100000个时钟周期(缓存读取速度为200个时钟周期,相差500倍),如果每次都从内存中取指令,CPU运行时将花费大量的时间在读取指令上。这显然是一种资源浪费。 如何解决这个问题呢?有人肯定会问,直接把程序存储在缓存中不行吗? 答案是可以的。但是
2020-12-30 22:32:52
5168
14
原创 多图详解缓冲区溢出问题
蠕虫病毒是一种常见的利用Unix系统中的缺点来进行攻击的病毒。缓冲区溢出一个常见的后果是:黑客利用函数调用过程中程序的返回地址,将存放这块地址的指针精准指向计算机中存放攻击代码的位置,造成程序异常中止。为了防止发生严重的后果,计算机会采用栈随机化,利用金丝雀值检查破坏栈,限制代码可执行区域等方法来尽量避免被攻击。虽然,现代计算机已经可以“智能”查错了,但是我们还是要养成良好的编程习惯,尽量避免写出有漏洞的代码,以节省宝贵的时间!
2020-11-18 23:43:21
19463
27
原创 Linux内核中container_of宏的详细解释
上一节[拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)](https://blog.csdn.net/qq_16933601/article/details/108542631)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了container_of宏定义,今天我们来详细剖析下内核到底是如何求解结构体成员变量的地址的。
2020-09-24 00:27:54
5920
14
原创 拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)
在实际的工作中,我们可能会经常使用链表结构来存储数据,特别是嵌入式开发,经常会使用linux内核最经典的双向链表 list_head。本篇文章详细介绍了Linux内核的通用链表是如何实现的,对于经常使用的函数都给出了详细的测试用例,并且移植了Linux内核的链表结构,使得在任意平台都可以方便的调用内核已经写好的函数。建议收藏,以备不时之需!
2020-09-16 00:41:31
4957
27
原创 一道联发科面试题:printf 为什么可以传任意多个参数
大家好,我是仲一。联发科一面,面试官问了一个看起来很简单的问题:“printf 可以传 1 个参数,也可以传 10 个参数。它是怎么做到的?这道题表面考 printf,实际考的是 C 语言可变参数和栈帧。
2026-09-06 11:19:52
82
原创 三年换了四家公司之后,我终于想明白了跳槽这件事没那么简单
大家好,我是仲一。我有个朋友,三年换了四家公司。理由都很实在。第一家公司钱少。第二家领导不行。第三家项目说砍就砍了。第四家裁到他头上。他说自己运气差。但跟他吃了顿饭,我发现问题不在运气。换工作这个动作本身没错,但他每次都是同一个模式——先被什么东西惹毛了,待不住了,然后赶紧找一个看着顺眼的坑跳进去。进去了发现也有毛病,又开始熬,等下一个受不了的时候。他从来没停下来想过,自己到底想去哪。他只知道自己不想待在现在这个地方。我觉得这样的人挺多的。
2026-09-06 11:18:39
141
原创 三年换了四家公司之后,我终于想明白了跳槽这件事没那么简单
大家好,我是仲一。我有个朋友,三年换了四家公司。理由都很实在。第一家公司钱少。第二家领导不行。第三家项目说砍就砍了。第四家裁到他头上。他说自己运气差。但跟他吃了顿饭,我发现问题不在运气。换工作这个动作本身没错,但他每次都是同一个模式——先被什么东西惹毛了,待不住了,然后赶紧找一个看着顺眼的坑跳进去。进去了发现也有毛病,又开始熬,等下一个受不了的时候。他从来没停下来想过,自己到底想去哪。他只知道自己不想待在现在这个地方。我觉得这样的人挺多的。
2026-09-06 11:16:59
176
原创 大厂-芯片公司-初创-嵌入式第一份工作怎么选?
大家好,我是仲一。每隔一段时间就有人问我这个问题。聊得多了,我发现很多人纠结的不是"去哪家",而是根本不清楚这三类公司对嵌入式工程师来说,到底意味着什么。我自己三种都待过——最早在消费电子大厂做 MCU 开发,后来跳到芯片公司做 Linux 驱动,中间也在初创待过一段时间。三种类型各有各的好,也各有各的坑。写点真实感受,不一定对每个人都适用,但至少能让你少走点弯路。
2026-09-06 11:14:47
388
原创 干了这么多年嵌入式,我最后悔的几件事
大家好,我是仲一。整理东西翻出刚入行时的笔记本。上面全是寄存器地址、时序图、各种命令。翻了几页,那时候是真有热情,但有些事现在看,确实走了弯路。写下来算个记录吧。如果你刚入行或者还在读书,也许能少踩几个坑。
2026-09-06 11:10:42
234
原创 干了两年功耗优化,现在该不该转Linux驱动?
大家好,我是仲一。前阵子一个读者在微信上找我聊了很久,聊职业发展。他本硕双非,秋招进了一家手机厂做功耗优化,干了两年。最近很迷茫,不知道往哪儿走。
2026-09-06 11:07:00
151
原创 最能判断该不该离职的信号,和钱没关系
这些年陆陆续续有读者找过来,问方向、问简历,也拉我做过不少模拟面试。简历看多了,面试也面多了,所以职业怎么走、简历哪里不对、面试卡在哪儿,这些事我算是有点发言权。职业生涯里成长最快的那段日子,往往不是工资最高的时候,也不是职位最舒服的时候,而是身边恰好有一个人让你觉得"这人真行"。这个团队里,有没有一个人——不一定是他给我讲什么,而是看着他做事,我会觉得自己还有差距,还有东西可以学。是身边没有参照了,你不知道"好"是什么样,自然就觉得"差不多得了"。每次我调试卡住了,他过来看一眼,说一两句,我就能往下走。
2026-09-06 11:01:35
217
原创 perf 常用命令速查手册(建议收藏)
Linux 内核自带了一个性能分析工具叫 perf。它能做函数级和指令级的热点采样,也能配合 tracepoint 采集系统调用、网络事件、文件系统操作等内核事件。因为代码就在内核源码树里,算得上是 Linux 平台上最顺手的性能工具了。
2026-09-05 17:34:35
9
原创 前同事被裁后说了一句话,我记到现在
我见过有人干了五年,流程门清、业务也熟,但用的内核版本还是好几年前的,调试手段翻来覆去就是那几招。刚开始那段时间天天加班到很晚,有一次在实验室碰见他,他对着数据手册叹气,说这把年纪了还要从头学。但你仔细想想,你待得久,不代表你值那个价。你干活,公司付你钱,给你空间成长。每次面试都说希望能长期稳定发展,说得多了,自己差点也信了。走的时候赔了N+1,那家公司做手机方案的,行情不好,整个部门说端就端了。熬了大半年吧,有一天他突然跟我说了句话,我到现在还记得。他说,好险,要不是被推了一把,他可能还在那棵树上挂着。
2026-09-05 17:30:59
6
原创 /proc 下的内存信息怎么看
排查内存问题的时候,第一件事就是去/proc下面翻文件。Linux 内核在这里暴露了大量内存管理的统计信息。这篇整理了几个最常用的文件,以及每个文件里哪些字段值得关注。
2026-09-05 17:28:10
13
原创 排查了一周的灵异 Bug,真相是一个不起眼的类型转换
根因一句话:函数参数类型和实参类型不匹配。8 字节写入 4 字节的目标,多出来的字节肯定踩到旁边的变量。平时写代码,编译器的和-Wformat开关建议打开。如果有强制类型转换,特别留心两边的内存大小。常见踩坑场景:接口升级改了参数类型,调用方漏了没改用了void*做通用参数,传参时类型搞错头文件更新了,其他模块没重新编译遇到局部变量鬼畜改值的,先看看是不是指针类型大小不匹配。end往期推荐嵌入式Linux必读经典书籍嵌入式学习路线推荐一位读者逻辑清晰的提问机械转行嵌入式成功上岸。
2026-09-05 17:23:08
4
原创 刚入行选 MCU 还是 Linux?一个芯片公司驱动工程师的真实建议
想快速看到成果、喜欢跟硬件贴得很近,选 MCU。想长期薪资上限更高、愿意花时间啃系统原理,选 Linux。不管选哪个,三五年内把另一条路也摸一遍。嵌入式这个行业,只会一种是够用的,两种都会是稀缺的。嵌入式不像互联网,没有 35 岁一刀切的说法。但这个前提是你的经验在持续增值,而不是一年经验重复用了五年。你是做 MCU 还是 Linux 的?当初怎么选的?留言聊聊,给还在纠结的读者一点参考。
2026-09-05 17:21:42
72
原创 面试题: 三行fork代码-90%的人算不对进程数
大家好,我是仲一。不算 main 进程本身,一共创建了多少个新进程?对方想了挺久,最后给了一个数字。我问怎么算出来的,说不太清楚。这不怪他——这道题同时考两个知识点,漏一个就算不对。这道题是兆易创新校招笔试的原题。借它把 fork 和短路运算一次说清楚。
2026-09-05 17:19:11
52
原创 35岁的嵌入式工程师后来都怎么样了
大家好,我是仲一。前两天有个从互联网转来做嵌入式的朋友请我吃饭,聊起行业差异。他说发现一个有意思的现象:互联网那边聊到 35 岁,氛围特别焦虑,好像到了这个点就要被"毕业"了。但嵌入式这边,好像没太大动静。我说不是没有焦虑,是焦虑的东西不太一样。
2026-09-05 17:12:23
91
原创 想创业的一个读者,大家有什么看法?
在技术能力上,除了嵌入式软件(驱动开发、操作系统、内存管理、启动流程等)和自学过深度学习基础(MLP、CNN、反向传播等)之外,我还自学了PCB设计、射频基础概念、电路原理以及从原型到产品的流程。这位读者并不打算做大众化的这种产品,准备面向的是海外的这种注重自由软件、隐私、可控的极客市场,也就是移动端Linux加开源硬件的这么一个市场。我觉得这个方向是相对比较稳妥的。如果是我,我是一个求稳的人,我会先选择一份可以谋生的工作。在创业前期,其他的方面的能力,比如对市场的感知,产品策划,融资等都比技术要重要。
2026-09-05 16:43:53
159
原创 工作三四年后有些迷茫和厌倦了
工作只是工作,我不会赋予太多含义和使命,工作只是为了谋生而已。如果都这么考虑,生活可能会轻松一些。挣钱只是游戏,活着才是胜利,快乐才是真谛,健康才是目的。不管选择过怎样的生活,努力是一种态度。有人选择奔跑,有人选择躺平,有人在感恩,也有人在抱怨。记得电影《大鱼海棠》里有这样一句台词:“这短短的一生,我们最终都会失去,你不妨大胆一些,爱一个人,攀一座山,追一个梦。以上是个人的碎碎念,仅代表个人观点end往期推荐嵌入式Linux必读经典书籍嵌入式学习路线推荐一位读者逻辑清晰的提问。
2026-09-05 16:32:56
387
原创 钱重要还是工作领域更重要?
工作一年的迷茫,恰是「自我认知觉醒」的开始。薪资是生存的底线,技术是发展的上限,但两者并非绝对对立——有人在应用层做到极致,成为业务架构专家;有人深耕底层,成为技术权威。关键在于:拒绝「非此即彼」的二元思维:不把当前岗位视为「终点」,而看作「能力拼图」的一块;保持「动态选择」的能力:用持续学习让自己始终拥有「切换赛道」的资本,而非困在单一维度焦虑。职业路上没有白走的路,每一步都在为未来的某个节点蓄力,「趁年轻,多体验,没坏处,人生如戏,借境修心」。
2026-09-05 16:21:28
185
原创 从BSP工程师到架构师中间差的是什么?
大家好,我是仲一。做 BSP 也有几年了,经常有同行问我这条路该怎么往后走。先说一句:我不觉得每个人都要成为架构师。有些人一辈子写驱动也很快乐,而且写得好的驱动工程师在任何公司都是稀缺资源。但如果你想把这条路走得更远,想理解更大的图景,这篇文章可以给你一些参考。我在芯片公司做 Linux 驱动,这几年最大的体会是:从 BSP 到架构师,中间差的不是代码量,是视野。
2026-09-05 16:00:18
605
原创 面试老是挂,可能你没搞懂嵌入式岗位到底在考你什么
面试不是考试,不是表演,更不是求人赏饭。就是两个人在一个钟头里,互相确认值不值得以后一起干活。你值多少,看你解决多大问题;你进不进得去,看你能不能在这几十分钟里让人信这点。那些背了不敢用的花招式,收起来吧。我能替他分担什么?我能让他信吗?想通这层,嵌入式方向的面试就不再是让人手心冒汗的坎儿了。你早准备好了。去把这场对话开个头吧。你现在想起来,自己面试驱动岗最心慌的是哪一次?留言区聊聊。仲一做嵌入式已经六七年了,现在在某头部芯片公司做驱动开发,之前带过团队、也面试招过人。
2026-09-05 15:52:59
134
原创 别再光顾着海投了, 社招的offer很多是这么拿到的
大家好,我是仲一。前阵子,我和一个老同事吃饭。他刚换完工作,跳到一家更大的平台。我说你这offer怎么拿到的?他说了一句让我很有感触的话:不是我一家一家投简历撞大运撞上的。是我前东家的一个同事,一句话把我带进去的。我听完,越想越觉得这事值得写一篇。跳槽这件事,我们大多数人从第一步就使错劲了。
2026-09-05 15:25:13
260
原创 工作三四年后有些迷茫和厌倦了
工作只是工作,我不会赋予太多含义和使命,工作只是为了谋生而已。如果都这么考虑,生活可能会轻松一些。挣钱只是游戏,活着才是胜利,快乐才是真谛,健康才是目的。不管选择过怎样的生活,努力是一种态度。有人选择奔跑,有人选择躺平,有人在感恩,也有人在抱怨。记得电影《大鱼海棠》里有这样一句台词:“这短短的一生,我们最终都会失去,你不妨大胆一些,爱一个人,攀一座山,追一个梦。以上是个人的碎碎念,仅代表个人观点。
2026-04-11 17:17:41
534
原创 双非进大疆,看看他是如何准备的(附大疆面经)
到了秋招阶段,则是开始对自己有更深的复盘剖析。整个过程中分可以为多个阶段吧,搜集信息、简历准备、笔试、专业面、主管面以及HR面。搜集信息:信息是非常重要的,投递简历宜早不宜晚,可以提前关注你想去的公司招聘公众号,有很多人有做了公司名单整理的。也可以稍微关注牛客,会有一些意想不到的收获。相比往年,我觉得今年的嵌入式秋招是难了很多,一方面很多公司缩招甚至不招(尤其芯片行业),一方面很多人转来嵌入式,一般都是海投很多公司,才有较少的面试机会,整体时间线战线拉的很长。
2025-06-01 15:41:39
2163
原创 2W字的秋招总结,教你如何从零开始准备秋招(想进大厂必看!)
我是Semon,本科就读于一所211院校的电子信息专业,之后保研本校,所研究的方向为嵌入式软开。iic配置,因为5640使用的SCCB协议,和iic差不多,所以就是通过5640的写地址0x78直接进行sccb寄存器参数的配置。因为是在linux下进行配置,所以需要对设备5640在设备树下对设备号进行初始化,并连接相关的驱动文件,之后在操作系统开机初始化之后就可以对相应内核进行配置,当我们的可执行文件访问5640时,就可以对他进行直接的初始化并调用它)
2025-06-01 15:39:21
1578
原创 大厂实习offer 拿下
总结:问的非常深入非常细节,深入到源码的理解,必须细致系统读过FreeRTOS的源码才能知道,对技术抓的很深,一直问到完全答出所有细节或者不会,这也是大疆的特点了。总结:面试官是那种很有亲和力的技术大佬,看起来很有技术深度,但又非常亲切,全程笑容,说话提问也很轻松,还会反过来给我的答案建议,不只是考察面试者,还会给予指导,这点我非常佩服。总结:面试体验很不错,面试官很温文尔雅,每个回答都会有回应和肯定,不清楚的问题也会慢慢引导,尽管方向不是很契合,也有部分技术栈不熟悉,面试官还是让过了,约了二面。
2025-06-01 15:30:18
662
原创 X-MACRO使用技巧
X-MACRO是一种可靠维护代码或数据的并行列表的技术,其相应项必须以相同的顺序出现。它们在至少某些列表无法通过索引组成的地方(例如编译时)最有用。此类列表的示例尤其包括数组的初始化,枚举常量和函数原型的声明,语句序列的生成等。X-MACRO的使用可以追溯到1960年代。它在现代C和C ++编程语言中仍然有用。X-MACRO列表元素的定义。扩展列表以生成声明或语句的片段。该列表由一个宏或头文件(名为LIST)定义,该文件本身不生成任何代码,而仅由一系列调用宏(通常称为“ X”)与元素的数据组成。
2025-06-01 15:26:53
1066
原创 钱重要还是工作领域更重要?
从你的经历来看,你在嵌入式研发、操作系统和驱动相关工作上有积累,也接触到通信链路层、解析层代码,这些经验是很宝贵的。目前被调去做 Linux 应用开发,虽然资源多、涨薪可能高,但你不感兴趣。你现在的问题本质上是追求技术还是追求“钱”的矛盾。看了你的介绍,工作一年有这种想法很正常。说明你自己对技术有很高的追求。
2025-06-01 15:20:13
462
原创 大疆实习面经分享
总结:问的非常深入非常细节,深入到源码的理解,必须细致系统读过FreeRTOS的源码才能知道,对技术抓的很深,一直问到完全答出所有细节或者不会,这也是大疆的特点了。总结:面试官是那种很有亲和力的技术大佬,看起来很有技术深度,但又非常亲切,全程笑容,说话提问也很轻松,还会反过来给我的答案建议,不只是考察面试者,还会给予指导,这点我非常佩服。总结:面试体验很不错,面试官很温文尔雅,每个回答都会有回应和肯定,不清楚的问题也会慢慢引导,尽管方向不是很契合,也有部分技术栈不熟悉,面试官还是让过了,约了二面。
2025-04-08 22:02:38
1871
原创 大厂实习offer 拿下!
大家好,春招说来就来啦!最近我可太有感触了,好多小伙伴都在疯狂准备面试,一心想拿下大厂 offer。前阵子,有个读者找到我,说想试试模拟面试,我就想着帮他一把。结果好家伙,这面试过程可太让我惊喜了!不管我抛出啥问题,他都能稳稳接住。我把模拟面试过程中的一些问题整理了出来,希望对大家有帮助。函数指针如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指。
2025-04-08 22:01:47
761
3
原创 【内存管理】页面分配机制
Linux内核中是如何分配出页面的,如果我们站在CPU的角度去看这个问题,CPU能分配出来的页面是以物理页面为单位的。也就是我们计算机中常讲的分页机制。本文就看下Linux内核是如何管理,释放和分配这些物理页面的。大家都知道,Linux内核的页面分配器的基本算法是基于伙伴系统的,伙伴系统通俗的讲就是以2^order分配内存的。这些内存块我们就称为伙伴。
2024-06-23 22:28:53
1378
原创 【内存管理】内存布局
反过来, 通过物理页面找到映射它的所有虚拟页面叫反向映射(reverse-mapping, RMAP),它可以从page数据结构中找到映射这个page的虚拟地址空间,也就是我们讲过的VMA这个东西,ramp系统是为页面回收服务的,如果要回收一个匿名页面或者page cache的时候, 需要把映射这个页面的用户PTE断开映射关系才可以去回收。刚刚我们讲的都是以页为单位分配的内存。这是为了保证进程在真正使用的时候有足够的内存,因为进程在申请内存后并不一定立即使用,当真正使用的时候,可能部分内存已经被回收了。
2024-06-10 13:12:11
1539
原创 【内存管理】内存管理概述
反过来, 通过物理页面找到映射它的所有虚拟页面叫反向映射(reverse-mapping, RMAP),它可以从page数据结构中找到映射这个page的虚拟地址空间,也就是我们讲过的VMA这个东西,ramp系统是为页面回收服务的,如果要回收一个匿名页面或者page cache的时候, 需要把映射这个页面的用户PTE断开映射关系才可以去回收。刚刚我们讲的都是以页为单位分配的内存。这是为了保证进程在真正使用的时候有足够的内存,因为进程在申请内存后并不一定立即使用,当真正使用的时候,可能部分内存已经被回收了。
2024-06-10 13:11:37
1354
SC2440u-boot-2012.04.01_07yaffs.rar
2020-05-04
u-boot-2012.04.01_04Nand_Operation.rar
2020-05-04
S3C2440_u-boot-2012.04.01_03Nor_Boot.rar
2020-05-04
S3C2440_u-boot-2012.04.01_05DM9000.rar
2020-05-04
u-boot-2012.04.01_02Nand_Boot.rar
2020-05-04
S3C2440_u-boot-2012.04.01_01New_Board.rar
2020-05-04
S3C2440_u-boot-2012.04.01_06DefaultParameter.rar
2020-05-04
019_nand_flash_016.rar
2019-08-25
TortoiseSVN 安装后桌面菜单右键无显示?
2019-10-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅