关注+星标公众号,不错过精彩内容来源 | 码农的荒岛求生计算机系统中有很多程序员习以为常但又十分神秘的存在:函数调用、系统调用、进程切换、线程切换以及中断处理。函数调用能让程序员提高代码可复用性,系统调用能让程序员向操作系统发起请求,进程线程切换让多任务成为可能,中断处理能让操作系统管理外部设备。这些机制是计算机系统中的基石,可是你知道这些机制是如何实现的吗?这篇文章将告诉你答案,其背后的实现如此优雅且一致。速度与激。。寄存器你有没有想过,CPU为什么需要寄存器?原因很简单:速度。通常CPU可以在一个时钟周期内访...
关注+星标公众号,不错过精彩内容直接来源 | IT创客学院没想到,昨晚发布会上,雷军竟在台上遛了一圈狗!这是小米第一代仿生四足机器人,名叫「铁蛋」,能跑、能跳、还能后空翻。价格亲民,发烧友们的福利来了。英文名为CyberDog,也可以亲切的称呼它为「铁蛋」,设计师们也是怀着取个贱名好养活的心情吧~ 这是小米第一代仿生四足机器人。酷黑机身,能跑、能跳、还能后空翻。 最重要的是还会跳舞(莫非是大黄狗Spot的亲戚?) 先别说这只机器狗有什么本领,这一身黑是否有一种「黑镜」既视感... 只要9999,「铁蛋」带回家尽管是基于开源代码...
关注+星标公众号,不错过精彩内容转自 | 裸机思维分享王工的一篇文章,前方观点可能与你有冲突据说,赵国的首都邯郸的人走路的姿态很好看,动作非常优雅、轻快。燕国有一个少年听到这个传说,非常羡慕邯郸人,就走了很远的路去赵国,想学习邯郸人走路的方法。刚开始,他整天站在街头,仔细研究每个人走路的姿态,再慢慢模仿他们,可是都没有成功。后来,他想可能是受到过去走路习惯的影响,所以,他决定要忘掉以前走路的方法。从那时候起,他更专心研究邯郸人走路的姿势,不过,再怎么努力他还是学不会,最后他只好放弃。可是,因为他把以前走路的...
来源 | IOT物联网小镇这可能是一个有争议的话题,到底需不需要,还是要结合实际情况。 什么是架构设计1.架构设计概念的认识相信看这篇文章的同学,大部分都是从事嵌入式开发的,大家也肯定有这么一个印象:在招聘网站上的一些架构设计的岗位,都是针对 Web 方向的,却很少看到招聘嵌入式岗位的系统架构师的岗位。 我的理解是大概有下面2个原因:(1) Web开发:百家争鸣,没有统一的标准和老大这些年得益于移动互联网的发展,前、后端开发岗位的需求量大增,而且各种框架层出不穷。如何利用这些框架来为用户提供高性能的服务并没有一个统一的...
关注+星标公众号,不错过精彩内容来源 | 巧学模电数电单片机一般认为MOSFET是电压驱动的,不需要驱动电流,然而,在MOSFET的GS两级之间有结电容存在,这个电容会让驱动MOS变的不那么简单。如果不考虑纹波和EMI的要求话,MOS管开关速度越快越好,因为开关时间越短,开关损耗越小,而在开关电源中开关损耗占总损耗的很大一部分,因此MOS管驱动电路的好坏直接决定了电源的效率。对于一个MOS管,如果把GS之间的电压从0拉到管子的开启电压所用的时间越短,那么MOS管开启的速度就会越快。与此类似,如果把MOS管的GS电压从开启电压降到0V的时间越短,那么M...
关注+星标公众号,不错过精彩内容编排 | 正念素材来源 | CSDN编程时,我们讲究的是高内聚低耦合,在协同开发、代码移植、维护等环节都起到很重要的作用。一、原理篇而低耦合,是指模块之间尽可能的使其独立存在,模块之间不产生联系不可能,但模块与模块之间的接口应该尽量少而简单。这样,高内聚从整个程序中每一个模块的内部特征角度,低耦合从程序中各个模块之间的关联关系角度,对我们的设计提出了要求。程序设计和软件工程发展过程中产生的很多技术、设计原则,都可以从内聚和耦合的角度进行解读。作为C语言程序设计的初学者,结合当前对于函...
关注+星标公众号,不错过精彩内容来源 | 知晓编程本篇文章较长,大家先看下目录1、简介2、TCP协议头3、TCP 数据包的编号(SEQ)4、三次握手建立连接5、四次挥手断开连接6、TCP可靠性的保证7、滑动窗口技术9、窗口滑动的数据重发9、TCP 流控制10、网线“断”了怎么办01简介TCP(Transmission Control Protocol 传输控制协议)是一种基于IP的传输层协议,TCP协议面向连接、正面确认与重传、缓冲机制、流量控制、差错控制、拥塞控制,可保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。上图形象展示了TCP协议是基于IP协议...
关注+星标公众号,不错过精彩内容来源 | CSDN某软件工程师接盘了前同事的项目,进度一拖再拖,最后发现问题出现在如下代码:// 注释语句 ??/2a = b+c;请注意代码中的“??/”,就是这注释隐藏的很深,让项目一拖再拖。"??/"会被编译器当作 /,变成C语言的换行符(多行代码连接符)。于是这段代码等同于// 注释语句 a = b+c ;就会被注释掉。下面我们就是说说“??/”这种“三字母词”的内容。什么是“三字母词”在ANSI标准中,定义了“三字母词”,或者成为“三联符序列”,英文为"trigraph sequences"。目的主要是为了在一些特定的字符集中,比如一些...
关注+星标公众号,不错过精彩内容来源 | 嵌入式客栈有小伙伴问:如何能快速提升编程能力?这感觉永远没有正确答案,每个人都有自己的套路,今天就来聊聊我对这个问题的看法:学会高效读代码,就是一个不错的办法。阅读代码,可能和写代码一样重要!为什么要会读代码? 考虑这样一些场景:Case 1: 你还在读书,照着教程,照着例子,学习编程。刚开始,大概率是先读别人的代码,理解别人的代码,而非一上来,就开始写。这是我YY的一个学写代码的学习模型,所以读了,理解了,在自己就可以发挥了,然后书本上、他人的知识,就流进了自己的脑瓜了。Case...
概述用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump基于底层libpcap库开发,运行需要root权限。一、tcpdump安装环境 虚拟机:vmware 15.5.2 os: ubuntu 12.04安装tcpdumpsudo apt-get install tcpdump3. 版本查看tcpdump --htcpdump version 4.0。libpcap version 1.1.1 表示libpca...
关注+星标公众号,不错过精彩内容来源 | Gitee本文为大家分享一个支持Hex、Bin、Motorola S文件镜像格式之间进行转换的库:BIN2HS。概述BIN2HS是支持Intel Hex、Motorola S格式与bin镜像格式之间进行转换。其支持文件信息快速查看、分段数据处理。镜像文件格式嵌入式系统中各种系统镜像常用已下几种文件格式来保存:hex格式:包含地址信息,由多行纪录条目组成的文本格式文件,每行都由校验和来保证数据完整性。srecord格式:为motorola常用的镜像格式,与hex类似,也是由多个记录条目组成的文本格式文件bin格式:二进制镜像格式,不包含任何地址信...
关注+星标公众号,不错过精彩内容转自 | 电子电路模拟信号是指用连续变化的物理量表示的信息,比如,温度、湿度、电流、电压等等,它的值是连续变化的,在一定时间范围内可以有无限个不同的取值。数字信号的取值是离散的、不连续的信号,数字信号常用二进制中的1和0表示。在数字电路中,门电路是数字电路的基本单元,很多复杂的数字电路都是由这些基本的单元组成的。最基本的门电路是与门、或门、非门。这3种基本的逻辑门电路通过相互组合,还能组合出与非门、或非门、同或门、异或门等。门电路是这样的一种电路,它的输入输出只有两种状态,要么是...
关注+星标公众号,不错过精彩内容编排 | strongerHuang微信公众号 | 嵌入式专栏手机升级系统,下载完系统都会存在一个校验过程:其实,在MCU升级过程中,也是需要校验hex文件,如果要想升级更可靠,还可以在hex或bin升级文件后再增加校验信息。我们之前公司做的一个远程升级的产品,就是在升级文件之后增加了CRC16校验信息,在接收完整个升级文件之后,进行校验,这样做的目的就是使升级更可靠。今天来讲讲hex文件的校验和验证校验的内容。关于Hexhex 格式文件由 Intel 制定的一种十六进制标准文件格式,是由编译器转换而成的一种用于下载到处理器...
大家好,我是『strongerHuang』,公众号是越来越多了,真的很卷,我推荐几个关注了好几年的号,干货满满,值得关注。8号线攻城狮 号主王工,嵌入式硬件工程师,目前主要从事嵌入式硬件开发工作,主要分享EMC基础原理及EMC设计整改、硬件电路设计、嵌入式软件、行业资讯等相关内容。实用电路设计知识电路设计视频:原理性讲解▼点击下方名片关注公众号▼ 路飞的电子设计宝藏 号主路飞,B站资深恰饭Up,双985通信专业毕业,擅长高速数字电路设计(X86/FPGA/ARM等)。不定期分享硬件电路设计干货,知识体系,有趣专业实验。包括但不仅限于学习方法、模...
关注+星标公众号,不错过精彩内容来源 | 网络做过EMC检测的朋友都应该知道,EMC主要是对电路有要求(当然,软件也要考虑一些地方)。我之前一家公司是做医疗器械的,产品各项功能基本没啥问题,但拿到检测中心去做EMC检测,各项指标不合格,只能回家慢慢整改了。今天给大家分享485接口的EMC检测,希望对电路设计,及相关软件开发的人员有帮助。原理图1. RS485接口6KV防雷电路设计方案(RS485接口防雷电路)接口电路设计概述:RS485用于设备与计算机或其它设备之间通讯,在产品应用中其走线多与电源、功率信号等混合在一起,存在EMC隐患。本方案从E...
关注+星标公众号,不错过精彩内容编排 | strongerHuang微信公众号 | 嵌入式专栏嵌入式方案设计文档该怎么写?你是不是从来没有想过这个问题?今天就来分享一篇优秀的文章:本文大部分内容翻译总结自《Software Engineering at Google》 第10章节 Documentation。另外,该书电子版近日已经可以免费下载了 https://abseil.io/resources/swe_at_google.2.pdf,有兴趣的同学可以下载翻阅下。首先声明,本问所说的文档不仅限于纯文本文档,还包含代码注释(注释也是一种特殊形式的文档)。很多技术人自己非常轻视技术文档的书写,然而又时常抱怨文档不完...
Linux 中断管理机制GIC 硬件原理GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为:接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理。当前GIC 有四个版本,GIC v1~v4, 本文主要介绍GIC v3控制器。GIC v3中断类别GICv3定义了以下中断类型:SGI (Software Generated Interrupt):软件触发的中断。软件可以通过写 GICD_SGIR 寄存器来触发一个中断事件,一般用于核间通信,内核中的 IPI:inter-processor interrupts 就是基于 SGI。PPI (Private Peripheral Interrupt):私有外设中断。这是每个核心...
作者:晓宇,排版:晓宇微信公众号:芯片之家(ID:chiphome-dy)1、那些奇葩的拿烙铁的姿势,当你们闻到肉香味时,那就是烙铁位置拿错了2、基于STM32的模拟时钟,在STM32F405上设计了PCB模拟时钟,使用ESP8266上进行时间的同步。使用了60个HD108 RGB LED和72个常规LED,由六个TLC5928 LED驱动器控制,效果与颜值非常棒,这块板子打下来不便宜啊 3、电池说,我的一生可能就是一个谎言,A23,9V电池内部的样子,不同版本。4、树莓派Pico四轴飞行器,视频来自油管,印度小哥展示了一个名为 PiWings 的迷你无人机。并录制了两段演示视频,分别演示了通...
关注+星标公众号,不错过精彩内容来源 | 简书:编程狮W3Cschool大家熟悉史玉柱,有些人是因为脑白金,有些人是因为巨人网络。作为巨人网络CEO,史玉柱不仅是个成功的营销家,而且曾经是名出色的程序员。有传言称史玉柱的主要编程语言是汇编,那么他的汇编水平怎样?在一次采访中,史玉柱称20多年前,在创业的初期,他是公司里面唯一一个研发人员,当时公司的总人数是4个。他一个人编写文字处理软件,而编写的代码数也达到了50万行。问题的重点是,很多关键模块,都是史玉柱用汇编语言完成,而且这些汇编语言还很枯燥。正是因为史玉柱的努力,当时公...
关注+星标公众号,不错过精彩内容来源 | 网络我们学习单片机的目的就是为了进行嵌入式系统的开发,学好单片机首先要有一个整体认识,下面将简要介绍一下单片机应用系统的开发流程。01明确任务分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维护性及产品的成本等因素,制定出可行的性能指标。02划分软、硬件功能单片机系统由软件和硬件两部分组成,在应用系统中,有些功能既可由硬件来实现,也可以用软件来完成。硬件的使用可以提高系统的实时性和可靠性;使用软件实现,可以降低系统成本,简化硬件结构。因此在总体考虑时,必须...
关注+星标公众号,不错过精彩内容来源 | 网络如果一座只能容一个人来往的独木桥,两端的人都想要过桥,为了不拥挤、阻塞,那我们就得采取有效的办法。比如规定某段时间哪端的人过桥,另一端的人就等着该他过桥的时间段的到来,同时也还可以规定人多时要按先来后到或年龄长幼的次序过桥。在这不经意间,我们就体会到了现代电子信息数据通过总线按时分系统传输的最原始的思想。现代网络信息的发展,特别是对于成本和空间而言,总线传输替代点对点传输是目前发展的热点,它的出现将给信息传输上提供了最大的方便和最有效的技术解决方案。假如一个微处...
关注+星标公众号,不错过精彩内容来源 | 网络选择了IT行业,就选择了一个充满于挑战的行业。对于软件工程师而言,项目的成功和失败对他们很重要。因为一行行的代码他们不知道熬了多少个通宵,脑细胞死了多少而写出来的。如果项目失败了,就意味着辛辛苦苦的一切付诸东流。这不得不令人沮丧。本文就给大家介绍一下是什么原因会让一个项目在不知不觉中慢慢地且不声不响地走上失败之路。成员流动每家公司都会经历员工或承包商的流动,但关键人物太过于经常变动,可能是一个项目注定失败的领先指标。有很多原因可以说明为什么人员流动对项目会有不利的...
关注+星标公众号,不错过精彩内容来源 | 一口LinuxCRC校验应用比较广泛,通常在通信领域用的比较多,即便是自定义通信协议,也可以添加CRC校验码,使其通信更加可靠。今天就来进一步描述CRC校验码。一、CRC概念 1. 什么是CRC?CRC(Cyclic Redundancy Checksum)是一种纠错技术,代表循环冗余校验和。数据通信领域中最常用的一种差错校验码,其信息字段和校验字段长度可以任意指定,但要求通信双方定义的CRC标准一致。主要用来检测或校验数据传输或者保存后可能出现的错误。它的使用方式可以说明如下图所示:在数据传输过程中,无论传输系统的设计...
关注+星标公众号,不错过精彩内容来源 | 达尔闻说作者 | Jumping润本次毕业设计过程中,Jumping润受到过许多人的帮助,收获良多,在此将机器人整体开源,同时总结一下机器人搭建过程中遇到的坑和未来的改进方向。在分享的文件里包含了结构设计、程序控制、电路设计以及其他模块相关资料,对球上自平衡机器人感兴趣的小伙伴,可以在“达尔闻说”微信回复:球上机器人,资料供大家参考。如果想和他交流,可以下拉至文末去他的博客。# 机器人原理分析 #首先来看成品图:如图所示,该机器人根据陀螺仪的位姿数据,通过三个全向轮驱动底部球体调整自己...
关注+星标公众号,不错过精彩内容来源 | 网络前不久,科学期刊英国《Nature》(自然)杂志发表了一项电子行业最新突破性技术进展:由Arm公司领衔,联合全球柔性电子产品供应商PragmatIC等机构,结合金属氧化物薄膜晶体管(TFT)和柔性聚酰亚胺(一种耐高温的塑料),制成了全球首个柔性原生32位、基于ARM架构、高达18334个等效门的微处理器PlasticARM。该芯片有望推动低成本、全柔性智能半导体与集成电路产业的发展。塑料也能成为芯片材料近50年前,英特尔创造了世界上第一个可商业量产的微处理器——Intel 4004,这是一个仅4位的CPU(中央处理单元...
关注+星标公众号,不错过精彩内容来源 | 嵌入式大杂烩今天给大家分享一篇关于数据抽象的小短文:在往期文章:什么是不完全类型?中,我们清楚地知道了数据抽象的好处。这一篇再一起来看一个简单的小技巧。实际项目中,常常会有多个模块协同工作,各个模块之间会相互调用。两种声明方法:一种是在把对外提供的接口在本模块头文件中声明,其它模块需要调用时包含这个头文件就可以。另一种是调用者在调用之前使用extern进行声明。我比较倾向于第一种方法,严格把只在本模块文件中使用的函数使用static声明,供外部使用的函数在头文件里声明,调用者直接...
关注+星标公众号,不错过精彩内容来源 | CSDN原文链接:https://nibblestew.blogspot.com/2021/02/why-most-programming-language.html?m=1自从编程语言诞生以来,人们常常就哪种语言速度最快的问题争论不休。无论是严肃的科学研究,还是深夜酒吧的喧嚣,都不乏关于这个话题的争执。文本不打算就这个问题展开讨论,我们不妨从一个更高的层面来看一看这个问题:如何比较两种截然不同的编程语言的性能。为了进行有意义的比较,我们必须使用两种编程语言实现一系列测试程序,运行基准测试,然后再比较最后的结果。实际上,这种比较的难度很大,有时甚...
关注+星标公众号,不错过精彩内容来源 | 记得城在一些电源和低速信号线上,电容也会用来抗ESD,电容能抗多大的ESD电压呢?ESD耐性和电容量有什么关系呢?TVS或者说ESD器件在制造过程中,可能会触发ESD事件,发生损坏,这些事件可以用三个模型来进行模拟。1. Human Body Model,简称HBM,人体模型,模拟人体静电放电时的测试。2. Machine Model,简称MM,机械模型,模拟机械静电放电时的测试。3. Charged Device Model,简称CDM,充电设备模型,模拟带电设备静电放电时的测试。图片来自TI培训回到正题,HBM一般有两种测试规格,一种是IEC61000-4-2...
关注+星标公众号,不错过精彩内容来源 | 与非网今天周末,为大家分享一下产业要闻:传字节跳动50亿元收购Pico以入局VR苹果被曝拟上调iPhone13系列价格三星新规防止半导体技术泄密中国制造Tesla Model 3或被出口到北美美国商务部回应批准向华为出售汽车芯片紫光集团及其子公司被裁定实质合并重整北汽蓝谷上半年亏损18.13亿元 传字节跳动50亿元收购Pico以入局VR传字节跳动以 50 亿元人民币收购 Pico,正式入局 VR,目前相关方并未对此做出回应。公开资料显示,Pico 是国内领先的 VR 硬件厂商,根据 IDC 报告,2020 年 Pico 位居中国 VR 市场份额第...
关注+星标公众号,不错过精彩内容素材来源 | 网络在写代码时难免对一些知识点不熟悉,导致犯错,今天分享几点小知识给大家。空白符问题#include<stdio.h>int main(void){ int a; printf("input the data "); scanf("%d ",&a); //这里多了一个回车符 printf("%d",a); return 0;}结果要输入两个数程序才结束,而不是预期的一个。why?原因:用空白符结尾时,scanf会跳过空白符去读下一个字符,所以你必须再输入一个数。这里的空白符包括空格,制表符,换行符,回车符和换页符。所以如果你用scanf("%d ",&a)也会出现同样的问题。解决方法:这种...