04 2023 档案
摘要:文章引用:https://blog.csdn.net/longwang155069/article/details/105812097 为什么会引入IRQ_domain? 早期中断数量较少,所以可以分布在一个interrupt_controler,中断映射也很简单,每个中断号对应一个interrup
阅读全文
摘要:一个简单的PCI总线INTx中断实现流程,如下图所示。 1. 首先,PCI设备通过INTx边带信号产生中断请求,经过中断控制器(Interrupt Controller,PIC)后,转换为INTR信号,并直接发送至CPU; 2. CPU收到INTR信号置位后,意识到了中断请求的发生,但是此时并不知道
阅读全文
摘要:引用: https://blog.csdn.net/weixin_44810385/article/details/127007747 1. PCIe总线基本概念 PCIe采用全双工的传输设计,即允许在同一时刻,同时进行发送和接收数据。如下图所示,设备A和设备B之间通过双向的Link相连接,每个Li
阅读全文
摘要:引用:https://www.cnblogs.com/arnoldlu/p/11630979.html 1. gcc栈保护机制stack-protector简介 gcc提供了栈保护机制stack-protector。关于stack-protector包含三个选项,分别是stack-protector
阅读全文
摘要:引用:https://blog.csdn.net/agave7/article/details/119875023 虽然问题不一样,但是分析问题的方法是一致的。 Unable to handle kernel NULL pointer dereference at virtual address 分
阅读全文
摘要:SDIO Signaling Definition SDIO card types 标准定义有两种类型的SDIO卡。全速(full-speed)card支持SPI,1bitSD,和4bit传输模式,时钟范围在0到25MHZ。这种卡传输数据速率达到100Mb/s以上。第2种是low-speed SDI
阅读全文
摘要:指针: 程序中的变量实际是存储空间的别名。,通常以 *+ 变量名的形式组成。 变量名: 存储参数的地址。 * :类似钥匙一样,作为打开存储内存的地址,并取出存储参数的值。 int i = 1; int *p = &i; // p &i, *p 1 指针变量虽然是指向变量存储的空间地址,其本质还是变量
阅读全文
摘要:目前#error和#line很少被使用,但是也可以作为定位问题原因的工具 #error 用于生成一个编译错误的信息。用于自定义程序员特有的编译错误信息。在预处理时起作用。 #error message // message 打印的编译error信息,不需要双引号包围#warning message
阅读全文
摘要:https://www.cnblogs.com/fengf233/p/10919436.html beacon帧字段结构最全总结(二)——HT字段总结 一.HT Capabilities HT Capabilities:802.11n的mac层给802.11的mac层加入了高吞吐量单元。所有新加的8
阅读全文
摘要:条件编译类似C语言 “ if .....else.... ”,从大量代码中,通过预处理的方式对代码进行预删除的工作 条件编译本质是对代码进行选择性的预处理操作后的编译操作,只对符合要求的代码进行编译 /* 通常采用 #ifdef ..... #else(#elif) ...... #endif 表示
阅读全文
摘要:宏定义与分析: 我们都数值宏定义通过define来定义。#define 定义的变量区别于const等定义变量的方式,其本质时字面量,并不会占用内存空间。 define定义的函数: define 定义的函数比常规函数定义更加强大,也方便。 #define sum(a, b) (a)+(b) #defi
阅读全文