嵌入式开发:当用微控制器构建嵌入式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 需要图形的动画或过渡的数量
l 显示器尺寸:宽度和高度(像素),颜色深度(位)
如果你正在设计一个新的应用程序,那么你将没有很多具体的细节可以开始。然而,使用此检查表,你应该能够大致确定你的应用程序是否适合移植到MCU。如果你的猜测总和低于16MB,尽管你可能需要大幅精简你的应用程序,但你可能可以做到。
在内存和资源紧张的情况下突破边界。
Storyboard Lite具有嵌入式开发人员和设计师熟悉的协作工作流和易用性,可以帮助团队构建为其硬件平台量身定制的应用程序,特别是针对每千字节都很重要的资源受限目标。
嵌入式开发:当用微控制器构建嵌入式GUI时,有哪些注意事项相关推荐
- 清华大学视频:ARM微控制器与嵌入式系统
清华大学视频课件:ARM微控制器与嵌入式系统(2017) 本课程课程要求学生具备C语言编程基础,在课程中逐步讲解ARM微控制器(单片机)与嵌入式系统,面向实践安排教学,鼓励动手实践和自由创新,适合想参 ...
- 课程笔记 -- 《ARM微控制器与嵌入式系统》
"人生是如此简单,而又是这般辉煌." 村上春树 --<如果我们的语言是威士忌> 推荐 最近看了清华大学曾鸣老师的嵌入式开发入门课程<ARM微控制器与嵌入式系统&g ...
- 清华大学视频课件:ARM微控制器与嵌入式系统
清华大学视频课件:ARM微控制器与嵌入式系统(2017春) 直接点击博客网页连接就可以进入下载页面,因为是免费分享,点击后可能会有广告,请量解,点击普通下载. 将网址复制粘贴到浏览器地址栏,因为是免费 ...
- ARM微控制器与嵌入式系统 基础知识
学习地址 2.1 基础概念 机械计算 图灵 :一个计算的问题一定可以拆解为有限个计算的集合(可计算性) 01 冯诺依曼结构:运算器.控制器.存储器.输入设备.输出设备 模拟信号 连续 数字信号 离散 ...
- 复位、时钟、存储器和总线————————ARM微控制器与嵌入式系统清华大学慕课记录
复位 初始化微控制器内部电路 将所有寄存器恢复成默认值 确认MCU的工作模式 禁止全局中断 关闭外设 将IO设置为高阻输入状态 等待时钟趋于稳定 从固定地址取得复位向量并开始执行 中断向量表 中断向量 ...
- ARM微控制器与嵌入式系统
文章目录 图灵机 编码Encoding ASCII编码 从晶体管到概念CPU 通用CPU 微控制器MCU ARM Cortex-M指令集 图灵机 可计算性(calculability)是指一个实际问题 ...
- ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)
ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...
- 使用STM32CubeMX和TrueSTUDIO开发STM32系列微控制器
文章目录 这种方式现在已经不推荐了 关于STM32CubeMX STM32CubeMX介绍 为什么使用STM32CubeMX 下载及安装 关于TrueSTUDIO TrueSTUDIO介绍 为什么使用 ...
- 嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt
[9构建嵌入式linux系统项目-启动脚本的编写 启动脚本 教学回顾 shell语法 管道.重定向 变量 结构性语句 教学内容 启动脚本的写法 教学要求 熟悉掌握启动脚本的写法 shell 函数 在s ...
最新文章
- Android-Universal-Image-Loader 框架使用
- 使用loadrunner的vb vuser写脚本 运行报错:vbascriptext.dll -25277 -25240
- JEECG(J2EE Code Generation) 基于代码生成器J2EE智能开发框架 杂记:发布新版本 JEECG_v2.0
- c语言二分法_14个经典C语言算法你就不看一眼?(附详细代码)
- 哪些手机支持双wifi?
- 通过JS+DIV+CSS排版布局实现选项卡效果
- Http,TCP/IP,UDP
- 如何下载64位版本的eclipse 以及配置
- 荣耀V10什么时候升级鸿蒙,华为非常良心,荣耀V10用户迎来更新,2.08M补丁包优化稳定性...
- Unity手机上查看日志的插件LogViewer
- 学3D建模需要什么基础?
- 做正确的事和正确的做事的区别
- 软件测试模型有哪些?
- linux内核学习(5)山重水复疑无路*
- 谷歌浏览器反复提示PageOffice安装
- linux ikev1切换到ikev2,IKEv2与IKEv1的差异.doc
- 10分钟教你生成超高逼格微信朋友圈
- gis城市模型建立之地形模型的建立
- java 一元线性回归_线性回归 - Java教程 - 找一找教程网
- 批量转换labelme标记为掩膜图片