- 博客(14)
- 资源 (41)
- 收藏
- 关注
转载 自旋锁spin_lock、spin_lock_irq 和 spin_lock_irqsave
自旋锁和互斥锁的区别是,自旋锁不会引起睡眠,所以可用于不能休眠的代码中(如IRQ)自旋锁保持期间抢占失效,而信号量保持期间可以被抢占尽管自旋锁可以保证临界区不受别的CPU和本CPU抢占进程打扰,但是得到锁的代码在执行临界区的时候,还可能受到中断和底半部的影响
2016-03-21 21:34:38 1120
转载 shell EOF 用户自定义终止符
#!/bin/bashftp -n << EOFuser guest 123456binarycd /home/promptmget *closebyeEOF使用Tab缩进#!/bin/bash ftp -n <<-EOF ... EOF注:<<后面不能有空格
2016-03-21 21:14:21 1010
转载 tcp、udp协议栈
tcp struct tcphdr { __be16 source; //源端口 __be16 dest; //目的端口 __be32 seq; //序列号 __be32 ack_seq; //确认号#if defined(__LITTLE_ENDIAN_BITFIELD) __u16 res1:4,
2016-03-19 10:45:39 1316
转载 misc_register杂项设备
include/linux/miscdevice.h 这些字符设备不符合预先确定的字符设备范畴 设备主设备号10struct miscdevice { int minor; //次设备号(如果设置为MISC_DYNAMIC_MINOR,表示系统自动分配未使用的minor) const char *name; const struct file_operations *f
2016-03-16 21:14:47 443
转载 预处理-大小端
检查包含预处理指令,对源代码进行相应的转换 删除程序中的注释和多余的空白字符预处理指令#if/#ifdef/#ifndef/#else/#elif/#endif (条件编译)#define (宏定义)#include#line (行控制)#error (错误指令)#pragma# (空指令)
2016-03-16 20:43:02 528
转载 Linux E667 同步失败
在使用Vim编辑/proc目录下的文件后,保存,显示“E667 同步失败”原因 因为proc这个目录是一个虚拟文件系统,它放置的数据都是在内存中,本身不占有磁盘空间,所以使用Vim编辑后会出现E667 同步失败,正确的修改方法是使用echo
2016-03-15 22:31:46 1763
转载 printk打印级别
默认级别# cat /proc/sys/kernel/printk4 4 1 7分别是:控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别在 kernel/printk.c 中定义int console_printk[4] = { DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */
2016-03-15 22:19:00 506
转载 kthread_run
头文件 include/linux/Kthread.h创建并启动/** * kthread_run - create and wake a thread. * @threadfn: the function to run until signal_pending(current). * @data: data ptr for @threadfn. * @namefmt: printf-st
2016-03-13 11:16:00 3740
转载 ARRAY_SIZE宏
求设备结构体中设备的个数定义在linux/kernel.h中#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof((arr)[0]) + __must_be_array(arr))__must_be_array(arr)是防止被误用,比如用指针而不是数组
2016-03-11 22:04:45 890
转载 tcp校验和
伪首部(pseudo header),通常指TCP伪首部和UDP伪首部 TCP的校验和是必需的,而UDP的校验和是可选的//共12字节typedef struct{ unsigned long saddr; //源IP地址 unsigned long daddr; //目的IP地址 unsigned char mbz; // mbz = must be zero, 用于
2016-03-10 22:51:33 2158
转载 arp命令
ARP(Address Resolution Protocol)命令用于显示和修改“地址解析协议(ARP)”缓存中的项目 ARP 把IP 地址解析成 LAN 硬件使用的媒体访问控制地址。以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包原理 某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后就会进行数据传输。如果未找到,则广播A一个A
2016-03-08 21:40:56 713
转载 sk_buff
他里面包含了各层协议的头部,比如ethernet, ip ,tcp ,udp等等。熟悉他是进一步了解Linux网络协议栈的基础 此结构定义头文件<include/linux/skbuff.h>struct sk_buff_head { /* These two members must be first. */ struct sk_buff *next; str
2016-03-06 22:35:33 3020 1
转载 printf打印字节
int main(){ unsigned char buf[] = "xxx"; int i = 0; printf("buf:"); for(i = 0; i < strlen(buf); i++) { printf("0x%0x", *(buf + i) >> 4 & 0xf) printf("%0x ", *(buf +
2016-03-06 17:30:25 4613
转载 dmesg命令
用于检测和控制内核环缓冲。程序用来助用户了解系统的启动信息Linux命令dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中开机信息保存在/var/log目录中名称为dmesg的文件里dmesg [ -c ] [ -n 级别 ] [ -s 缓冲区大小 ]-c 清除环缓冲内的内容 -s 缓冲区大小 定义一个大小为”缓冲区大小”的缓冲区用于查询内核环缓冲区。默认大小为
2016-03-02 21:41:03 1343
esp8266_non_os_sdk_api_reference_cn.pdf
2017-07-18
串口调试助手
2017-05-10
get-pip.py
2015-06-18
Qt_5_14_2_MSVC2017_64bit-Release
2021-04-19
ALINX黑金Zynq7000开发平台配套教程V1.02.pdf
2018-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人