嵌入式开发
文章平均质量分 87
主要介绍嵌入式的硬件设计、软件开发编程、项目管理等
weixin_39911617
这个作者很懒,什么都没留下…
展开
-
Linux 最强总结
在 Linux 中有些进程是特殊的,它不与任何进程关联,不论用户的身份如何,都在后台运行,这些进程的父进程是 PID 为1的进程, PID 为1的进程只在系统关闭时才会被销毁。使链接的两个文件共享同样文件内容,就是同样的 inode ,一旦文件1和文件2之间有了硬链接,那么修改任何一个文件,修改的都是同一块内容,它的缺点是,只能创建指向文件的硬链接,不能创建指向目录的(其实也可以,但比较复杂)而软链接都可以,因此软链接使用更加广泛。Linux 的学习对于一个程序员的重要性是不言而喻的。转载 2023-06-25 22:24:12 · 154 阅读 · 0 评论 -
轻量级 C 语言网络库
dyad 是一个超级轻量级的 C 语言异步网络库。它功能纯粹,API 简洁易使用,对于使用者而言,简直就是开箱即用,前提是你需要的一个简单小巧的 TCP Server。另外,其内部的代码实现优雅且巧妙,非常适合初学者用来学习 Linux 网络编程和了解异步处理的本质。转载 2022-10-05 20:02:46 · 433 阅读 · 0 评论 -
一个健壮且高效的串口接收程序
本篇重点在于解决如何写一个健壮、高效的串口接收数据,发送与接收处理过程略讲。帧格式先聊聊帧格式,一般来说,一个数据帧有以下几部分内容:帧头帧头用于分辨一个数据帧的起始,这个帧头必须足够特殊才行,因为它是分辨一个帧的起始,那么什么样的帧头是足够特殊的数据呢?保证这个数据在一个帧内最好只出现一次的数据,那就是帧头,比如0x55、0xAA之类的。而且最好有两个字节以上,这样帧头才更加独一无二。但是数据域内的数据你是没办法保障不包含和帧头一样的数据。那么如果不凑巧,除了帧头外其他部分也有这样的两个字节的帧头,那会出转载 2022-09-28 09:05:08 · 307 阅读 · 0 评论 -
28 张图,一次性说清楚 TCP
做IT相关的工作,肯定都离不开网络,网络中最重要的协议是TCP。无论是实际工作还是笔试面试,你看哪里能少得了TCP?我看过RFC中与TCP相关的文档,也看过linux中TCP相关的源码,也看过不少框架中的TCP相关的代码,对TCP是有点感觉了。一直想找个时间来分享下TCP相关的知识,如果大家有疑问,欢迎相互交流。其实,搞透了TCP之后,发现它也就那么回事。考虑最简单的情况:两台主机之间的通信。...转载 2022-09-01 14:16:45 · 103 阅读 · 0 评论 -
自动驾驶中ROS操作系统的重要性
ROS是对机器人的硬件进行了封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用。计算机OS与机器人OS对比示意图,图片引用自Nao。...转载 2022-09-01 14:15:27 · 201 阅读 · 0 评论 -
PHY寄存器
并且,值得注意的是,由于目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8个端口的接口是相互关联的,一个端口设置Isolate可能会影响其他端口的正常使用,因此在使用中注意不要随意更改bit10的状态。双工模式设置:Bit8置1端口设置为全双工,置0则端设置为半双工,和SpeedSelection的设置一样,DuplexMode的设置只有在自动协商关闭的情况下才起作用,如果自动协商设置为Enable状态,则该设置不起作用,端口的双工模式根据AN结果来定。自动协商(AN)开关。...转载 2022-09-01 14:12:42 · 1646 阅读 · 0 评论 -
嵌入式中应用层与硬件层分层管理方法
以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f10x.h或者stm32f10x_gpio.h,这些文件严格来时属于硬件层的,如果软件层出现这些文件会显得很乱。使用过Linux的童鞋们肯定知道linux系统无法直接操作硬件层,打开linux或者rt_thread代码会发现代码中都会有device的源文件,没错,这就是驱动层。...转载 2022-08-11 19:13:46 · 259 阅读 · 0 评论 -
最详细的Intel CPU体系结构分析(内核源码)
本文主要关注以下几个问题。几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为 5 个阶段:取指令、指令译码、执行指令、访存取数、结果写回。取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。 程序计数器 PC 中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC 中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1->PC;若为双字长指令,则(PC)+2->PC,依此类推。取出指令后,计算机立即进入指令译码(Instruction转载 2022-06-30 13:37:26 · 491 阅读 · 0 评论 -
I2C-总结
1、I2C 历史I2C:Inter-Integrated Circuit,集成电路总线。I2C 是 Philips 公司在 1982 年为主机板、嵌入式系统(短距)设计的一种简单、双向二线制同步串行总线。Philips 半导体事业部就是现在的 NXP。I2C 的专利在 2006 年 11 月 1 日已到期,大家可以免费使用。Intel 1995 年推出的 I2C 兼容总线(System Managerment Bus),即 SMBus 或 SMB最新版本 I2C spec v.6 于 2014.04.04转载 2022-06-28 18:31:39 · 2258 阅读 · 1 评论 -
CRC校验原理及其实现
目录前言最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研究了一下,周末有时间整理了一下笔记。一个完整的数据帧通常由以下部分构成:校验位是为了保证数据在传输过程中的完整性,采用一种指定的算法对原始数据进行计算,得出的一个校验值。接收方接收到数据时,采用同样的校验算法对原始数据进行计算,如果计算结果和接收到的校验值一致,说明数据校验正确,这一帧数据可以使用,如果不一致,说明传输过程中出现了差错,这一帧数据丢弃,请求重发。常用的校验算法有奇偶校验、校验和、CRC,还有LRC、BCC等不常用的校转载 2022-06-28 09:12:27 · 1332 阅读 · 0 评论 -
TCP/IP深度解析
TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。TCP/IP协议族按照层次由上到下,层层包装。最上面的是应用层,这里面有http,ftp 等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次。第三层是网络层,转载 2022-06-28 08:37:58 · 181 阅读 · 0 评论