如果再来一次,我依然会攥着开发板选嵌入式!

#如果再来一次,你还会选择这个工作吗?# 我选我会选择这个工作,因为家人们,每次改bug到凌晨,看着屏幕上“程序运行成功”的提示时,我都能笃定——再来一次,还是会扎进嵌入式的世界里。刚实习时也崩溃过:调传感器时序卡了三天,连做梦都在画时序图;第一次独立写驱动模块,因为一个寄存器配置错了,让整个开发板“罢工”,被导师笑着说“年轻人要学会和硬件‘好好说话’”。但当我终于搞定代码,看着设备精准采集到数据时,那种成就感,比买到新开发板还开心。如果再来一次,我依然会攥着开发板选嵌入式!现在跟着项目做物联网设备,从画PCB板到写应用程序,每一步都在解锁新技能。虽然偶尔会被bug“虐”,但想到自己写的代码能让设备跑起来,那种“亲手造东西”的踏实感,真的没法替代。
如果再来一次,还是会毫不犹豫奔向满是电阻、代码和开发板的日子——毕竟,谁能拒绝和硬件“打交道”的快乐呢?
全部评论

相关推荐

1、上午9-12点:接上回,跑板子调试之后发现结果依然不足预期,继续打开日志排查:对比代码改动前后的日志发现问题所在,DSP的dmem内存后半段数据对应不上。2、下午两点:针对上午发现的问题进行分析,仔细检查了数据处理的整个流程,还是没查出问题。果断向主管求助,主管帮我检查了两遍代码以后,最终发现一个极易忽视的错误,dmem的地址类型应该由uint32_t*类型强制转换为uint8_t*类型。原因如下:根据手册,LENC加速器选择调制阶数小于10(<1024QAM调制阶数),且对齐时,此时LENC将每个调制符号对齐到一个单独的字节当中,因此,此处需要的一个单独的字节,而不是4个字节。至此,问题解决(对于以上错误,确实没考虑到LENC的输出格式,因为DSP核上的代码改动不涉及LENC部分,就没有看手册上的解释,导致迟迟排查不出,幸好有一位高级工程师,不然真得卡死了)。3、总结:本次项目的业务背景是基于ARMv9的多核SoC,将从MAC层接收的pdsch有效载荷信息经过LENC编码后生成比特级信息保存在SMEM中,进一步通过idma将比特级信息搬运到MDAB(dsp)的DMEM中进行处理,处理过程包括调制(比特级数据调制为符号级数据)、层映射和预编码。但目前SMEM内存不足。针对上述问题,采用将LENC生成的比特级数据保存在DDR中,再通过dsp切片的形式将数据搬运到DMEM中进行处理,以减小SMEM内存占用,同时保持传输效率。结果:减少了SMEM内存占用1434KB。最后,给粉丝朋友答疑:上述分享的东西也是嵌入式,准确来说属于行业专精知识,而所谓的嵌入式只是基础,公司内部更喜欢称为平台,比如说SoC就是实现业务功能的平台。因此如果是刚接触嵌入式学习的同学,请务必先打好基础,再去学习行业专精知识,这才是每个行业的门槛或护城河;而单片机、rtos、c语言、linux等这些知识,只是基础,不是门槛。之前我在《嵌入式学习路线完整版》这一笔记里边也提到过类似的话,因此你要有时间,mcu+rtos和linux,你都要学习。并且不管你走哪个方向,基本的linux使用以及编译环境必须要会。如何学习基础知识麻烦看第一篇笔记。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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