[Linux]梳理知识点 对于Linux系统而言,每一个设备都有一个主设备号与次设备号,对于一个驱动程序而言,通常会在驱动程序加载的时候注册设备并获取主设备号,主设备号用于关联一组文件IO操作。因此,主设备号便可以用于区分一类设备,而次设备号便可以用于区分一类设备中的不同实例。驱动程序入口、io寄存器映射、字符设备。
iterm修改方案 使用 Cmd + D(左右)或者 Cmd + Shift + D(上下)进行分屏使用,体验特别好,新增hotKey配置,可以使用快捷快速呼出iTerm同时带动画特效。2、2、新增hot key window 配置。3、安装zsh-autosuggestions。或者打开.zshrc ,将上一句加上。1、配置Split Pane切换。
2021-08-12 C语言二维数组动态初始化 文章目录example1:已知行列,进行初始化example2:输入字符串,将其中的数字分离出来example3:scanf输入多个参数example1:已知行列,进行初始化1.使用代码初始化二维数组2.使用输入初始化二维数组用malloc动态分配array内存实现1,使用静态实现2#include <stdio.h>#include <stdlib.h>int main() { int row, col, i, j; int** array; scanf(
vs2019——TCP/UDP-socket通信——MFC界面——多线程运行 不重要的目录socket通信TCP的客户端TCP的服务器端UDP客户端UDP服务器端MFC界面多线程socket通信首先要了解socket的通信流程。先来看TCP方式通信的流程图。接着来看,UDP的通信流程,udp通信直接发送,不会管对方所处的状态是什么。接收也是一直接收。这些都只是流程,可能看到这里,大佬们都觉得这都看过很多遍的东西了,赶紧上代码。下面把一个简单的实例放一下,是在vs2019上写的,vs2019虽然普遍是c++环境,生成的文件也是.cpp结尾的,但是还是可以改为.c结尾的C语言
zedboard定时器的使用 Xilinx的私有定时器的使用定时器的相关寄存器有四个,分别是 load 寄存器 0xF8F00600 count 寄存器 0xF8F00604 control寄存器 0xF8F00608 intr 寄存器 0xF8F0060C使用定时器的步骤:1>初始化定时器首先设置load寄存器,私有定时器的使用是依次递减,由load的数值开始,定时器的时钟是CPU时钟的一半,因此设置332999999计数,是为1s。2> 使能自动装载模式
zedboard的GPIO学习笔记 软件将GPIO配置为输出或输入。无论GPIO是设置为input(OE signal false)还是output(OE signal true),DATA_RO 寄存器始终返回GPIO引脚的状态。为了生成输出波形,软件反复写入一个或多个GPIO(通常使用MASK_DATA寄存器)。寄存器(MIO或EMIO)DATA_RO此寄存器使软件能够观察设备引脚上的值。如果GPIO信号被配置为输出,那么这通常会反映输出上驱动的值。将忽略对此寄存器的写入。如果MIO未配置为将此引脚作为GPIO引脚启用..
EMMC的单BLOCK读写TIMING时序 6.15.1Command and response指令的格式在单数据速率或双数据速率模式下,主机命令和设备响应都随主机时钟上升沿计时。设备识别和设备运行条件定时在开漏模式下处理设备标识(CMD2)和设备操作条件(CMD1)时序。设备对主机命令的响应在NID时钟周期之后开始。分配设备相对地址SET_RCA(CMD 3)也在开漏模式下处理。主机命令和设备响应之间的最小延迟是NCR时钟周期。数据传输模式设备接收到RCA后,将切换到数据传输模式。在这种模式下,命令行由push-p
C/C++摘要笔记 可变参数宏与__VA_ARGS__ 宏在GNU C中,从C99开始,宏可以接受可变数目的参数,就象可变参数函数一样。和函数一样,宏也用三个点…来表示可变参数VA_ARGS 宏 详情 参考VA_ARGS 宏用来表示可变参数的内容,简单来说就是将左边宏中 … 的内容原样抄写在右边__VA_ARGS__ 所在的位置。如下例代码:#include <stdio.h>#define debug(...) printf(__VA_ARGS__)int main(void){