LWIP中NETCONN接口编程(上) netbuf结构体LWIP为了更好描述应用线程发送接收的数据,并且为了更好管理这些数据的缓冲区,LWIP定义了一个netbuf结构体,它是基于pbuf上更高一层的封装,记录了主机的ip地址与端口号,端口号对应的就是应用线程,在接收的时候,应用程序肯定需要知道到底是谁发送数据给自己,而在发送的时候,应用程序需要将自己的端口号与IP地址填充到netbuf结构体对应字段中.netbuf结构体1...
LWIP中TCP协议的介绍 TCP协议(Transmission Control Protocol)传输控制协议在LWIP协议栈中占据了大半的代码,它是最常见的传输层协议,也是最稳定的传输层协议,很多上层应用都是依赖TCP协议进程传输数据,如SMTP,FTP等等TCP服务介绍TCP与UDP一样,都是传输层的协议,但是提供的服务却不相同,UDP为上层应用提供的是一种不可靠的,无连接的服务,而TCP提供一种面向连接,可靠...
以太网模型以及以太网的接入方案 以太网的实现采用层次结构的概念,每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持,每一层都为上一层功能的实现打好基础。实际上,用户接触到的只是最上面的一层,根本感觉不到底层的存在。要理解与以太网,必须从最下层开始,自下而上理解每一层的功能。五层结构以太网的模型有不同的分层方式,ISO(国际标椎组织)提出OSI七层网络模型,自上而下分别为:应用层,表示层,会话层,传输层,网络层...
TCP的三次握手四次挥手 以太网控制芯片在内部利用硬件实现了TCP/IP 协议栈,即内部结构包含了物理层、数据链路层、网络层和传输层。全硬件 TCP/IP 协议栈完全独立于主控芯片,可以降低主芯片负载且无需移植繁琐的 TCP/IP 协议栈,便于产品 实现网络化更新。TCP Server/ClientTCP是整个协议族的核心协议之一,是TCP/IP体系中面向连接的传输层协议,它使用IP作为网络层提供全双工的和可靠交付...
LWIP中netif结构体的介绍 网络接口网络接口(以太网接口)是硬件接口(网络接口又可以称之为网卡)LWIP是软件那么而怎样让硬件和软件无缝连接起来呢?而且网卡又多种多样,怎样才能让LWIP使用同样的软件兼容不同的硬件平台?LWIP中使用了一个netif结构体来描述网卡但是网卡是直接和硬件平台打交道的,硬件不同则处理基本上是不同的,所以由用户提供最底层的接口函数,LWIP提供统一的接口,但是底层的实现需要用户自己去完成,...
Navicat连接Mysql遇到的错误 在navicat链接mysql以后的版本时,会出现2059的错误,这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password。本文采用...
LWIP数据包和网络接口管理 LWIP数据包管理lwip使用pbuf结构体来描述协议栈使用的数据包,pbuf结构体在pbuf.h中的定义struct pbuf{ struct pbuf*next; //指向下一个pbuf结构体,可以构成链表 void *payload; //指向该pbuf真正的数据区 u16_t tot_len; //当前pbuf和链表中后面所有...
结构体和而联合体的区别 两者最大的区别是内存的使用一 结构体struct各成员各自拥有自己的内存,各自使用互不干扰,同时存在的,遵循内存对齐原则。一个struct变量的总长度等于所有成员的长度之和二 联合体union各成员共用一块内存空间,并且同时只有一个成员可以得到这块内存的使用权(对该内存的读写)各变量共用一个内存的首地址,因此联合体比结构体更节约内存。一个union的总长度至少能容纳最大成...
linux下各种安装包的安装命令 一 rpm包安装步骤找到相应的安装包,比如xxx.xx.rpm,下载到本机的某个目录 打开终端,切换成root用户模式 cd到安装包的目录下 输入rpm -ivh xxx.xx.rpm二 deb包安装方式步骤找到相应的软件包,比如xxx.xx.deb,下载到本机目录 打开终端,切换成超级用户 cd到安装包的目录下 输入dpkg -i xxx.xx.deb三 tar.gz源代...
串行和并行 串行传输:串行传输即串行通信,是指使用一条数据线 将数据一位一位地依次传输,每一个数据占据一个固定的时间长度,其只需要少数几条线就可以在系统之间交换信息,特别适合计算机和计算机 计算机和外设之间的远距离通信。并行传输:并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输,是在传输中有多条数据位同时在设备之间进行传输。区别:串行传输的速度比并行传输的速度要慢的多,但是费用低并行传输...
FreeRTOS任务 系统运行时,全局变量放在哪里?子函数调用时,局部变量放在哪里?中断发生时函数的返回地址放在哪里???栈是单片机RAM中一段连续的内存空间 栈的大小一般在启动文件或者连接脚本中指定,最后由C库函数 __main进行初始化在多任务中每个任务都是独立的互不干扰的,所以每个任务都分配独立的栈空间,这个栈空间通常是一个预先定义好的全局数组,也可以是动态分配的一段内存空间 ,都存在与RAM ...
中断向量,中断向量表 ,中断服务函数 所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,而转去执行为内部/外部事件或程序预先安排的事件的服务子程序,待中断服务子程序执行完毕后,CPU再返回到被暂时中断的程序处(断点)继续执行原来的程序,这一过程成为中断。中断向量:中断的地址的变量;中断向量表:中断类型号与相应中断源的中断处理程序入口地址之间的连接表;...
启动代码的讲解 启动代码通常烧写在flash上,它是系统一上电就能够执行的一段程序,它运行在任何用户C代码之前,上电后ARM处理器处于ARM态,运行于管理模式,同时系统的所有中断被禁止,PC到地址0处取指令执行,一个可执行映像文件必须有一个入口点,而能够放在ROM起始处的映像文件的入口地址也必须设置为0启动代码主要完成两方面的工作:初始化执行环境 中断向量表 堆栈 I/O接口 初始化C库 和用户的应...
STM32的讲解 GPIO general purpose input output 通用的输入输出GPIO的输入输出方式四种输 浮空输入模式上拉输入模式 下拉输入模式. 四种输出模式 四种最大的输出速度IO口为FT的话表示支持5V容忍上电复位后,GPIO口默认为输入浮空状态,部分特殊功能的引脚为特定的状态GPIO端口可以通过程序配置成输入或者输出STM32的引脚中,有部分是做...
cmder的配置以及应用 简介cmder是一个增强型的命令行工具,不仅可以使用windows下的所有命令,更爽的是还可以使用linux下的所有命令下载官网下载:http://cmder.net/下载的时候会有两个版本分别是mini和full版,区别是有没有内建的msysgit工具,这是git forWindows的标准配备;配置环境变量配置环境变量的目的是可以直接在右键中运行在系统变量下...
类视图和方法视图 类视图的引入以函数的形式进行定义的视图就是函数视图,视图函数便于理解,但是遇到一个视图函数对应的路径提供了多种不同的HTTP请求方式的支持时(get,post,delete,put),需要在一个函数中写不同的业务逻辑,代码的可读性和复用性就很底, 所以,我们引入类视图进行解决. def register(re...
django用虚拟环境创建项目 为什么需要虚拟环境到目前位置,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就...
模块和urllib的简介 urllib 的简介模块在程序开发的过程中 随着程序代码越来越多在一个文件里代码越来越长,就不容易维护为了编写可以维护的代码,我们把很多函数进行分组,分别放在不同的文件中,很多编程语言就运用这种组织代码的方式,在python中一个py 文件就是一个模块使用模块的好处?1实现了代码的可维护性,当一个代码编写完毕时就可以被其他的地方进行引用,我们在编写代码的时候就经常使用其...
nodejs 一nodejs的简介Node.js是运行在服务端的javaScrips Node.js是一个基于Chrome javaScrip运行时建立的一个平台. 是一个事件驱动I/o服务端的JavaScript环境二 Nodejs的安装 下载地址 : https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi下载完成后进行点击安装 ...
分布式爬虫和redis 分布式爬虫什么是分布式爬虫默认情况下scrapy是单机爬虫,只能在一台电脑上运行因为爬虫调度器当中的queue去重和set集合都是在本机上创建的其他的计算机无法访问另外一台计算机上的内存的内容分布式爬虫用一个共同的程序,同时部署到多台电脑上运行这样可以提高爬虫的速度 实施分布式爬虫分布式爬虫的前提1 保证每一台计算机都能够正常执行scrapy命令 能够启动爬虫...