一、前言 我们平常在写代码的时候,特别是在制造轮子的时候(为别人提供库文件),会遇到各种不同的需求场景: 有些人需要在 Linux 系统下使用,有些人需要在 Windows 系统下使用; 有些人使用 C 语言开发,有些人使用 C++ 来开发; 有些人使用动态库,有些人使用静态库; 特别是在 Wind Read More
posted @ 2021-04-01 10:14 IOT物联网小镇 Views(617) Comments(0) Diggs(1)
一、前言 想象一下这个工作场景:你在为一个项目写一个功能库,别人调用库中提供的函数,后来你发现库里的函数A是 多余的。 具有完美情节的你,就是想把这个函数A废弃掉,此时肯定是不能直接删掉,因为你不知道别人在多少个地方调用了这个函数。 这种情况如何处理比较好呢? 这篇小短文就来聊一聊这个问题。 二、操 Read More
posted @ 2021-04-01 10:12 IOT物联网小镇 Views(156) Comments(0) Diggs(0)
一、前言 在上一篇文章中,介绍了一种纯软件算法,用来实现临界区的保护功能,文章链接: C语言边角料2:用纯软件来代替Mutex互斥锁。 首先明确一下:如果利用操作系统提供的互斥锁可以实现我需要的功能,我肯定使用互斥锁,之所以介绍 Peterson 这个算法,主要是因为它比较有意思,很小巧,可以为我们 Read More
posted @ 2021-04-01 10:10 IOT物联网小镇 Views(197) Comments(0) Diggs(0)
一、前言 在 Linux 系统中,当多个线程并行执行时,如果需要访问同一个资源,那么在访问资源的地方,需要使用操作系统为我们提供的同步原语来进行保护。同步原语包括:互斥锁、条件变量、信号量等,被保护的代码称作“临界区”。 这是非常正规的流程,我们基本上也都是这么做的。 那有没有想过,这些同步原语对代 Read More
posted @ 2021-04-01 10:09 IOT物联网小镇 Views(267) Comments(0) Diggs(0)
道哥的第100篇原创 一、前言 这几天在把一个嵌入式项目的代码,移植到另一个平台,发现很多地方用的都是 C89 标准。 1999 年,C语言的标准化委员会发布了 C99 标准,引入了许多特性,包括可变长度的数组、灵活的数组成员(用在结构体)、对IEEE754浮点数的改进、指定成员的初始化器、内联函数 Read More
posted @ 2021-04-01 10:07 IOT物联网小镇 Views(233) Comments(0) Diggs(0)
道哥的第 030 篇原创 一、一个真实的代码泄漏故事 事情发生在功能机的时代,我们项目组开发一款手机,软件开发成员大概有 20 人左右吧。结果在手机发布的一周后,另一家小厂就推出了软件界面、功能几乎完全一样的手机,除了开机界面。 因为那个时代,大家几乎都是使用 MTK、高通提供的解决方案,都是统一的 Read More
posted @ 2021-04-01 10:06 IOT物联网小镇 Views(5018) Comments(0) Diggs(0)
一、Starlink星链计划是什么? 今年的 3.15 晚会,很多人都觉得缺少了特斯拉的一席之地,最近马斯克忙的很,又是在中国辟谣没有监控车主,又是在推特上跟网友“干架”,这么成功的商人,精力还这么充沛,真的让我们佩服! 今天我们来了解一下马斯克的另一个宏伟蓝图:Starlink(星链)项目,听起来 Read More
posted @ 2021-04-01 10:05 IOT物联网小镇 Views(1573) Comments(0) Diggs(0)
道哥的第 029 篇原创 一、前言 前几天和一个在某研究所的发小聊天,他说:现在的航空、航天和导弹等武器装备中,控制系统几乎都是用单片机,而不是嵌入式系统。 乍一听,和我们的直觉有矛盾啊:那么高大上的设备,其中的控制逻辑一定很复杂,不用嵌入式系统怎么来完成那么复杂的功能控制啊?然后仔细了解了一下,才 Read More
posted @ 2021-03-16 14:38 IOT物联网小镇 Views(4040) Comments(5) Diggs(9)
道哥的第 028 篇原创 一、前言 在上一篇文章中,我们主要聊了:在嵌入式系统的应用程序架构设计中,应该从哪些方面来进行需求整理和分析,文章链接:都说软件架构要分层、分模块,具体应该怎么做(一)。 这篇文章,我们继续聊一下在概要设计、详细设计阶段,我们应该做什么工作?用什么工具或手段来做?输出结果是 Read More
posted @ 2021-03-13 08:06 IOT物联网小镇 Views(1637) Comments(0) Diggs(0)
道哥的第 027 篇原创 一、软件架构设计的生命周期 什么是架构?如果你问十个人,有可能得到十一种不同的答案;如果去翻一下相关的书籍,每一本都可能给出不同的定义。 因此,我们没必要纠结于那些概念,只要方法对、能完成项目任务就行,不管黑猫白猫,能抓到耗子的就是好猫! 1. 软件开发流程 一个软件项目, Read More
posted @ 2021-03-08 08:19 IOT物联网小镇 Views(2506) Comments(0) Diggs(1)