机器人|嵌入式开发:当用微控制器构建嵌入式GUI时,有哪些注意事项

机器人|嵌入式开发:当用微控制器构建嵌入式GUI时,有哪些注意事项

在嵌入式开发中 , 借助基于MCU的设计 , 你可以消除额外的RAM和闪存芯片 , 并使用板载外设而不是板外逻辑 , 所有这些都将随着当今功能强大的芯片而变得更加简单 。 当然 , 与成熟的微处理器相比 , MCU本身也提供了额外的成本下降 。 所有这些降低意味着制造成本更低的产品 , 为大众市场容量和更高的利润率打开大门 。
最大的问题是:你如何知道你的应用是否可以缩小到微控制器的比例?换句话说 , 当考虑在MCU上构建嵌入式UI app时 , 哪些因素是最重要的?
5个最重要的MCU考虑因素:
1.硬件材料清单
微控制器的神奇之处在于 , 它们取代了电子板上的其他逻辑 。 但是 , 你需要有消除的东西 。 如果你已经有了许多其他分立元件 , 特别是RAM和Flash , 那么你需要考虑微控制器的转换 。
2.RAM大小
微控制器有内置的RAM , 但不是一吨 , 所以如果你的应用程序的RAM使用率很高 , 它可能不是挤压到微控制器上的理想选择 。 在嵌入式开发中 , 高端MCU的板载RAM通常约为1MB , 但你需要仔细查看micro的数据表以确定 。 你还希望通过有选择地节省内存中的数据结构所能节省的资源来缩小默认堆栈 , 并检查结构 , 以确保它们不会因编译器和处理器对齐要求而超过所需的大小 。 像数据库这样需要RAM的库通常有配置设置和模式来专门减少RAM的使用 。 即使你的程序的RAM高水位线比板载RAM大小高出10%到15% , 你也可以在不移除功能的情况下缩小足够的尺寸 。
3.Flash尺寸
与RAM类似 , 利用MCU的板载闪存对于消除额外闪存芯片的成本至关重要 。 MCU上的闪存大小差异很大 , 但通常在512K到4MB之间 。 由于有编译器的帮助 , 压缩代码有时比压缩数据容易一些;打开所有编译器大小优化 , 包括那些消除死代码和折叠冗余子例程的优化 。 如果你有许多静态数据结构 , 即使需要添加解压缩逻辑 , 也可能需要压缩它们 。 如果你的代码使用了大量基于文本的文件 , 如XML或JSON , 那么使用构建时的“minify”工具来删除所有注释和空白也可以帮助你获得一些空间 。

4.语音识别(VR)
在嵌入式开发中 , 语音识别引擎可以使用大量的RAM和Flash , 使得很难将它们安装到MCU上 。 如果你的应用程序依赖于VR , 那么在执行MCU端口时 , 你需要仔细考虑如何最好地管理这一点 。 有一些占地面积较小的VR引擎可以安装在微控制器的板载RAM和闪存中 , 但是选择这些引擎可能需要牺牲识别精度或自然语言能力 。 对于具有连续互联网连接的物联网设备 , 另一种策略是使用非车载VR引擎 。 音频处理前端可以很容易地放在微控制器上 , 而使用后端的资源则驻留在云中 。
5.嵌入式UI复杂性
应用程序中单个嵌入式UI屏幕的数量可以让你大致了解其存储需求 , 但是 , 你需要考虑以下所有因素:
l 唯一GUI屏幕和屏幕模板的数量
l PNG、JPG和GIF图像的数量
l 国际化语言的数量
l 使用的字体数以及它们是TrueType还是位图
l 是否需要亚洲语言支持
l 需要图形的动画或过渡的数量
【机器人|嵌入式开发:当用微控制器构建嵌入式GUI时,有哪些注意事项】l 显示器尺寸:宽度和高度(像素) , 颜色深度(位)
如果你正在设计一个新的应用程序 , 那么你将没有很多具体的细节可以开始 。 然而 , 使用此检查表 , 你应该能够大致确定你的应用程序是否适合移植到MCU 。 如果你的猜测总和低于16MB , 尽管你可能需要大幅精简你的应用程序 , 但你可能可以做到 。