【发布时间】:2018-05-18 20:22:04
【问题描述】:
我在很多嵌入式开发人员职位的职位描述中看到,例如要求具备 ARM 微控制器上的嵌入式 C 编程知识。
我不太清楚的是,了解为特定 ARM 处理器开发 C 的知识与为 PowerPC 或其他类型的处理器开发 C 有什么区别。使用 C 开发,我们从将要编译的实际指令和架构中抽象出来,那么为什么它真的很重要呢?
我猜想了解嵌入式开发知识、了解内存限制等很重要,而实际的目标处理器并不重要。例如,一个为 PowerPC MCU 编写代码多年的开发人员难道不能与为基于 ARM 或其他类型的 MCU 的代码开发一样出色吗?
也许我在这里遗漏了一些明显的东西。请有人举例说明为一种类型的处理器和另一种类型的处理器编写 C/C++ 代码之间可能存在的一些主要区别。谢谢
【问题讨论】:
-
一方面,不同的 MCU 会有不同的板载组件,例如定时器、GPIO、UART 等,并且使用这些东西会因 MCU 而异。使用新的微控制器时,需要大量研究数据表。
-
好的,好点。特定算法的执行速度也可能不同?
-
@Engineer999 如果算法设计得当,这应该无关紧要。特定于硬件的优化应该由编译器很好地处理。
-
其中一定比例是通用的,语言本身。但是通过指定一个目标,他们可能会无缘无故地这样做和/或他们这样做是为了解决出现的非通用语言问题、工具、处理器细微差别以及与该工作级别相关的其他非语言问题.为什么不直接问这些公司他们在寻找什么?
-
如果您特别关注微控制器,那么大部分工作都与 C/C++ 无关,而是与硬件有关。
标签: c++ c arm microcontroller powerpc