嵌入式数字系统设计
概述说明一直从事嵌入式系统相关的开发工作学习了很多的嵌入式编程的方法以及框架但是一直无法将其统一为一个标准的设计方法学阻碍了设计的统一性以及拓展性。为了提高嵌入式系统设计的标准化和精准化的设计能力这里准备创建一个专门的嵌入式系统设计文档集记录下这些年掌握的系统设计方法以及程序框架尽量整理出相似点用于保证后续每个场景下都可以使用类似的技术方案完成稳定的技术输出。设计范围嵌入式系统随着技术的发展越来越复杂从早期的单片机逐步演化出ARM、SOC以及各种的异构设计框架。涉及到的技术也从C逐步拓展到C和嵌入式linux如果把FPGA的应用层看作嵌入式系统的话那么还要包括V和SV两种编程语言。同时为了加快嵌入式算法以及模型的开发PYTHON也是绕不开的编程方法。当然用matlab也可以完成对应的工作只不过嵌入式设备的通信特性更符合PY的应用范围。 嵌入式系统的设计范围一直在扩大在工作中一般是多个工程师协同开发共同搭建一个包含软件、硬件、结构的复杂嵌入式系统。但是对于个人而言了解嵌入式系统整个的范围对后续的技术提升是比较有利的毕竟在系统问题定位的时候有一个对大部分技术具备一定概念的核心人员可以大幅降低定位消耗的时间。AI在嵌入式系统中的影响也使得个人掌握各种类似技术的难度有所降低所以消耗部分的时间去整理整个嵌入式系统涉及的技术范围并进行了解也是本次文章集主要的目标之一。典型嵌入式平台ARM本人不是专门进行ARM程序开发的对ARM的了解集中在SOC中使用的2ARM芯片。一般是用ARM去完成PS可编程系统的工作通常是在RTOS或者LINUX上完成一些驱动回环测试。实际开发中感觉ARM承担了链接传统CPU和新型外设的节点任务基于成熟的C驱动库可以保证和现有的外设做到完美兼容节约了嵌入式系统的开发时间。FPGA一般来说FPGA包括两个部分应用部分和硬件部分。应用部分和ARM一样用于逻辑开发这个部分可以视为嵌入式系统的一部分。硬件部分则是FPGA独有的一些底层硬件结构用于实现一些自定义的外设驱动。这一点和ARM形成互补ARM承担传统外设FPGA链接自定义外设。两者共同承担起驱动所有硬件外设的任务。SOCSOC就是片上系统将ARMFPGA集合到一片FPGA内部这个平台的优势在于集成化高适用于需要小型化的平台。内部交互总线的加成也为一些特殊的设计提供基础。比如xilinx提供了用FPGA去加速ARM的设计方法集成了对应的HLS开发套件。SOC进一步提高了嵌入式系统的灵活性在早期技术开发时具备很强的灵活性。GPU对于图像处理的嵌入式系统而言GPU是绕不开的器件。比较大的GPU一般使用PCIE作为通信接口和主机进行大带宽的数据交互。GPU通过并行处理单元去加速处理图像任务。由于AI也需要大量的并行运算所以一些智能嵌入式系统也需要搭建一颗算力强劲的GPU。这里还存在一个类似的设备使用FPGA的并行加速卡这类设备用FPGA的并行性去替代GPU的并行性一般条件下开发难度更大但是灵活性更高。为了方便统一把这类辅助CPU并行计算的设备都当作GPU设备处理。常用的编程语言C语言嵌入式里面有很多现成的C语言写好的驱动所以一般不带LINUX操作系统的ARM程序都采用C开发。之前有尝试过用C去开发底层的ARM程序结果只能说是吃力不讨好。所以掌握C语言的目标就是掌握各类现有的驱动为各类嵌入式设备提供交互控制。C语言带LINUX操作系统的应用层使用C就会比较方便。主要是动态数组的支持可以为一些协议提供一定的灵活度。而且面向对象开发应用层还是比较简洁的。本人对于C的使用比较懒直接就套用QT的库进行交互开发了QT在嵌入式的linux中的环境相对比较容易配置。Verilog语言这个是FPGA的开发语言主要用于FPGA的RTL开发。这个语言集中在FPGA和ASCIC内使用而且大部分时候都需要重新开发不知道是生态没做好还是需求差异太大还是FPGA厂商之间的兼容性实在不行反正大部分的模块都没有现成能用的总需要改两下以进行硬件适配。System Verilog语言这个是FPGA的仿真语言主要是用于FPGA的仿真。这个语言是对verilog的拓展支持了很多类似C的特性。这个在设计中主要是仿真。当然xilinx对于sv开发RTL的支持也做到了比较完善的地步据说是ASIC验证中有很多SV的IP需要RTL也支持这些IP。PYTHON语言这个就是比较常见的脚本语言了主要是在主机上完成计算验证。对于嵌入式开发而言很多拿到的原始数据都是需要进行处理的而PY就是一个快速完成效果验证的语言。当然PY在FPGA的自动化方面也是有较大的作用的一般是PY调用TCL之类的语言完成仿真自动化。BAT/SHELL语言除了比较通用的PY脚本一些自动化必须使用平台适用的脚本语言比如win的bat和linux的sh语言。这点在一些常见的工程中会涉及到需要有一定的了解。虽然AI可以快速解析这些脚本语言的功能但是了解自动化语言有利于定制一些个人的脚本方案以提高设计的效率。文档集目标本次创建文档集的目标就是针对目前已经掌握的嵌入式系统设计的方法以及框架进行整理归纳对每个技术之间的关联进行分析最终输出一个基于代码框架的快速部署方案。通过将一个类似的嵌入式设计的框架部署到不同的设计平台来确认一个相对通用的嵌入式设计流程和框架减轻目前不同嵌入式系统设计时的割裂感让设计尽量回归到统一稳定的状态。

相关新闻

AnyPS5 NID系统揭秘:PS5的SHA-1符号哈希如何在Linux/Windows上被解析与重绑定

AnyPS5 NID系统揭秘:PS5的SHA-1符号哈希如何在Linux/Windows上被解析与重绑定

AnyPS5 NID系统揭秘:PS5的SHA-1符号哈希如何在Linux/Windows上被解析与重绑定 【免费下载链接】AnyPS5 Tool for automatic PS5 executables porting to Linux and Windows 项目地址: https://gitcode.com/gh_mirrors/an/AnyPS5 AnyPS5 是一款自动移植 PS5 可…

2026/11/11 10:28:19 阅读更多 →
供应商成了出资方:从Anthropic招股书自曝的潜在利益冲突看谈判力

供应商成了出资方:从Anthropic招股书自曝的潜在利益冲突看谈判力

供应商同时是出资方,这种双重身份被Anthropic自己写进了招股书,叫潜在利益冲突。对大客户销售来说,这是一份公开的力量对比说明书。 事件本身说了什么 据东方财富报道,Anthropic在招股书中承认,博通同时作为硬件供应商…

2026/11/11 10:28:19 阅读更多 →
中望3D钣金:轮廓凸缘

中望3D钣金:轮廓凸缘

首先创建一个基体平板,然后选择要创建非标准造型法兰的边。单击“编辑轮廓”按钮

2026/11/9 18:21:36 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/10 23:32:01 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/10 23:32:03 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/11 2:31:33 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/10 23:32:10 阅读更多 →

日新闻

周新闻

月新闻