自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 嵌入式软件架构的六个步骤(三) 识别和管理系统数据

数据决定设计,是现代嵌入式软件设计的第一原则。Linux的创始人Linus Torvalds在一次演讲中也曾经说过说: "烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系。"他在谈到Git时,也曾表达过类似的观点,“好程序员和烂程序员之间的差别,就在于他们认为是代码更重要还是数据结构更重要。”我们上学时,就学过一个公式:程序 = 数据结构 + 算法。如果从嵌入式程序的宏观视角去理解这个公式:所谓的数据结构,就是数据结构与处理机制;而所谓的算法,就是代码逻辑。好的数据结构,总是会简化代码。

2023-02-09 08:50:56 2466 2

原创 嵌入式软件架构的六个步骤(二)软件基础设施

统一的软件基础设施的前提,就是声明统一的基础数据类型和宏,以克服不同的硬件平台和编译器的差异性。比如下面是我从自己的开源项目EventOS中摘录出来的代码,不见得很完整,只能代表在我在项目里需求。编译器相关的宏定义。使用宏,屏蔽掉编译器的差异,会#else#endif一些常用的数据结构。这些数据结构,与硬件和编译器无关,是在代码中频繁使用,并在多个模块间共享的数据结构,有必要将其提升至基础设施的层面进行支持,以避免各个模块,对同一个数据类型,进行不同的定义带来的数据转换问题。

2023-01-26 18:49:56 3996 1

原创 嵌入式软件架构的六个步骤(一)抽象层

软件架构这东西,众说纷纭,各有观点。什么是软件架构,我们能在网上找到无数种定义。比如,我们可以这样定义:软件架构是软件系统的基本结构,体现在其组件、组件之间的关系、组件设计与演进的规则,以及体现这些规则的基础设施。怎么定义一般来说,基本上不重要,我们不是在写学术书籍,工程人员嘛,只关心软件架构能解决什么问题。软件架构不是制定出来的,而是产品和业务需求所决定的,架构师所做的,只是忠于需求,并合理的表达了需求。软件架构也从来都不是一成不变的。

2023-01-25 21:58:02 3767 1

原创 当单片机遇上状态机(二) 为什么QP难以入门?

非常抱歉,上次的博客发表完以后,就中断了。不少网友在网上揶揄我。我当然没忘记我的承诺,只是前段时间事情多,耽误了。上次的《QP的入门》一篇,发表在网上后,有个网友的回复给我留下了深刻印象:qingfeng_ling这是刚开始给个大体的框架吗,还是已经开始正式讲解了,要是正式讲解的话,我觉得还是有点深了,也可能我太菜[捂脸]学习者阿曼酱回复qingfeng_ling你不是一个人[捂脸]这说明,《QP的入门》一文,写的还是不够浅显明了,有些网友没有成功的由此文入门QP。我用了QP很多年了,尽管我在写

2021-12-27 16:56:11 4031 11

原创 当单片机遇到状态机(一) QP框架的入门

前言前些日子在微信上看到李肖遥的公众号,里面系统讲述了QP框架,我很有感触。我用QP框架很多年了,一开始是使用QM和QPC++,到后来抛弃了QM,直接使用QPC裸写程序,到后来自己写状态机框架。可以这么说,QP框架引导了我的技术成长。我共享的博文,虽然都以QP为起点进行展开,但很多东西,都是QP官网的资料所没有的。我希望接受大家的意见、建议和批评,相信对我来说,会有更大的提升。这一系列的博文,称为《当单片机遇上状态机》系列,暂时先规划以下几篇:入门QP让大家开始使用QP,消除对QP的畏难心理,建立

2021-06-05 22:49:50 8707 15

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除