华声医疗技术面
问了很多RTOS相关的
Systick中断具体做了什么
任务切换具体实现
内存管理部分原理
如何考虑任务栈分配
任务TCB构成
DMA UART CAN 八股
不记得了

这家公司咋样啊?
全部评论
去了吗
点赞 回复 分享
发布于 2023-11-09 18:20 广东

相关推荐

经常看见粉丝朋友问在哪里才能找到不烂大街的项目,今天笔者来分享一下如何寻找。以下为个人看法,仅供参考。一、b站b站大学里边有许多项目,可以按照关键词搜索。如搜mcu   rtos项目;不过个人觉得能写在简历上的项目很少,很多智能家居和小车,因此不太建议去该平台寻找。二、Github作为全球最大的开源社区,github里边的开源项目丰富且质量较高。大家可以在里边搜寻开源项目进行复现,但大多数人不知道怎么进行检索,可以按照如下方式:输入"in: description stm32 language: stars:>100 pushed:>2020-12-01”。按照上述方式,可以检索出描述里有stm32,编程语言为c语言,收藏数>100并且更新日期在2020 年12月份之后的项目,这样就能大大提高检索效率。但github上边项目缺点是复现难度大,难度在于开发文档不详细、代码难度高等;同时,大多数好的项目需要实现一个真正的产品,因此通常需要机械结构知识,进行实体制造,外壳封装等,这会导致复现周期加长且需要学习机械或者3D打印知识。因此,可以综合考虑以上因素,在github上选择适合你自己的项目。三、由企业举办的公开赛事官网或课题组项目这些官网里边通常会出现企业命题,会告诉你要做出一个什么东西,会有一个比较宽泛的需求给到你。这些需求说不定就会给你创造出做项目的灵感。课题组项目是可遇不可求的,如果感觉课题组项目和你以后想去的行业方向比较接近,那你就可以将你的课题组项目与你想去的行业多结合起来形成一个新项目,并实现出来,拿去写简历,这也是很不错的。四、复现身边的“老古董”和跨界融合逛逛电子垃圾市场或拆解旧设备(比如说复现且升级改造一个微波炉),逆向工程其硬件和部分功能,尝试用现代微控制器复现或升级改造,这本身就是个极具挑战且独一无二的项目。也可以把嵌入式技术和非传统领域结合,比如用嵌入式系统做艺术装置交互控制、结合生物传感器做健康监测小设备、或者给传统乐器加装智能反馈系统。五、咸鱼及小红书必要的时候,也可以选择知识付费。不过在筛选项目的时候需要考虑以下几点:这个项目是否烂大街、技术栈涉及哪些、有哪些亮点、能否复现成功、开发文档是否详细、是否提供教程和工程源码、电路原理图、接线图等等。总之一句话:需要确定是否能满足你自己的需求,这一点很重要!六、实习个人觉得实习是最优解。如果你能看到公司的产品,尽量把它复现出来,哪怕简单一点。并且也可以写成自己的实习经历(哪怕没能做出来也要会吹,且写在简历上),增加优势。如果实在没能实习,则按照前边讲解的几种方法寻找项目。最后,如果有需要《STM32➕RTOS项目》、《嵌入式八股文合集》及《Freertos开发手册》等资料,也可以私信笔者获取。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
今天更新如何写简历中的项目经历部分,首先声明以下仅为个人看法,仅供参考,杠就是你对。笔者认为一个好的项目经历应该包含以下部分:项目介绍和核心职责(What)、关键动作(How)、量化成果(Result)。下边说应该怎么写,小白跟着步骤走即可。首先第一行应该写项目名称、独立还是合作开发以及完成时间;第二行写技术栈:这一部分需要凝炼出核心词,写出你都用了哪些技术栈、主控或者是外设等。比如Stm32,FreeRTOS,Bootloader开发,状态机设计等。上述部分写完了,开始进入正题,先写项目简介+核心职责(What):这里要一句话说清楚你用的xx芯片,主要负责啥(具体什么模块/解决xx核心问题),实现xx功能。比如写“开发基于stm32f103的xxx,主要负责xxx”,而不是写“实现一款智能xxx”。然后再写关键技术动作,怎么做(How)。此处要写3-5个具体技术点,说清楚你怎么做的,实现哪些效果,有哪些亮点。这里推荐分点写,比如1.调试iic接口读取xx数据,解决xx问题。而不是写用了iic,结束。2.在freertos下设计xx个任务,利用信号量/队列同步数据,而不是写在freertos下设计了xx个任务,结束。一定要注意写的技术点要“落地”!最后就是写量化成果(Result)。说白了就是数据!数据!数据!要说清楚你做的这些工作,有什么样的结果。比如写系统实现xx精度控制,任务响应延迟控制在10ms,固件升级成功率100%,已开源至xx,获得了2k+阅读量/收藏量等等。一定要有“落地”,也就是要有数据支撑,增强说服力。不然再牛逼的项目给你做了,表达不出来有什么用呢?最后的最后提个醒:现在都2025了,实在不会写简历,AI总会吧,把你写的狗啃项目扔给ds/GPT润色一下,总好过扔网上。本次分享就到这里,感谢大家观看。最后是广子了,如果有需要mcu+rtos项目的,可以私信笔者。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
一、学习方向选择以下仅代表笔者个人看法:嵌入式软件总体分为linux和mcu方向。这两个方向的应用场景不同,导致无法在同一份工作中既做Linux,又做mcu。因此,如果在时间不充裕的情况下,大家根据自身情况挑一个方向去学习就够了。mcu方向(也称为嵌入式软硬件方向)更专注于软硬件结合,也就是说除了软件部分之外,还需要懂硬件。如果在软件和硬件分的没那么开的公司,作为一名嵌入式软件工程师,不仅要自己写代码,还需要自己画原理图,画PCB。在软硬件分开的情况下,基本要求是要能看的懂电路原理图,这也是大多数转行者很容易忽视的点。linux方向由于岗位较少,通常需要驱动/内核/应用一起做,仅有部分公司或者原厂才会放出单一的岗位出来,如单独的linux驱动岗位,内核/应用岗位等,这个方向比较偏软件一点。但由于岗位较少,门槛也就稍微高一些。二、mcu方向学习路线0基础的同学建议按照步骤走(再次重申是个人看法,如果你觉得不对,就不要看下去了):1、掌握基本电路知识,重点主要为电容、电感及滤波电路,还有一个傅立叶变换(可以看刘陈版本的电路分析基础这本书或者是b站进行学习)2、模电(主要掌握二极管、稳压管、三极管、mos管、放大电路、运算放大器、反馈电路);笔者个人推荐的书籍是黄丽亚的第三版模拟电子技术基础,学完前7章就够了。当然,也可以选择其他版本的,看个人喜好。3、数电(主要掌握进制转换,反码补码、逻辑电路、触发器、寄存器、AD转换及存储器知识),推荐书籍为华中科技大学的电子技术基础(数字部分)。上述三步就是为了打牢硬件基础,能看懂电路原理图。4、接下来学习一款EDA工具的使用,不要再去学嘉立创了!企业里边只有三大EDA工具:Altium Designer/Candence/Pads,任意挑一个去学习。个人比较推荐学习AD,可以在b站上看凡亿教育的课程进行学习。5、学习C语言,个人还是推荐谭浩强红色的那本高校书籍,当然也有其他优秀课程,大家可以自行选择。C语言的学习是一个持续加深的过程,前期先掌握基础就行,需要学习的是前1-7章,第8章的指针变量/数组指针,第9章的结构体/共用体/枚举/typedef。6、学习stm32,不要再浪费时间去学51老古董了。个人推荐正点原子,资料很充足,按照资料学基本就够了。同时一定要学标准库,前期不要把精力浪费在学hal库上,hal库等后边自己看一下就行。学习方法是买一款开发板(F1/F4都可以),跟着资料一步一步学,掌握基本常用外设如串口/GPIO/定时器/中断/PWM/输入捕获/LCD/ADC/IIC/SPI/485/CAN/IAP等。ps:学习过程中不要只看,一定要做!看懂了不等于你掌握了,毕竟实践是检验真理的唯一标准!7、做完上述步骤,恭喜你已经打好基础了,进一步继续深入学习c语言的提高部分,把前边说的第8章的二维指针/数组指针/指针数组等等指针的高阶用法掌握,以及动态内存分配函数等;还有第9章的链表;此处笔者推荐看人民出版社的c和指针一书,进行c语言的加深学习。这本书需要掌握如编译的底层原理/指针的高阶用法/递归函数/单向或者双向链表/预处理器等。8、完成c语言的进阶学习之后,开始学习stm32内核,这里推荐看CM3权威指南这本资料,主要看前9章内容,至少要知道寄存器组/PendSV/SVC/systick定时器等,为学习RTOS打好基础。9、开始学习RTOS,自行挑选一款rtos进行学习(ucos/freertos/rt-thread),笔者是同时学了ucos和free,个人比较推荐从ucos学起(也是正点原子的资料),毕竟资料比较多,底层原理讲的比较细,比如任哲老师的嵌入式实时操作系统原理及应用就是以ucosii进行讲解的。当然大家也可以选择其他的,这个阶段建议还是多看资料,少看课。因此笔者并没有什么推荐的课程。ps:到这一步要开始做32和rtos的项目了,做完项目以后就可以去投实习/秋招,这个程度已经够找工作了。10、学习常用数据结构:数组/堆/栈/链表/树/哈希表/队列,图不要求掌握,树学二叉搜索树就够,在弄清楚基本数据结构以后再去力扣上进行刷题,比如要知道栈不仅可以用数组实现,还可以用链表实现。ps:这一步想进大厂必不可少,毕竟面试都是要手撕的!11、学习RTOS源码,弄清楚任务调度/任务通信/时钟及延时/内存管理等。为什么要先去学习数据结构再回来看rtos源码,就是因为其源码中包含大量链表和队列的使用,如freertos中列表与列表项中涉及到双向链表的插入和删除操作,这样才能看得懂源码。ps:到这一步已经够卷了,笔者觉得不用担心找不到工作了。接下来说的东西可以入职以后再进行学习12、其他通用中间件的学习,如网络协议(mqtt/lwip协议等),选一个进行学习。还有图形库lvgl/ewmin等,也是选择一个进行学习。学习方法也是找资料,我依然用的是正点原子。13、学习代码版本管理工具git的使用,需要掌握常用命令,如克隆,提交,上传以及创建分支等。学习方法笔者推荐是看官网。三、linux方向学习路线linux方向笔者还在摸索中,因此就简单说一下1、先学会使用linux系统,学会Linux基本命令使用,学习方法推荐b站尚硅谷。2、学习gcc、make工具链的使用及makefile脚本。3、学习c++,主要掌握面向对象特性,如类和对象/继承/重载/多态/封装/虚函数/智能指针/动态内存等。推荐书籍为c++ primer第五版以及菜鸟编程网站。4、Linux应用编程,如进程/线程、文件io、网络编程等。推荐资料--正点原子。5、学习QT开发,推荐资料正点原子。6、Linux下的裸机开发(推荐买板子学习,如imx6ull;掌握常用外设以及CortexA处理器架构),推荐资料--正点原子或者韦东山。ps:学习linux驱动需要有电路原理图能力。7、Linux驱动开发(结束裸奔,上操作系统了, 包括移植uboot/linux内核/根文件系统等、掌握Linux三大类驱动,包括字符设备/块设备/网络设备驱动),同时需要掌握GDB调试。可以看到嵌入式两个方向的内容都非常多,因此大家选一个学,找工作足够了。本次讲解就到这里,感谢观看!
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务