• 你该知道你写的程序的内存布局

    由上图中可以知道进程地址空间中最顶部的段是栈,代码中调用函数、定义局部变量(但不包含static修饰的变量)或声明的类的实例等等都要使用栈空间,当函数执行完(也就是程序执行超过了这个函数的作用范围的时候),操作系统会把该函数在栈中存放的数据出栈,也就是函数执行完需要return的时候系统会自己释放内存。但是如果不断的向栈中压入数据,达到最大的栈空间大小的话就会栈溢出(stack overflow),这时候程序运行就会出现段错误(Segmentation Fault)。

  • 工程师笔记--锂电池充电芯片小结

    最近一个项目又用到锂电池了,从业5年来这已经是第三个项目需要电池供电了。以前做遥控钥匙的时候没什么概念,都是按照原来的项目评估,指定纽扣电池,2年以上的使用时间。后来第二个项目,我主要负责射频单板,对于供电部分也就没这么关心,直到最近开始了我的新设计,把新了解到的内容做个总结,方便以后查阅!

  • 工程师笔记 -- 为什么数字输入信号采集,VCC电源有时不能直接连上拉电阻呢?记一次偶发故障经验教训!

    今天同事找到我,告诉我加上这个二极管有点意思,然后问了我还知道关于信号采集加二极管的其他案例吗?我表示疑惑,这个问题挺突然的,但是隐约能猜到里面有文章,估计对他来说也是一段难忘的经历,哈哈。接着他给我讲了一下事情的前因后果,不由得感叹硬件设计果然到处是坑啊!

  • 电子产品EMC设计--一些有用的ESD防护方法

    ESD静电放电分为接触放电和空气放电,空气放电的等级相对较高。下图是ISO 10605-2008标准静电放电测试设置图。针对电子产品ESD问题,个人总结了以下几种防护方法,以便设计时参考。

  • 物料紧缺,BOM成本太高,老板要做降本怎么办(1)?

    近几年由于芯片厂商元器件物料紧缺,几乎涉及到晶圆的芯片价格都翻了好几倍。像去年买车的朋友,好多车型加价买都不一定买的到,产能几乎都被各大主机厂放到高价位车型,畅销车利润薄反而没有多少产能。去年3月份,过完年刚来一个月左右,有一款BCM客户下了400套订单,老板立马下任务了,但是我统计BOM的时候发现,英飞凌的高驱芯片价格贵到离谱!要1000一片,单板就需要4片,价格直接起飞!我要是之前囤个10000片,卖完直接回家盖小楼躺平了,哈哈!客户的订单在这边,小公司又不能涨价,量小还没有话语权,更换其他芯片又要来一遍DVP,时间肯定来不及,只能亏本处理了。这件事之后,老板说这次亏大了,赶紧把这个芯片换掉,没有替代的就用分立器件搭一个,功能满足就行。其实完全替换高边驱动还是挺难的,我就先找了个低边驱动芯片尝试了一下。以BTS3124D为例,看看能不能满足需求?

  • 物料紧缺,BOM成本太高,老板要做降本怎么办(2)?

    昨天有个概念搞错了,低边驱动并不是单片机输出低电平驱动,而是驱动负载时,通过闭合地线来实现使能。这个和单片机输出电平无关,不过不影响文章整体的阅读体验。

  • 锂电池开关式充电芯片MP2615GQ在实际项目中的应用原理解析

    由于以前用过线性充电芯片BQ24040,初次使用对锂电池充电芯片的特性不是很了解,这种LDO架构式的充电对散热要求高,输入输出电流相等,压差大,功耗就大。

  • 工程师笔记--ESD静电放电分析整改方法

    根据静电放电电流波形可知,其电流具有较宽的频率范围。如此高频率电流通过参考地平面时,理想情况下参考地平面阻抗处处相等,地电平抬升或者降落对系统信号以及电源无明显影响。但是由于参考地电位受静电电流冲击产生的现象,即所谓的〝地弹〞现象。

  • 工程师笔记--频率合成器ADF4350调试记录

    ADF4350具有一个集成电压控制振荡器(VCO),其基波输出频率范围为2200-4400MHz。此外,利用1/2/4/8/16分频电路,用户可以产生低至137.5 MHz的RF输出频率。对于要求隔离的应用,RF输出级可以实现静音。静音功能既可以通过引脚控制,也可以通过软件控制。同时提供辅助RF输出,且不用时可以关断。

  • C语言中的const竟是个

    其实在 c++语言里面const修饰的才算是一个真正的常量,在 c 语言中 const 可以说是个“冒牌货”。为什么会这样?其实是 c++ 编译器对 const 进行了加强,当 c++ 编译器遇到常量声明时,不会像 c 语言一样给这样const对象单独分配内存,c 语言一般是放在只读数据区,而 c ++ 编译器是把const对象放在一个符号表里面(我个人觉得放在符号表里面的其中一个原因可能是想减少一些存储操作次数),至于符号表是属于内存布局(文章:你该知道你写的程序的内存布局)中的哪一块,我也不知道,写 c++ 编译器的人才知道。

  • 一文学会 | linux socket编程----TCP

    TCP 是基于连接的数据流的协议,先建立连接再进行通信,而且在通信过程中会检查数据是否发送成功。优点就是保证数据的完整性和准确性,缺点就是效率较低。

  • 类成员初始化和赋值的内幕

    定义一个变量,就是在内存中为你定义的这个变量开辟一段内存空间,如果这个变量没有初始化,那么系统会随机给这个变量赋一个值,这个值我一般称它为"垃圾数"。没有初始化的变量我认为它是没有意义的,是在浪费内存,就比如人刚出生的时候上帝需要给他赋予点东西,比如条件反射,比如哭,比如吮吸........这样人的意义得以体现。对于类的成员来说,我们最好的做法就是在构造函数中对每一个类成员进行初始化。

  • c++中引用作为返回值

    返回函数的引用去初始化一个新的引用这个和前面一样,都是不会产生副本,但是现在是用返回值去初始化一个引用声明c,也就是说这时候变成了变量temp的别名,在c的生命周期内temp是一直有效的,这样做完全可以。

  • 浅析Makefile、make、cmake

    如果你是在Linux下做开发,你就必须知道Makefile是什么东西,如果不知道那就可以说你不是一个合格的Linux开发工程师,因为Makefile是必备的一项技能。那么,Makefile到底有什么作用呢?首先,gcc大家应该知道吧,gcc(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言编译器。使用gcc命令编译你会遇到一些麻烦:

  • 彻底明白Linux硬链接和软链接

    什么是硬链接和软链接,要想知道什么是硬链接和软链接的话,让我带你研究。看完这篇文章,让你彻底明白什么是硬链接,什么是软链接!!!首先,在Linux系统下,有两种链接文件,一种是硬链接(Hard Link),一种是软链接,也称为符号链接(Symbolic Link)。

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章