关于嵌入式软件工程师需要掌握哪些关键技能的随想

  1. 搞懂整个嵌入式系统软件从上电开始到Linux能够成功启动的所有细节:Arm-trusted-firmware-M 和 Arm-trusted-firmware-A,Uboot, Optee-OS, SCP Firmware, PSCI通信,Linux kernel启动流程及根文件系统挂载。
  2. 最好能掌握一门脚本语言:如shell或者python脚本,虽然不是必须,但是这种脚本的熟练使用,却能大大提高工作效率。
  3. 嵌入式系统中通用的外设的原理及驱动框架: I2C, UART, SPI, Nor/Nand flash, GIC, USB, DMA, Ethernet, PCIE, MHU, SD/eMMC,HDMI,UFS。
  4. 对Linux内核进行持续研究,主要是如下这些核心模块:内存管理,进程管理,中断系统,文件系统。对大多数人来说,这个过程可能需要6到10年,甚至更长的的时间,从一开始的入门到后面的持续精进,似乎永远没有终点,因为linux是非常庞大的,也是在不断变化的,所以,这个过程,可以说是学无止境。
  5. 对ARM32和ARM64芯片的架构进行持续学习与消化,如cache, interrupt, mmu, tlb, neon等的原理,只有理解这些硬件原理,才能对linux中一些与硬件强相关的地方进行深入的理解,跟前面一样,因为不断涌现出新技术,也是学无止境。
  6. 多媒体相关的驱动框架: V4L2框架,Display框架,RGB/YUV等各种视频格式的转换原理,了解一点视频编解码的基本原理, ALSA音频处理。
  7. 安全相关的软件:如软件加解密库MbedTLS, 硬件加解密引擎,了解一些常用的HASH算法/真随机数TRNG算法/对称加解密算法AES/非对称加解密算法RSA/ECC等,理解ARM trustzone技术原理。
  8. debug工具:arm ds-5仿真器使用,FPGA平台使用,反汇编指令,Strace, Ftrace,GDB等工具。
  9. 尽可能多地精读一些比较经典的开源软件框架,甚至尝试自己写一个开源软件,不要只看不写,也不要只写不看,即要看别人写的优秀框架,也要自己尝试动手写框架。
  10. 在调试真正的嵌入式软件过程中,要注意,一种方式是,搞清所有的细节原理再动手调试,另一种方式是,没搞清原理就开始动手,这2种方式最好结合起来,搞清楚60%,就可以动手了,动手之后,如果遇到疑问,再去钻研原理,边分析原理,边动手实验,通过分析原理找到动手实验的方向,通过动手实验来确认原理分析的对错,这样,才是效率最高的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值