我毕业后的8年嵌入式工作

前言:

  • 2015年毕业,2016年工作到现在已经过了8个年头,借着征文,做个简单的回顾与总结。

  • 2015年从广州番禺职业技术学院毕业,学的是嵌入式技术与应用,我的下一届学弟学妹变物联网了,算是绝版专业了吧。出来后谨遵校训学以致用,就去找嵌入式软件开发的工作,并开始了我8年嵌入式开发的工作,根据工作的公司,我简单的分为了三个部分,A公司5年半,B公司一年半,C公司1年半。

  • A公司5年半。在2016过完年后,回到广州,找到了第一份正式的嵌入式开发工作,其实当时面试的时候,研发总监问我很多题我都没有答上来,我都以为没有希望的了,最后是总监给了我工作的机会,我还挺感激的,当时真的挺没有信心的,小白一个,很多东西都是略懂皮毛。不过我的试用工资是3000,转正是3500到4000,我在前三个月的试用中,还是很努力的,也很喜欢做一些工具的优化,当时是做linux应用开发,就是在机房监控主机里面,对接不同类型的设备,做协议对接,当时有个协议有个叫电总协议,要模拟调试这个协议,需要使用两个工具来做模拟数据,一个是控制台程序,一个是校验计算工具,我觉得很麻烦,也不利于调试,我就利用自己在学校学的QT4的皮毛,做了一个电总数据生成器,比原来的控制台程序输入更方便,还自动算校验,不需要另外算校验,还支持多数据类型的输入,做好之后,就推广组内使用,得到了总监的表扬,在三个月后的转正,直接给我拉满到4000的工作,那时候还挺开心的,在第二年的评奖,没有意外的获得了优秀新员工的证书和奖金,第二年的工资也涨到了5000.后续每年都有工资涨,也有很多新东西学,最初的linux应用开发,熟悉了机房设备的相关构造,熟悉了linux下的C++开发,还挺喜欢那个框架,告警独立进程,服务器独立进程,串口设备独立进程,底层服务进程直接,使用消息中心来做通知,共享内存了共享实时数据,还有appweb网页进程,里面跑的是PHP,底层和网页交互都是使用xml来共享实时数据,数据库来共享配置数据和历史数据。还有好玩的rcbox工具,其实就是仿照linux的busybox的做的工具箱。我们的常用命令都是通过链接的方式链接到busybox里面的。学了linux的交叉编译模式,有编译服务器和板子挂载调试。学了makefile和bash脚本,我们不同配置启动都会有不同的启动脚本,来辅助开启不同的进程,还有一个比较有意思的是守护进程,用的是一个运行脚本,监测目标进程,一旦进程意外挂掉,可以自动拉起来。也是很新奇的东西。我也喜欢CSV的方式来处理协议的查询数据和解析数据,代码可以做得十分通用,代码量少很多条件判断。后面还接触了单片机的开发,我看到了单片机可以通过linux升级外,还可以通过单片机升级单片机,就是把从机的编译后的文件,转为头文件,直接在主机里面编译包含进来,升级的时候直接发送数组数据即可,也是挺好玩的。还尝试做过安卓底层,那时候安卓一体屏的方案是安卓里面使用app,通过php吧底层数据推送给app显示的,想把我们的监控程序做进安卓底层,在这里也学会了SVN来管理代码,后面也做了嵌入式的小组长,这是我第一次有了所谓的头衔。这个就是协助新员工熟悉工作,组员有问题的时候,协助解决,我也做了很多文档,方便新员工快速适应开发,也进行了多次技术培训。后面公司分了一部分人做新能源充电桩,我又有了新的学习机会,我有学习了新能源的国标,也经历了软件重构的过程,是面相对象的的思维去做,也经历过芯片换代,自己从0开始做一个单片机程序。期间还去参加了软考嵌入式系统设计师,18年拿的证,然而并没有什么卵用,学了5年后,就想着去外面看看,提出了辞职。

  • B公司一年半。来到了第二家,这家是做GPS车载追踪设备的公司,我发现这个公司测试非常专业,有了硬件相关指标的测试,我第一家是几乎没有的,第一家测试基本都是纯黑盒软件测试。这家主要是做单片机的,我的linux几乎就没有用了,我但在这里加强了我对单片机的理解,这家我觉得比较有意思的是,单片机打包可以用批处理脚本,多次自动打包多个版本,这个公司学院打包三种包,2G一种,3G一种,4G一种,批处理脚本一键搞定。知道了,串口0不仅仅可以用来打印,也可以接受输入,作为命令输入的。这家还接触到了OPEN方案,就是基于模组的SDK开发,对于外设少的设备,可以考虑用open方案,来省掉一个MCU。还学习了4G模块的CMUX用法,就是一个串口可以复用为多个功能,比如短信口,语音口,数据口,做成多通道虚拟串口。转正后,我很快也是担任了小组长的角色,代表收集组内的开发进度,参加每周例会进行工作汇报,也对工作流程特别是研发的相关流程进行梳理。这个公司是做外贸的,销售的老大是外国人,我和老外除了简单的打招呼,基本都是WeChat交流,翻译功能帮我很多,但要注意一下,自己翻译的时候尽量检查一下,有时微信的边写边译功能是乱翻译的,一定要语句结构完整,省略主语啥的,最好不要,不然就乱翻译,很尴尬。和老外共事发现,老外都是能听懂散装英语甚至中文的,我见过,老外讲英文,工程师讲中文,都能无障碍沟通的。后面因为我个人原因想要更换到广州南沙,离开了这个公司。

  • C公司一年半,离开了天河,来到南沙,也来到了第三家公司,这家公司可以称之为毛坯,资料毛坯,上个工程师遗留的半成品代码(几乎不能用),没有任何设计文档和需求文档。人员毛坯,研发就我顶替了一个原来的软件,公司有一个结构,一个软件外包,一个硬件外包,测试也没有。工具毛坯,仿真器,服务器,工具都是我要求买的。系统毛坯没有SVN进行代码管理,没有研发OA流程,没有缺陷管理系统,我来这里是很大的挑战,也是我很好的实践场所,我首先,买了研发内网服务器,搭建了SVN服务器,搭建了禅道内网社区版本用于缺陷管理,简单的建立的研发到测试的测试流程和测试到生产的发布流程,资料都在SVN里面归档和设定权限。后续根据时间情况需要,为公司搭建了外网升级服务器,包含了http文件服务器和ftp服务器,还优化了SteVe OCPP调试平台。关于盗版软件的使用问题,我当起了网管,设置了内网路由过滤,研发电脑不允许出路由,均采用远程桌面的方式进行上网。也进行了多次技术培训,包括禅道,SVN等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/883100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

07 设计模式-结构型模式-桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得…

JAVA单列集合

List系列集合:添加的元素是 有序、可重复、有索引 Set系列集合:添加的元素是 无序、不重复、无索引 Collection Collection是单列集合的接口,它的功能是全部单列集合都可以继承使用的 public boolean add(E e) 把给定的对象添加到当前集合中 public void …

Spring MVC(下)

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 关注博主带你了解更多JavaEE知识 目录 1.响应 1.1 返回静态页面 1.2 返回数据ResponseBody 1.3 返回HTML代码⽚段 1.4 返回JSON 1.5 设置状态码 1.6 设置Header 2 . …

【文献及模型、制图分享】基于国际湿地城市视角的常德市湿地保护修复成效与归因分析及其政策启示

文献介绍 《湿地公约》提出的“国际湿地城市”认证是促进湿地保护修复的新举措。以国际湿地城市常德市为例,基于2000—2022年15 m空间分辨率湿地分类数据,监测常德市湿地保护修复逐年动态变化,定量分析湿地保护修复驱动因素的重要性和贡献率…

K8s中TSL证书如何续期

TSL是什么 K8s中的作用是什么? 在 Kubernetes(K8s)中,TSL 指的是 Transport Layer Security,也就是传输层安全协议。它是用来保护在网络上传输的数据的安全性和隐私性。 TSL 在 Kubernetes 中的作用包括:…

第1讲(ASP.NET Core 6 Web Api 开发入门):第一个Web Api项目

一、运行模板项目 二、验证模板项目的api 法1:直接在网页上进行验证api 法2:通过命令行验证api 复制下图的Curl语句,打开命令行进行粘贴。(对于windows系统,需要把换成",再去掉所有的/,最…

一文了解AOSP是什么?

一文了解AOSP是什么? AOSP基本信息 基本定义 AOSP是Android Open Source Project的缩写,这是一个由Google维护的完全免费和开放的操作系统开发项目。它是Android系统的核心基础,提供了构建移动操作系统所需的基本组件。 主要特点 完全开源…

【景观生态学实验】实验一 ArcGIS地理数据处理及制图基础

实验目的 1.掌握ArcGIS软件基本操作:通过实验操作与学习,熟练掌握ArcGIS软件相关的基本操作,包括界面熟悉、工具栏使用、数据的加载和保存、基本数据处理操作等; 2.掌握如何使用ArcGIS进行影像拼接及裁剪:通过实验操作与学习&am…

传知代码-ChatGPT多模态命名实体识别

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 ChatGPT辅助细化知识增强! 多模态命名实体识别(MNER)最近引起了广泛关注。 用户在社交媒体上生成大量非结构化内容,主要由图像和文本组成。这些帖子具有与社交媒体相…

GISBox vs CesiumLab:哪款GIS工具更适合你的项目?

在地理信息系统(GIS)领域,越来越多的用户开始关注GIS工具箱的选择,其中GISBox和CesiumLab是两款备受推崇的产品。那么,哪一款更适合你的需求呢?本文将从功能、使用体验和应用场景等方面,对GISBo…

产品如何实现3D展示?具体步骤如下

产品实现3D展示主要依赖于先进的3D建模与展示技术。以下是产品实现3D展示的具体步骤和方法: 一、3D建模 使用专业的3D建模软件,如Blender、Maya、3ds Max等,这些软件提供了丰富的建模工具和材质编辑器,能够创建出高精度的3D模型…

Python基于amazon/chronos-t5-base的预训练模型离线对时间系列数据的未来进行预测

Python基于预训练模型对时间系列数据的未来进行预测 导入库 %matplotlib inline import matplotlib.pyplot as plt import numpy as np import pandas as pd import torch from chronos import ChronosPipeline from tqdm.auto import tqdm from autogluon.timeseries import…

电脑定期运行某个程序

1、右键计算机-管理,点击任务计划程序,再点击创建基本任务; 2、写名称,下一步 3、选择任务开始计划,下一步 4、选择触发时间,下一步 5、选择启动程序,下一步 6、选择运行的程序,下一…

模型拆解(一):DBINet、GCPANet、CPD、ACCoNet、FPS-U2Net

文章目录 一、DBINet1.1编码器模块:ResNet50PVT双分支结构1.2解码器模块:自细化模块SR的应用1.3DFM:双分支融合模块1.4转换器模块:调整编码器输出至解码器中1.5深度监督损失函数 二、GCPANet2.1编码器模块:ResNet50主干…

uniapp移动端优惠券! 附源码!!!!

本文为常见的移动端uniapp优惠券,共有6种优惠券样式(参考了常见的优惠券),文本内容仅为示例,您可在此基础上调整为你想要的文本 预览效果 通过模拟数据,实现点击使用优惠券让其变为灰色的效果(模…

来自骨关节炎计划的膝关节MR图像的自动异常感知3D骨骼和软骨分割|文献速递-基于生成模型的数据增强与疾病监测应用

Title 题目 Automated anomaly-aware 3D segmentation of bones and cartilages in kneeMR images from the Osteoarthritis Initiative 来自骨关节炎计划的膝关节MR图像的自动异常感知3D骨骼和软骨分割 Background 背景 近年来,多个机器学习算法被提出用于图像…

windows|常见的文件伪装方法

几种常见的文件伪装方法: 扩展名伪装unicode字符伪装压缩包伪装隐写术 方法仅限于学习目的,不用于任何恶意或非法用途。 ———— 一、扩展名伪装:假装是另一种类型的文件 修改文件的扩展名,使得文件看起来像其他类型的文件&a…

python常用设计模式,单例模式和工厂设计模式

python常用设计模式,单例和工厂设计模式Demo 单例模式 单例设计模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。 应用场景:日志记录、线程池、缓存等 优点: 全局访问&…

洛谷题解 - P1162 填涂颜色

目录 填涂颜色题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题解思路代码 填涂颜色 题目描述 由数字 0 0 0 组成的方阵中,有一任意形状的由数字 1 1 1 构成的闭合圈。现要求把闭合圈内的所有空间都填写成 2 2 2。例如: 6 6 6\times…

python的散列类型与字符编码

文章目录 一、 初识散列类型(无序序列)二、认识集合集合的方法增删 二、认识字典字典方法增删改查 声明空变量 三、字符编码元组名() #声明一个空元组 一、 初识散列类型(无序序列) 数据类型分为3种: python的序列类型有好几种,之前的博文讲到了两种类型 1.数值类型…