混说Linux
其他
28 张图,一次性说清楚 TCP
机器B收到FIN包之后,回复ack包表示已经收到,但此时机器B可能还有数据没发送完成,自身进入CLOSE_WAIT状态,表示对方已发送完成且请求关闭连接,自身发送完成之后可以关闭连接;3.
2022年10月28日
其他
深入理解Linux I/O 系统
还要求是文件系统逻辑块的整数倍)。所以接口越来越底层,换来表面上的效率提升的背后,需要在应用程序这一层做更多的事情。所以想用好这些高级特性,除了深刻理解其背后的机制之外,也要在系统设计上下一番功夫。
2022年10月27日
其他
FPGA能做什么?比单片机厉害吗?
在人工智能系统的前端部分也是得到了广泛的应用,例如自动驾驶,需要对行驶路线、红绿灯、路障和行驶速度等各种交通信号进行采集,需要用到多种传感器,对这些传感器进行综合驱动和融合处理就可以使用
2022年10月24日
其他
搞技术,如何写好技术文档?
写文档的哲学上面部分站在组织和团队的视角来看如何提高文档质量,我们接下来看看站在个人写作者的视角上如何写出高质量的文档。1.5W法则5W法则相信大家已经听的多了,分别是Who
2022年10月18日
其他
嵌入式 OTA 升级实现原理
MCU设备接收完所有的升级包后,先计算升级包中固件的摘要,然后使用非对称秘钥的公钥解密升级包的签名值,如果解密出来的固件摘要与自己计算的摘要相同,则验签成功。
2022年10月11日
其他
嵌入式开发常见问题解决方法
在线调试在线调试可以起到和打印LOG类似的作用,另外此方法特别适合排查程序崩溃类的BUG,当程序陷入异常中断(HardFault,看门狗中断等)的时候可以直接STOP查看call
2022年10月8日
其他
MCU 通过 UART 实现 OTA 在线升级流程
Flash地址分配注:Bootloader区域最后一个扇区,用于存放防止升级过程出错(掉电等异常情况)的flag,用户编译修改Bootloader时,要保证不覆盖flag的地址。
2022年9月30日
其他
如何优雅的给 cp 和 mv 命令添加一个高颜值的进度条
https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch#
2022年9月29日
其他
一文读懂 | Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
Segment):任何内存映射文件而上面进程虚拟地址空间中的栈区,正指的是我们所说的进程栈。进程栈的初始化大小是由编译器和链接器计算出来的,但是栈的实时大小并不是固定的,Linux
2022年9月28日
其他
7 款颜值超高的 Linux 操作系统,必须分享给大家!
Linux是一项稍微复杂的工作,但Manjaro却提供了更轻松,更流畅的Arch体验。它提供了多种桌面环境版本,供用户下载时选择。无论选择什么,用户仍然可以获得足够的选项来自定义外观和布局。
2022年9月27日
其他
docker入门终极指南,这是我见过最好的教程
的大门,不断抽丝剥茧,逐层深入,你将感受到容器化的无穷魅力。赶快打开技能边界,为你的前端技术赋能吧!原文:http://jartto.wang/2020/07/04/learn-docker
2022年9月26日
其他
单片机跑操作系统,到底有几种选择?
单片机编程时,我们都知道有两种基本操作:裸奔和操作系统。所谓裸奔,就是一个大循环往复执行。今天要讲的是几个常用的操作系统。实时操作系统(Real-time
2022年9月22日
其他
谈谈一颗芯片是如何诞生的
输出是一个个芯片裸片。这些裸片没办法直接接到PCB上的,需要经过后续的封装和测试,才算是真正的芯片。作者:桔里猫原文:https://www.zhihu.com/answer/2589441727
2022年9月17日
其他
CMake常用命令的一些整理
设置宏定义#预定义宏add_definitions(-D宏名称)例如:add_definitions(-DWINDOWS)add_definitions(-DLINUX)1.10
2022年9月14日
其他
嵌入式工程师天天在公司调参数,真的好吗?
摘要:这篇文章浏览了一下,文章的作者应该是过来人,挺多东西可以借鉴和思考的~多多少少还是要有点危机意识,切不可温水煮青蛙,当然啦,也不能过分焦虑与浮躁,脚踏实地才能走的更长更远。
2022年9月9日
其他
干货 | Linux 内核学习经验总结
学习内核,每个人都有自己的学习方法,仁者见仁智者见智。以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下。内核学习,一偏之见;疏漏难免,恳请指正。
2022年9月4日
其他
一文搞懂 | Linux内核 CFS 调度器
...};但是,由于不是所有任务都是可运行的,所以在task_struct中不会发现任何与CFS相关的字段。因此,需要通过一个名为
2022年9月1日
其他
深度:一文看懂Linux内核!Linux内核架构和工作原理详解
最新的一个增强是可以用作其他操作系统的操作系统(称为系统管理程序)。最近,对内核进行了修改,称为基于内核的虚拟机(KVM)。这个修改为用户空间启用了一个新的接口,它可以允许其他操作系统在启用了
2022年8月29日
其他
如何学习 Linux 内核网络协议栈
ip_output;原文:https://segmentfault.com/a/1190000021227338版权归原作者所有,如有侵权,请联系删除。
2022年8月26日
其他
C 语言内存泄露很严重,如何应对?
申请内存,就属于方法一的一个具体表现形式。其实这两类方法的本质是一样的,都是函数内部间接申请了内存,只是传递内存的方法不一样,方法一通过返回值传递内存指针,方法二通过参数传递内存指针。3.
2022年8月24日
其他
一种串口高效收发数据的思路及方案
其中,RS485ClrDE为宏定义,设置RS485为发送模式;RS485SetDE也为宏定义,设置RS485为接收模式。使用例子:定义数据结构体变量:uart_send_struct
2022年8月22日
其他
整理了一份Linux设备树基础知识,建议收藏!
};它表示这个单板,可以兼容内核中的“smdk2440”,也兼容“mini2440”。从compatible属性中可以知道它兼容哪些板,但是它到底是什么板?用model属性来明确。(3)status
2022年8月19日
其他
单片机的程序结束后都干嘛去了?
对于嵌入式系统,如果没有运行RTOS,那么程序开发中的主函数main()需要通过某种机制使其永远愉快的运行下去,它没有终点。如果想从main函数中退出,具体干什么是由所使用的C语言编译器决定的。
2022年8月18日
其他
串口数据传输中的共用体和结构体如何转换?
0x43678000这是不行的(不信的读者可以自行验证),这就是串口通讯当中经常遇到的问题,如果数据传输中包括了浮点型数据,在这里我们可以通过共用体或者结构体来解决。对于共用体:typedef
2022年8月16日
其他
嵌入式软件工程师杂谈 —– 什么是BSP工程师?
USB等。当然作为一个软件开发人员也必须掌握一些通用的软件,比如:代码管理软件,常见的如git等;代码阅读软件,这个就因个人喜好而不同了,比如:opengrok,source
2022年8月15日
其他
图文并茂,详解TCP和UDP协议的原理和区别
这个FIN包进行重发ack包,并刷新超时时间,这个机制跟第三次握手一样。也是为了保证在不可靠的网络链路中进行可靠的连接断开确认。
2022年8月12日
其他
详解C/C++堆栈的工作机制
最后,将函数中使用到的通用寄存器入栈,暂存起来,以便函数结束时恢复。在foo函数中用到的通用寄存器是EBX,ESI,EDI,将它们压入堆栈,如图所示:至此,一个完整的堆栈帧建立起来了。
2022年8月10日
其他
嵌入式系统常用的7个技巧
handler。如果系统出了某些差错,处理器开始执行程序空间以外的代码,就会触发ISR,并在决定校正行动之前提供储存处理器、寄存器和系统状态的机会。
2022年8月8日
其他
详解如何将 Android 手机投屏在 Ubuntu 上
--shortcut-mod=lctrl+lalt,lsuper一般来说,Super就是Windows或者Cmd。双击黑色边界以关闭黑色边界点击鼠标右键将在屏幕熄灭时点亮屏幕,其余情况则视为按下
2022年8月3日
其他
嵌入式与单片机之间的关系是什么?
首先,我们来了解一下到底什么是单片机。嵌入式系统的核心是嵌入式处理器。嵌入式处理器一般可以分为以下几种类型:嵌入式微控制器MCU(Micro
2022年8月2日
其他
都说FPGA高端,它到底能干啥?详解六大应用领域!
设计。其他,比如电力行业的高速数据采集,医疗行业的高速、大数据量的模拟量采集传输,军工行业的雷达、卫星、制导系统等等都是FPGA的应用领域。文章转自网络,版权归原作者所有,如有侵权,请联系删除。
2022年7月29日
其他
嵌入式Linux驱动开发——字符设备驱动框架入门
装载完成了驱动程序以后,实际上还不能直接用测试程序打开对应的设备文件,因为设备文件并没有自动创建,需要我们手动创建设备节点,这时候才能使用测试程序来通过打开文件的方式操作驱动程序所对应的硬件。
2022年7月27日
其他
C语言段错误调试神器(core dump)
fault),这是由尝试访问非法内存位置引起的。这可能包括释放后使用、缓冲区溢出和写入空指针。在bug很难复现的情况下,core
2022年7月26日
其他
干货 | c语言函数宏的三种封装方式
函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。函数宏本质上为宏,可以直接进行定义,例如:#define
2022年7月22日
其他
在嵌入式中,如何正确使用动态内存?
return;}原文:https://blog.csdn.net/jiangjunjie_2005/article/details/26937879
2022年7月20日
其他
串口通信原理详解232、422
计算机与RS485仪表通讯计算机自带的串口只有RS232,没有RS485,如果计算机要与RS485串口的仪表进行通讯,必须使用串口转换器或装上RS485串口转换卡后才能进行通讯。9.4
2022年7月19日
其他
一位华为大佬的职业生涯奋斗之路!
转眼在我厂已经度过近22年,近日跟部门领导和HR正式提出了退休申请。华为或将是我经历的唯一职场,趁着这段时间,回忆这段职业之路,对自己做个小结。未来将调整好身体、补充新知识、开启新生命历程。
2022年7月18日
其他
干货!嵌入式C语言源代码优化方案
a&7;说明:位操作只需一个指令周期即可完成,而大部分的C编译器的“%”运算均是调用子程序来完成,代码长、执行速度慢。通常,只要求是求2n方的余数,均可使用位操作的方法来代替。(3)平方运算a
2022年7月14日
其他
嵌入式代码中产生bug的几大原因~
和中断处理程序)的组合结果根据交织指令的精确顺序而变化的任何情况。每个都在处理器上执行。例如,假设您有两个执行线程,其中一个规则的递增一个全局变量(g_counter
2022年7月12日
其他
通俗易懂的解释C++的构造函数
}}C++保证在你调用delete时,先自动调用析构函数(而我们安排在这个函数里面删除它的法杖、法袍等对象),再删除对象占用的内存。以上,就是所谓的RAII机制(Resource
2022年7月11日
其他
一文详解 | Linux设备树框架及驱动移植实例
结束。所以,一个设备树的基本框架可以写成下面这个样子,一般来说,/表示板子,它的子节点node1表示SoC上的某个控制器,控制器中的子节点node2表示挂接在这个控制器上的设备(们)。/{
2022年7月8日