什么是嵌入式系统?( 二 )


嵌入式系统启动后 。一般是没有人机交互界面的 。但会留有调试接口 。如RS232串口、网口 。可以通过终端工具检测软件运行状态、下发控制指令等 。
硬件工程师

什么是嵌入式系统?

文章插图
嵌入式硬件工程师 。主要掌握的是基于CPU设计计算主板的电路知识 。所以模电、数电、EDA知识是这类工程师的基本功!除此之外 。熟悉常用通信协议和总线 。如CAN、SPI、I2C、PCIe、DDR 。也是硬件工程师应该掌握的技能 。
软件工程师
嵌入式软件工程师 。编程语言、数据结构是其基本功 。除此之外 。还应该熟练掌握以下技能:
掌握多线程、多进程编程技术 。理解各种线程同步机制 。如临界保护、同步信号 。知晓进程间通信技术 。如共享内存、管道、套接字编程技术;
了解常见外设作用 。如CPU、DDR、SDRAM、FLASH、串口、网口等;
了解常见总线或通信协议概念 。如数据总线、地址总线、CAN总线、I2C总线、SPI总线等;
理解基于寄存器编程概念 。也就是硬件驱动程序实现原理 。无论什么硬件 。不管函数接口如何封装 。其内部一定是对硬件各个寄存器的操作;
嵌入式编程由于受限于硬件资源的大小 。所以在内存使用上并不像桌面软件那么灵活 。比如 。在windows下编程 。函数中的数组变量可以分配很大的内存 。这是因为其栈空间默认很大 。但是在嵌入式环境中 。最好把这些内存大的变量定义到外部存储硬件中 。如SDRAM或DDR 。这是因为嵌入式处理器的片内RAM都很?。?
从这里可以看出 。嵌入式软件工程师与其他类型软件工程师有一个很大的不同点 。就是需要掌握很多硬件知识 。这是由嵌入式开发的特点来决定的 。
什么是嵌入式系统?

文章插图

推荐阅读