嵌入式系统启动后 。一般是没有人机交互界面的 。但会留有调试接口 。如RS232串口、网口 。可以通过终端工具检测软件运行状态、下发控制指令等 。
硬件工程师
文章插图
嵌入式硬件工程师 。主要掌握的是基于CPU设计计算主板的电路知识 。所以模电、数电、EDA知识是这类工程师的基本功!除此之外 。熟悉常用通信协议和总线 。如CAN、SPI、I2C、PCIe、DDR 。也是硬件工程师应该掌握的技能 。
软件工程师
嵌入式软件工程师 。编程语言、数据结构是其基本功 。除此之外 。还应该熟练掌握以下技能:
掌握多线程、多进程编程技术 。理解各种线程同步机制 。如临界保护、同步信号 。知晓进程间通信技术 。如共享内存、管道、套接字编程技术;
了解常见外设作用 。如CPU、DDR、SDRAM、FLASH、串口、网口等;
了解常见总线或通信协议概念 。如数据总线、地址总线、CAN总线、I2C总线、SPI总线等;
理解基于寄存器编程概念 。也就是硬件驱动程序实现原理 。无论什么硬件 。不管函数接口如何封装 。其内部一定是对硬件各个寄存器的操作;
嵌入式编程由于受限于硬件资源的大小 。所以在内存使用上并不像桌面软件那么灵活 。比如 。在windows下编程 。函数中的数组变量可以分配很大的内存 。这是因为其栈空间默认很大 。但是在嵌入式环境中 。最好把这些内存大的变量定义到外部存储硬件中 。如SDRAM或DDR 。这是因为嵌入式处理器的片内RAM都很?。?
从这里可以看出 。嵌入式软件工程师与其他类型软件工程师有一个很大的不同点 。就是需要掌握很多硬件知识 。这是由嵌入式开发的特点来决定的 。
文章插图
推荐阅读
- 日本侵华花了14年,为何入侵印度打一次就放弃了?
- 发展芯片产业,核心技术是什么?
- 历史上中国与印度有过哪些交集?打过几次?
- 把喜马拉雅山挖开一道10公里宽的口子的可行性?
- FPGA的布局布线算法的原理是什么?
- 印度和巴基斯坦为什么突然开战?
- 一听要打仗,就有点兴奋!感觉报效祖国的时候来了!这样的人多吗?
- 频繁换女友是种什么体验?
- 短视频变现方式分别有什么 抖音变现方式分别有什么