笔记
文章平均质量分 68
对的时间点
新手一枚,有错误再所难免,希望各位指正
展开
-
TCP/IP卷一 阅读笔记 BSD分组过滤器
BSD分组过滤器,又称为BSF,也就是BSD Packet Filter。BSF是依赖与底层操作系统的,并不是所有的系统都支持。原理是将以太网设备的驱动程序设置为混杂模式,然后从驱动程序处接收所有发送和接收的数据。在BSF中,会为每一个使用BSF的应用程序分配一个过滤器。这些从驱动程序处接收来的所有数据,经过过滤器后剩下的就是应用程序感兴趣的数据了。然后将这些数据从内核复制到用户空间,也就是应用程序。为了避免频繁的从内核向用户空间复制数据,BSF增加了一个缓冲区,然后会提供一个应用程序可设置的超时时间原创 2020-12-11 20:31:10 · 279 阅读 · 0 评论 -
TCP/IP卷一 阅读笔记 ARP地址解析协议
vdzvzv原创 2020-12-11 19:07:03 · 97 阅读 · 0 评论 -
lP地址 与 MAC地址
作用IP地址本质上是终点地址,它在跳过路由器的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。也可以说IP是网络到网络,而MAC是设备到设备。分层IP是在网络层 中的 IP协议使用的,而MAC地址是在 链路层 中的 以太网协议 中使用的。如果网络层不是用IP协议,就不需要使用IP地址,链路层不使用以太网协议就不一定需要使用MAC地址。所以,这样分层来设计网络可以使网络层与链路层的协议更灵活地替换,网络层原创 2020-12-07 18:20:39 · 332 阅读 · 2 评论 -
libmodbus-3.1.6 unit-test-client.c 和 unit-test-server.c源码阅读
unit-test-client.c根据命令行输入来判断使用哪些具体的协议,默认使用modbus tcp协议。if (argc > 1) { if (strcmp(argv[1], "tcp") == 0) { use_backend = TCP; } else if (strcmp(argv[1], "tcppi") == 0) { use_backend = TCP_PI; } else if (s原创 2020-11-26 10:40:09 · 1018 阅读 · 0 评论 -
accept 和 accept4 区别,以及O_CLOEXEC的作用
accept4()函数共有4个参数,相比accept()多了一个flags的参数,用户可以通过此参数直接设置套接字的一些属性,如SOCK_NONBLOCK或者是SOCK_CLOEXEC。当accept4的flags为0的时候,accept4和accept没有区别。SOCK_CLOEXEC和O_CLOEXEC标志位,与使用fcntl设置文件描述符的FD_CLOEXEC有同样的作用,都是在fork的子进程中用exec系列系统调用加载新的可执行程序之前,关闭子进程中fork得到的fd。当一个进程使用fork原创 2020-11-25 18:34:23 · 3822 阅读 · 0 评论 -
ARM 裸机编程 PWM篇
简介Exynos 4412具有五个32位脉宽调制(PWM)计时器。这些计时器为ARM子系统生成内部中断。此外,计时器0、1、2和3包括PWM功能,该功能可驱动外部I / O符号 。计时器0中的PWM具有可选的死区发生器功能,以支持大电流设备。定时器4是内部定时器,不带输出引脚。定时器使用APB-PCLK作为源时钟。定时器0和1共享一个可编程的8位预分频器,可为PCLK提供第一级分频。定时器2...原创 2020-04-22 16:39:05 · 617 阅读 · 0 评论 -
arm 裸机编程 看门狗篇
Watchdog Timer看门狗是一种即使设备。可以用起产生中断信号或者复位信号。功能支持带中断请求的正常间隔定时模式如果计时器计数达到0(超时),则激活内部复位信号支持 水平触发 中断机制。简介PCLK为输入频率,其会经过两次分频,分别由WTCON[15:8]和WTCON[4:3]控制。然后每有一次电平的周期变,WTCNT中的Down Counter就会递减。当其为零的...原创 2020-04-21 19:16:39 · 302 阅读 · 0 评论 -
Linux网络编程基础
基础知识网络分层思想网络采用分而治之得方法设计,将网络得功能划分为不同的模块,以分层的形式有机的集合在一起。每层向实现不同的功能,每层向上层提供服务,同时使用下层提供的服务网络分层的作用为了让网络功能模块化,便于管理和通信OSI七层协议模型OSI模型是一个理想的、通用的但尚未实现的模型通信特点:属于对等通信,为了使数据分组从源发出到达目的地源端OSI模型的每一层必须与目的端对应层...原创 2020-04-18 12:31:20 · 191 阅读 · 0 评论 -
arm 裸机编程 串口篇
实际上波特率并不等于bps。波特率:一秒钟传输码元的个数bps:一秒钟发送的比特位位数而码元是承载信息量的基本信号单位,一个二进制码元占一个比特位所以仅仅二进制码元时,bps等于波特率同步和异步方式:配置串口大的步骤(使用轮询方式):波特率起始位、停止位、奇偶校验位、数据位收发模式需要分别知道读取和发送串口数据的寄存器需要知道什么时候收数据,什么时候发数据,即状态寄存器。...原创 2020-04-18 10:43:30 · 203 阅读 · 0 评论 -
ARM笔记
ARM基础ARM处理器工作状态用户模式User非特权模式,大部分任务执行在这种模式快速中断模式FIQ当一个高优先级中断产生时将进入这种模式外部中断模式IRQ当一个低优先级中断产生时将会进入这种模式管理模式SVC当复位或软中断指令执行时将回进入这种模式中止模式ABT当存取异常时将会进入这种模式未定义指令模式UND当执行未定义指令时会进入这种模式系统模式SYS使用和Use...原创 2020-04-16 19:20:07 · 1017 阅读 · 1 评论 -
C++无名对象
程序说明下面的程序都基于这样的一个test类和fun函数:class test{public: test(int n):num(n) { cout << "构造函数的调用" << endl; } test(test& p) { num = p.num; cout << "拷贝的调用" << endl; } v...原创 2020-03-13 18:21:23 · 1981 阅读 · 3 评论 -
C++拷贝构造函数
拷贝构造函数拷贝构造实际上也是构造函数的一种。当你创建了拷贝构造函数的之后,系统就不再提供默认的构造函数了。作用:用一个已经存在的对象去初始化另一个对象。赋值并不会调用拷贝构造函数。class test{public: test() { cout << "构造函数的调用" << endl; } test(test& p) { cout...原创 2020-03-12 22:00:37 · 197 阅读 · 0 评论 -
C语言进阶C++笔记
基础知识C++特点完全兼容C语言语法有自己独立的语法和存储结构能够更好的体现面向对象的特征使用使用时与C语言的区别源文件后缀名为.cpp在Linux中编译连接C++程序 g++ xxxx.cpp引用基本概念定义:是一个变量的别名,不占用内存空间;只能作为一个变量的附属存在。格式:存储类型& 引用名 = 变量名;&的含义取决于其所在到的位置当&am...原创 2020-03-10 21:45:50 · 489 阅读 · 1 评论 -
笔记 仿函数、内建函数对象、谓词
仿函数:又叫函数对象,是在将一个类的()符号重载之后,其使用方式同函数类似,所以叫做仿函数。仿函数使用特点:仿函数在使用时可以像普通函数那样调用,也可以有自己的参数、返回值函数对象超出普通函数的范畴,其可以有自己的状态。这里的状态是指函数对象作为一个类的实现,其可以有自己的属性。函数对象可以作为参数传递。注意,这里传递的是对象,而不是类名。所以,仿函数在使用时,使用的一定是对象,而不是直...原创 2020-01-03 22:10:46 · 107 阅读 · 1 评论