【lwip】lwip源码基础
前言 本笔记记录 lwip 源码基础内容 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487094.html 概念&作用 网络接口 概念引入 网络接口(以太网接口)是硬件接口(网络接口又可以称之为网卡)。 LWIP 是软件那么而怎样让硬件和软件无缝连接起来 ... »
前言 本笔记记录 lwip 源码基础内容 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487094.html 概念&作用 网络接口 概念引入 网络接口(以太网接口)是硬件接口(网络接口又可以称之为网卡)。 LWIP 是软件那么而怎样让硬件和软件无缝连接起来 ... »
前言 lichee_nano 主控芯片为全志 FC1001S。 本笔记暂时以 lichee nano 为例子,以后可能会直接适配各类 FC1001S 的板子。 注意:使用 lichee nano 板子和 lichee 提供的镜像时,需要注意这个板子的 flash 芯片型号,必要时需要修改驱动。 李柱 ... »
前言 注意:本笔记发布时可能忘记补充查看dump方法,可使用TRACE32来查看dump时的各个任务信息,方便分析。 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487221.html 任务堆栈 在 FreeRTOS 中,每个任务都拥有自己的堆栈,该堆栈的 ... »
前言 参考: 哈夫曼树(赫夫曼树、最优树)详解 哈夫曼编码 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487422.html 概念 路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径。 路径长度: 路径上的分支数目称为路径长度。 树的路径长度:从 ... »
前言 在《大话数据结构》P190 页中有一句话:其实线索二叉树,就等于是把一棵二叉树转变成了一个双向链表。 对于这句话实在想不懂,线索二叉树只是把二叉树以某种次序遍历把空域填上前驱或后继而已,若度为 2 的结点没有多余的指针域用于线索了,那双向链表就断了啊。 李柱明博客:https://www.cn ... »
前言 主要描述二叉树。 李柱明博客:https://www.cnblogs.com/lizhuming/p/15487394.html 树的定义 树: 树是 n(n>=0) 个结点的有限集。 n = 0 时为空树。 n > 0 时,即是非空树时,有且仅有一个根结点。 m > 0 时,子树的个数没有限 ... »
前言 本文记录通过回调函数通知到多线程的框架。 本文链接:李柱明博客-框架:https://www.cnblogs.com/lizhuming/p/15205560.html 主要用于解耦。 实现原理 就是把多个回调函数插入到一个链表中,在对应的地方执行这个链表中的所有回调函数。 用途 通知业务只是 ... »
前言 本笔记通过记录 数据包 在网络中的生命履历来引出一些网络基础知识,如: MAC、ARP、IP、子网掩码、网关、集线器、交换机、路由器这些概念都是在链路层和网络层。 (这些都不做严谨的说明,只是为了更好的了解而表达的个人描述) 参考: 写得通俗易懂:如果让你来设计网络 数据包简要生命周期 浏览本 ... »
前言 主要记录TCPIP一些小笔记 说明: demo 基于 Linux。 TCP/IP 网络编程笔记散集 快速入门: I/O 缓冲: I/O 缓冲在每个 TCP 套接字中单独存在。 I/O 缓冲在创建套接字时自动生成。 即使关闭套接字也会继续传递输出缓冲中遗留的数据。 关闭套接字将丢失输入缓冲中的数 ... »
前言 说明: demo 基于 Linux。 7. 域名与网络地址 本节主要记录三个名词:DNS、域名及IP。 7.1 IP IP地址:网络层的主机地址。老生常谈啦。 目前分为IPV4和IPV6。 如百度的地址之一:202.108.22.5 7.2 域名 域名就是IP的别名吧,因为人类对数字的记忆较难 ... »
前言 说明: demo 基于 Linux。 5. UDP 网络编程 UDP 是无连接的,不需要建立连接。 5.1 UDP 的工作原理 参考图: 主机B的数据包中包含目的主机的IP+端口号。 其中IP是把数据的目的主机地址,端口号是目的主机对用的程序。 路由器小知识: IP:主机地址。如目的IP,每个 ... »
前言 说明: demo 基于 Linux。 3. 地址族与数据序列 // 调用 bind 函数分配IP地址和端口号。 // 成功时返回0,失败时返回-1 #include <sys/socket.h> int bind(int sockfd, struct sockaddr *myaddr, soc ... »
前言 本笔记记录 MQTT 相关概念。 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/14994943.html 1. MQTT 简介 MQTT(Message Queuing Telemetry Transport)是运行在 TCP/IP 中的应用层协议 ... »
前言 本笔记记录的是 单个服务端并发式处理多个客户端。 下次有空在发个 单线程多个服务端并发式处理多种客户端。其实就是本笔记的一个改良版,用到select() / poll() / epoll()。 原文:https://www.cnblogs.com/lizhuming/p/14943969.ht ... »
前言 15. 定时器 本章内容为驱动基石之一。 驱动只提供功能,不提供策略。 原文:https://www.cnblogs.com/lizhuming/p/14922233.html 参考源码路径:includelinux imer.h 参考例子就明白如何使用了。 15.1 内核函数汇总 KER ... »
前言 14. 异步通知 本章内容为驱动基石之一。 驱动只提供功能,不提供策略。 阻塞与非阻塞是 APP 询问 驱动设备。 异步通知是 驱动设备 主动通知 APP。 原文:https://www.cnblogs.com/lizhuming/p/14918049.html 14.1 异步通知的一些概念 ... »
前言 13. 阻塞与非阻塞 本章内容为驱动基石之一。 驱动只提供功能,不提供策略。 阻塞与非阻塞 都是应用程序主动访问的。从应用角度去解读阻塞与非阻塞。 原文:https://www.cnblogs.com/lizhuming/p/14912496.html 13.1 阻塞与非阻塞 阻塞: 指在执行 ... »
前言 内核驱动的并发&竟态很容易理解,其解决方法也不能,看看例程就可以了。 对于API,看看内核源码和内核文档即可。 原文链接:https://www.cnblogs.com/lizhuming/p/14907262.html 12. 并发&竞态 本章内容为驱动基石之一。 驱动只提供功能,不提供策略 ... »
前言 建议:去原文链接观看,排版、观感便于学习。 链接: 本文原文链接:https://www.cnblogs.com/lizhuming/p/14627195.html 李柱明博客:https://www.cnblogs.com/lizhuming/ 参考:用到野火提供的工具脚本。 9. Linu ... »
前言 参考 设备树 李柱明博客:https://www.cnblogs.com/lizhuming/ 本文链接:https://www.cnblogs.com/lizhuming/p/14621305.html 8. Linux设备树 Linux3.x 以后引入了设备树,用于描述一个硬件平台的板级细 ... »