自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 http实测抓包

(1)HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。(2)在FORM提交的时候,如果不指定Method,则默认为GET请 求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。

2023-06-13 10:59:32 226

原创 PPP点对点传输协议

PPP是一种网络中最为基础的协议。PPP协议(Point-to-Point Protocol)是一种数据链路层协议,它是为在同等单元之间传输数据包这样的简单链路而设计的。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和之间简单连接的一种共通的解决方案。PPP协议是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议,只支持全双工。

2023-06-13 10:58:46 1929

原创 短信及SIM卡

VCC,电源,1.8V/3V/5V,5V 用的很少;带热插拔功能的项目,需要用到带有 Presence Pin 脚的卡槽,默认是高电平,有 SIM 卡插入时,这个脚会变为低电平,MCU 通过这个脚的状态来判断 SIM 卡是插入还是拔出。PIN1,个人识别码,长4位,由用户自己设定(初始值为1234或0000),属于 SIM 卡的密码,用来保护SIM卡的安全,防止 SIM 卡未经授权而被使用;SIM 卡容量,一般有16K,32K,64K,128K,512K等,32K 是目前比较常见的 SIM 容量。

2023-06-13 10:58:23 277

原创 MQTT实测抓包

connect command设置保持连接,后面依次是输入ClientID,Username,Password,QOS等级。

2023-06-13 10:58:20 323

原创 理解TSL加密

TLS全称是TransportSecurity,是用来替代SSL的,是一种密码协议,用来提供计算机之间交互的安全通信。主要用于https通信,也用于email,即使通信等。

2023-06-13 10:57:31 786

原创 MQTT协议详解

用户可以使用MQTT构建一个传感器网络,其中各种传感器都能够以其传感器独有的消息形式发布传感器值,订阅程序能够订阅不同的消息,以据此采取措施,MQTT代理将处理从发布程序到订阅程序的转发消息。MQTT服务器除了收集转发数据,还可以进行数据处理和存储,例如,实时存储共享单车车辆运行位置、电池用量、状态信息等数据,以及对总体的车辆进行计算和统筹管理,甚至为一些聊天工具提供平台的服务。{deviceName}通配一个唯一的设备,一个Topic类对一个ProductKey下所有的设备通用。也是通信信息存放的地方。

2023-06-13 10:57:15 303

原创 CMUX串口多路复用协议

CMUX 是一种类似于传输层的协议,用户使用时无法感知该层;数据传输依赖一个真实串口传输,cmux 层负责解析数据用以分发到不同的 virtual uart;从而实现一个真实串口虚拟出多个 UART 的目的CMUX 在应用场景中多用于 UART, 如有必要也可以支持 SPI 方式CMUX是指串口多路复用。串口的多路复用器模式,就是使一个串行接口能够将数据传输到四个不同的客户应用程序。CMUX协议的功能就是利用一个底层物理串口,向上层系统提供多个逻辑串口,每个逻辑串口对应着一个数据链路连接(DLC)。

2023-06-13 10:56:22 2461

原创 makefile

在 Makefile 中我们要定义一系列的变量,变量一般都是字符串,这个有点像 C 语言中的宏,当 Makefile 被执行时,其中的变量都会被扩展到相应的引用位置上。CC:c编译器的名称,默认值为cc。cpp c预编译器的名称默认值为$(CC) -ECC = gcc回显问题,Makefile中的命令都会被打印出来。如果不想打印命令部分 可以使用@去除回显#获取符合模式pattern的所有文件#获取当前目录下所有的.c文件。

2023-06-13 10:43:03 72

原创 git的常用指令

首先在本地 git pull 取下来代码在自己需要修改代码的时候:使用 git checkout -b 创建一个分支所有的代码修改动作都在这个分支里面操作在需要合入代码的时候这样自己的修改一般都会在库上的commit的上面。

2023-06-13 10:42:40 337

原创 AT指令的添加

AT指令如果一定有需要阻塞的部分 要单独注册一个回调去执行。第一个参数为AT指令名,第二个参数为该指令调用的函数。>: 参数名称,尖括号不体现在命令行中。

2023-06-13 10:40:25 243

原创 wireshark的使用

接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址,普通模式下只接收发给本机的包。会筛选出所有基于TCP协议之上的协议。Protocol不显示某协议。端口写本机对应协议的端口。

2023-06-09 15:14:11 63

原创 TCP协议详解

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3yq7TVuT-1686294158142)(C:/Users/20220715013/AppData/Roaming/Typora/typora-user-images/image-20220916171451507.png)]​ 面向连接,是指发送数据之前必须在两端建立连接。

2023-06-09 15:11:51 1259

原创 UDP协议

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。TCP通过字节流传输,即TCP将应用程序看成是一连串的无结构的字节流。每个TCP套接口有一个发送缓冲区,如果字节流太长时,TCP会将其拆分进行发送。

2023-06-09 15:02:17 692

原创 SOCKET套接字及其接口

每一个 Socket 都用一个半相关描述:{协议,本地地址,本地端口}一个完整的 Socket 则用一个相关描述{协议,本地地址,本地端口,远程地址,远程端口}每一个 Socket 有一个本地的唯一 Socket 号,由操作系统分配。

2023-06-09 15:01:44 1353

原创 SMTP邮件传输协议详解

SMTP是简单mail传输协议,目标是向用户提供高效可靠的邮件传输。他特别的地方在于服务器可以接力传送邮件,有两种工作情况:一是电子邮件从客户机传输到服务器,二是从某一个服务器传输到另一个服务器。SMTP发送邮件之前需要将二进制多媒体编码为ASCII码,并且在使用SMTP传输后要求将相应的ASCII码邮件解码还原为多媒体数据,我们知道的是HTTP传输前不需要将多媒体数据编码为ASCII码。

2023-06-09 14:54:37 4792

原创 LWM2M协议

首先对象是逻辑上用于特定目的的一组资源的集合。在使用对象功能之前,必须对该对象进行实例化,对象可以有多个对象实例,对象定义的格式如下:OMA为LwM2M协议内置了8个对象。具体如下:LwM2M定义了一个资源模型,所有信息都可以抽象为资源以提供访问。资源是对象的内在组成,隶属于对象,LwM2M客户端可以拥有任意数量的资源。和对象一样,资源也可以有多个实例。

2023-06-09 14:50:35 1176

原创 HTTP协议详解

HTTP协议定义了浏览器(万维网客户进程)怎样向万维网请求万维网文档,以及服务器怎样把文档传送给浏览器。

2023-06-09 14:46:19 665

原创 FTP协议详解

TFTP简单文件传送协议。

2023-06-09 14:42:32 1703

原创 LWIP的网络接口

网络接口层对应实际的网卡,LWIP支持多网口设计,LWIP中使用netif来描述每种网络接口的特性。用链表netif_list来管理众多的网卡,当上层有数据要发送的时候LWIP会从netif_list链表中选择一个合适的网卡来将数据发送出去。RAW不需要操作系统的支持,使用的是回调机制,比较复杂,其余两种都需要有操作系统。

2023-06-09 14:33:25 686

原创 LWIP数据包

数据包管理机制中采用机构体pbuf来描述协议栈中使用的数据包,这个结构同bsd中的mbuf结构很类似。

2023-06-09 14:31:52 147

原创 FreeRTOS笔记(十一)调试与优化

如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用。

2023-06-08 17:37:31 998

原创 FreeRTOS笔记(十)中断

当CPU在执行某一事件A时,发生另外一个更重要紧急的事件B请求CPU去处理(产生了中断),于是CPU暂时中断当前正在执行的事件A任务而对对事件B进行处理,CPU处理完事件B后再返回之前中断的位置继续执行原来的事件A,这一过程统称为中断。单片机通常拥有丰富的片内外设和很多中断源,中断程序相比于在主程序中使用循环语句轮询系统状态(Polling)能有效提高CPU的利用效率,同时能够更加及时地响应外部事件。

2023-06-08 17:36:23 982

原创 FreeRTOS笔记(九)定时器

软件定时器是基于系统时钟中断且由软件来模拟的定时器,当经过设定的Tick 时钟计数值后会触发用户定义的回调函数。软件定时器不占用单片机宝贵的硬件资源和CPU资源。FreeRTOS提供了完善的软件定时器的支持,为了启用软件定时器,需要在头文件中设置的值为1.软件定时器需要定时或者延时控制的函数称为函数的返回值是空类型,xTimer的参数是软件定时器的句柄。

2023-06-08 17:33:54 571

原创 FreeRTOS笔记(八)任务通知

我们使用队列、信号量、事件组等等方法时,并不知道对方是谁。使用任务通知时,可以明确指定:通知哪个任务。

2023-06-08 17:29:29 110

原创 FreeRTOS笔记(七)事件event和事件组event grtoup

与信号量不同的是,它可以实现。即一个任务可以等待多个事件的发生:可以是任意一个事件发生时唤醒任务进行事件处理;也可以是几个事件都发生后才唤醒任务进行事件处理。也可以是多个任务同步多个事件。每一个事件组只需要很少的 RAM 空间来保存事件组的状态。事件组存储在一个 EventBits_t 类型的变量中,该变量在事件组结构体中定义。事件可使用于多种场合,它能够在一定程度上替代信号量,用于任务与任务间,中断与任务间的同步。

2023-06-08 17:28:39 514

原创 LWIP的内存池

LWIP内核建立多少内存池依赖于用户系统配置,假如宏定义LWIP_UDP为1,那么编译时与UDP控制块数据结构相关的内存池就会建立(MEMP_UDP_PCB),每种类型的POOL大小都是固定的

2023-06-08 17:18:53 369

原创 FreeRTOS笔记(六)互斥量mutex

在上图中,有个低优先级的任务(LP)和高优先级的任务(HP),两个任务都可以对一个资源进行操作。如果一个保存数据的全局变量在被一个任务操作的过程中,又被多个更高优先级的任务抢占并处理,那么最后这个支离破碎的数据将会毫无意义,破坏了数据的独立完整性;从外部的视角看,此时中等优先级的任务MD相当于抢占了高优先级的任务HP,而高优先级的任务HP表现起来却又像是有最低的优先级。优先级继承会暂时提高获得互斥量的任务的优先级,使得含有互斥量的任务的优先级和想要获取互斥量的任务中的最高优先级一样。宏定义会再次打开中断。

2023-03-14 16:53:31 1635

原创 FreeRTOS笔记(五)信号量semaphore

为此,FreeRTOS引入了信号量(Semaphore)概念,通过信号量的同步机制可以使消费者任务在数据还没到达的时候进入阻塞状态,并让出CPU资源给其他任务。假设一个简单的生产者消费者模型--有两个任务,一个任务是数据的生产者(Producer)任务,一个任务是数据的消费者(Consumer)任务,二进制信号量适用于在数据产生的频率比较低的场合。按照正常的思路,消费者任务和生产者任务会轮流执行,但是如果在消费者任务执行的时候数据还没有产生的话,消费者任务的运行就是无用的,会降低CPU的使用效率。

2023-03-14 16:49:53 420 1

原创 FreeRTOS笔记(四)消息队列

如果有多个任务同时在阻塞状态等待队列数据,优先级高的任务会在数据到达时进入就绪状态;写队列的任务个数没有限制,当多个任务写"满队列"时,这些任务都会进入阻塞状态:有多个任务在等待同一个队列的空间。[5]的优先级最高,创建的任务优先级为x就挂在ReadList[x]的链表中,系统执行任务时先从ReadList[5]开始依次向下检索。,当多个任务读取空队列时,这些任务都会进入阻塞状态:有多个任务在等待同一个队列的数据。使用拷贝方法时,则无此限制:内核有足够的权限,把数据复制进队列、再把数据复制出队列。

2023-03-14 16:45:42 396

原创 FreeRTOS笔记(三)调度机制

在单处理系统中,任何时间里只能有一个任务处于运行状态。。就绪态的任务,可以被调度器挑选出来切换为运行状态,调度器永远都是挑选最高优先级的就绪态任务并让它进入运行状态。阻塞状态的任务,它在等待"事件",当事件发生时任务就会进入就绪状态。事件分为两类:时间相关的事件、同步事件。所谓时间相关的事件,就是设置超时时间:在指定时间内阻塞,时间到了就进入就绪状态。

2022-11-21 15:17:40 2017 1

原创 FreeRTOS笔记(二)任务

在FreeRTOS中,线程(Thread)和任务(Task)的概念是相同的。每个任务就是一个线程,有着自己的一个程序。函数的模型示例如下所示,通常情况下包含一个永远不会退出的循环体。

2022-11-21 11:04:28 790

原创 FreeRTOS笔记(一)简介

操作系统是一个控制程序,负责协调分配计算资源和内存资源给不同的应用程序使用,并防止系统出现故障。操作系统通过一个调度算法和内存管理算法尽可能把资源公平且有效率地分配给不同的程序。应用程序通过调用操作系统提供的API接口获得相应资源完成指定的任务。任务(应用程序)的调度管理堆栈和内存管理文件管理队列管理中断和定时器管理资源管理输入输出管理。

2022-11-21 10:39:23 2260

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除