嵌入式软件工程师成长方向的思考

最近有点空闲,总结下嵌入式工程师所需要掌握的技能,及成长方向。

主体知识:C语言、数据结构 + 算法、linux系统 + linux网络、数据库 、内核编译裁剪+驱动开发调试

一、常用数据结构:

平衡二叉树
链表
栈/队列

C方向数据结构

二、linux系统:

常用的系统命令及工具

linux系统的堆和栈、内存分配、进程 (IPC)+ 线程(同步)+文件锁(读写)、分片机制、五大组件、中断和系统调用 、同步和异步等等问题。

堆和栈、内存分配:

https://blog.csdn.net/alimingh/article/details/110931455

文件锁锁:

文件锁可以进行很多的分类,最常见的主要有读锁与写锁,前者也叫共享锁,后者也叫排斥锁,值得注意的是,多个读锁之间是不会相互干扰的,多个进程可以在同一时刻对同一个文件加读锁;但是,如果已经有一个进程对该文件加了写锁,那么其他进程则不能对该文件加读锁或者写锁,直到这个进程将写锁释放,因此可以总结为:对于同一个文件而言,它可以同时拥有多个读者,但是在某一时刻,他只能拥有一个写者。

常用在读写文件时互斥控制,进程间互斥跟同步。

三、linux 网络:

OSI 七层模型和 TCP/IP 四层体系结构,TCP 三次握手与四次挥手、常见的网络协议(网桥、ARP、IP、ICMP、TCP、UDP、DNS、DHCP)、TCP 粘包、流量控制 + 拥塞控制、数字签名原理、http + https,http 的状态码,https 的安全机制,网络安全

四、数据库:

数据库作为存储数据的地方,其不同的数据结构、与应用的场景不一样,采取不同的数据库,对于 mysql 基本操作、写 sql 的优化、表的设计、索引优化、如何更快的查询、底层数据结构的设计原理等等问题。

五、C 语言:

对于 C 语言中的数组、函数、指针、内存对其模式、大小端问题、野指针、内存泄露、static、register、define、typedef、struct、union 。

六、内核编译裁剪:

文件系统移植、配置内核、编译内核 熟悉内核配置的各个模块的功能,完成内核裁剪

七、驱动开发调试:

由进程调度、内存管理、虚拟文件系统、网络接口、进程通信、字符设备、块设备、网络设备等知识的掌握。

 

上面知识都能掌握,恭喜你就成为一个资深的嵌入式工程师了,对上面的知识能够归纳总结,那离砖家就不远了;

上面我们如果分开发方向也会有侧重点,我们可选择的工作方向,linux应用层工程师、linux系统工程师、linux驱动工程师等等。

 

 

 

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值