嵌入式里必然是每个malloc都检查的,这个跟单元测试无关

473 篇文章 2 订阅
451 篇文章 7 订阅

在嵌入式编程里,malloc大多是重定义过的,不少系统里malloc都是从物理内存直接分配的,嵌入式Linux和普通Linux不一样。我说的这种情况是指嵌入式Linux只有内核的情况,运行在用户态的任务的malloc处理可以参考这个回答。

108a51bfd96b2df1354cf4344ab032d1.png

关于malloc失败的处理,肯定是要检查的,不检查malloc纯粹找死。

一般出现malloc失败的时候,都是一步一步回滚,给用户一些提示信息。通常操作系统内核会保留一小部分内存,用于错误处理。

或者有更粗暴的方法,重启当前失效的子系统/模块/驱动,但这种处理其实很糟糕,有时候会让用户丢失很多数据。

所以嵌入式里必然是每个malloc都检查的,这个跟单元测试无关。

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

ebda755bf5dbf8fc0c290fe84d3a5223.png

目前我所知道的,Cisco和H3C的交换机都是在内存不足的时候逐步回退失败的操作,然后给用户提示。有些交换机则是重启模块,但造成的损失很大。

因为malloc会产生碎片问题,所以有些关键的数据需要在初始化阶段就提前申请好,保证关键数据的内存在运行时一直是可用的。

通信专业,如果想要做技术,那么做研发、销售、售后、技术支持都是可以适应的,这样的例子也非常多。

做运维的话其实最好是毕业以后先做一段技术支持,因为运维对实践经验要求较高,比如配置服务器之类的,这些东西,不是在学校就能学到的,是要真正到实际工作中才能用的上,编程方面要懂一些,运维对shell编程要求较高。读研按说接触的不多,说实话工作中的东西在学校里都很难接触到。但如果有条件,读研是一个不错的选择。因为学历高对找工作来说实际上是一种帮助吧,尤其是女生。

a998ccca96ff1a01d6a32c92491e13e4.png

我认识的学通信的人,还在通信行业工作的大概有一半左右吧(注,这个比例不低了,我是计算机专业的,我们班级毕业七年到现在,还从事计算机相关工作的,也就一半),这些学通信的人,少量做了开发,有一些在做销售、售后,有些在做技术支持(大概在这一半人里的1/3左右吧)。

导师简历就不懂了,我没读,但我觉得动手能力比什么都重要。

先简单的说:

不一定非要嵌入式,只要是相关的专业即可,我周围的同事有:数学、软件工程、自动化控制、通信工程……纯计算机专业的不多,估计不到1/3吧(感觉上应该更少)。反而是我们班级毕业7年以后还做计算机的人不多。

补充:

真正有专门的嵌入式开发专业应该很少,我是没怎么听说过,我认识过的不少于200人的同事朋友里也没有从这个专业毕业的。所以计算机专业足够了。甚至如果自己能力较好,不必一定要计算机专业,相关的像软件工程、通信工程、自动化、数学、物理、电子商务、电信工程都可以做嵌入式开发。我见过最离谱的是本科学的是医学的,成为一个嵌入式开发的部门经理(从工程师做过来的)。

5c6e54f3f02e10717d58f96b7ea977ef.png

我前面把能力较好四个字加粗了,这里主要是强调编程能力(读写代码的能力),要真正达到熟练掌握C语言和Java的能力,二者至少要达到其中一个。同时,自己的兴趣要足够广泛,下至操作系统、汇编语言、计算机体系结构和组成原理、数字电路,上到计算机网络、基础算法、基础应用编程、数据库,这些都要有一定了解。

目前,国内嵌入式行业人才是供大于求的局面(尤其是低端人才),所以,据说,很多公司不怎么爱招本科生了,所以,要做好考研的心理准备,但如果本科足够牛,找到合适的工作也是可能的。但找工作和考研我认为是互相矛盾的,如果精力有限,记得在一个方向上努力,不要分散精力。

但如果只是专科毕业,那么与本科生竞争会非常困难,所以本科是必须的。

如果可以,最好在大学期间(本科/专科均可)作出点拿的出手的,易于演示的东西,哪怕不是嵌入式方向的,也没有问题。这些东西可以是一个中小规模的软件(5000行起步),可以是一个PC或者手机游戏(但不要是俄罗斯方块那种的),可以是一个集成某些特定算法、功能的应用软件。

42947eaa98934c2dc25a8dcce4bf2ef7.png

能想到的就这么多。对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取

9ebbcc1108c21de0f797eae86fa5708e.png

好了,这期分享就到这里啦,觉得对屏幕前的你有帮助的麻烦一键三连,点赞收藏加关注哦,有问题的朋友也可以在评论区评论,或者私信我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值