当前位置:首页 > > 糖果Autosar
[导读]嵌入式的标签多为:低配,偏硬件,底层,资源紧张,代码多以C语言,汇编为主,代码应用逻辑简单。但随着AIOT时代的到来,局面组件改变。芯片的性能资源逐渐提升,业务逻辑也逐渐变得复杂,相对于代码的效率而言,代码的复用可移植性要求越来越高,以获得更短的项目周期和更高的可维护性。下面是A...

嵌入式的标签多为:低配,偏硬件,底层,资源紧张,代码多以C语言,汇编为主,代码应用逻辑简单。但随着AIOT时代的到来,局面组件改变。芯片的性能资源逐渐提升,业务逻辑也逐渐变得复杂,相对于代码的效率而言,代码的复用可移植性要求越来越高,以获得更短的项目周期 和更高的可维护性。下面是AIOT时代嵌入式设备的常见的软件框架。

设计模式

设计模式的标签:高级语言 ,高端,架构等。在AIOT时代,设计模式与嵌入式能擦出怎样的火花?设计模式可描述为:对于某类相似的问题,经过前人的不断尝试,总结出了处理此类问题的公认的有效解决办法。

嵌入式主要以C语言开发,且面向过程,而设计模式常见于高级语言(面向对象),目前市面上描述设计模式的书籍多数使用JAVA 语言,C语言能实现设计模式吗?设计模式与语言无关,它是解决问题的方法,JAVA可以实现,C语言同样可以实现。同样的,JAVA程序员会遇到需要用模式来处理的问题,C程序员也可能遇见,因此设计模式是很有必要学习的。

模式陷阱:设计模式是针对具体的某些类问题的有效解决办法,不是所有的问题都能匹配到对应的设计模式。因此,不能一味的追求设计模式,有时候简单直接的处理反而更有效。有的问题没有合适的模式,可以尽量满足一些设计原则,如开闭原则(对扩展开放,对修改关闭)


观察者模式

情景

在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。

实现

主题对象提供统一的注册接口,以及注册函数 。由观察者本身实例化observer_intf 接口,然后使用注册函数,添加到对应的主题列表中,主题状态发生改变,依次通知列表中的所有对象。

  1.  struct observer_ops

  2.  {

  3.   void*(handle)(uint8_t evt);  

  4.  };

  5.  

  6.  struct observer_intf

  7.  {

  8.      struct observer_intf* next;

  9.      const char* name;

  10.      void* condition;

  11.      const struct observer_ops *ops;

  12.  }

  13.  

  14.  int observer_register(struct topical* top , struct observer_intf* observer);

当主题状态发生改变,将通知到所有观察者,观察者本身也可以设置条件,是否选择接收通知

  1.  struct observer_intf observer_list;

  2.      

  3.  void XXXX_topical_evt(uint8_t evt)

  4.  {

  5.       struct observer_intf* cur_observer = observer_list.next;

  6.       uint8_t* condition = NULL;

  7.       while(cur_observer != NULL)

  8.       {

  9.           condition = (uint8_t*)cur_observer->condition;

  10.           if(NULL == condition || (condition
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

随着摩尔斯微电子量产级Wi-Fi HaLow开发规模在全球范围扩展,美国工业嵌入式无线网络系统领域的领导者Gateworks获选成为首家合作伙伴

关键字: 嵌入式 无线网络 Wi-Fi

行业领先的产品组合规模在上季度进一步扩大,新增产品超过 387,000 种

关键字: 物联网 嵌入式 分立式电源

Microchip基于CLB的PIC®单片机在单一器件中结合了可编程逻辑与嵌入式控制,有助于降低延迟、成本和设计复杂度

关键字: 可编程逻辑 单片机 嵌入式

在嵌入式系统开发中,传感器数据采集与处理是核心环节之一。然而,受环境干扰、硬件特性等因素影响,采集到的数据往往混杂着噪声,这些噪声会干扰系统对真实信号的判断,甚至引发误操作。软件滤波算法作为一种无需额外硬件投入的信号处理...

关键字: 嵌入式 传感器

搭载英特尔酷睿 3系列处理器的全新 COM Express 模块,助力实现高性价比与高能效的嵌入式计算应用

关键字: 边缘AI 处理器 嵌入式

全新合作将支持工程师在 MATLAB 和 PyTorch 中构建 AI 模型,将其集成到系统仿真中,并部署到嵌入式设备

关键字: 嵌入式 AI FPGA

近日,全球知名分析与咨询机构Omdia发布最新研究报告,意法半导体(ST)凭借STM32系列产品的硬核实力,连续第五年蝉联全球通用微控制器(GP MCU)市场第一供应商。2025年,我们进一步扩大领跑优势,市场份额攀升至...

关键字: 微控制器 嵌入式 供应链

当下,中国家庭的厨房早已不再只是简单的烹饪区,更慢慢成为品质生活的核心空间。有限的空间、多元的烹饪需求与对效率的追求,催生了集成化厨电的持续升级。市场数据显示,具备微波功能的蒸烤一体机近年来保持高速增长,成为嵌入式厨电领...

关键字: 嵌入式 厨电

在嵌入式系统开发中,硬件定时器是实现精准定时、事件触发、频率测量等功能的核心外设,而定时器中断事件标志则是衔接硬件触发与软件处理的关键桥梁。当定时器满足预设触发条件(如计数溢出、比较匹配、捕获完成)时,硬件会自动置位对应...

关键字: 定时器 中断 嵌入式

在中国家庭对健康饮水与品质生活持续升级的背景下,嵌入式净饮水产品,正逐步从功能型单品迈向系统化解决方案。近日, 北京奥维云网数据显示,西门子「水玲珑」系列嵌饮机已连续两年获得中国市场销量第一。这一成绩不仅体现了品牌在高端...

关键字: 嵌饮机 触控屏 嵌入式
关闭