- 博客(193)
- 资源 (21)
- 收藏
- 关注
原创 linux应用编程:文件操作
1:说明在文件操作方面主要是对文件的读写及对字符的读写,包括的函数有fopen(),fclose(),fwrite(),fread(),ftell(),rewind(),fgetc(),fgets()。在下面的实例中主要是通过上面的函数来完成对特定文件的读写操作。2:代码/* ==============================================
2013-09-12 18:05:18 1046
原创 单臂路由实现三层路由数据包转发及数据包格式分析
在7242+8328的板子上面,WAN口:port3,LAN口:port2,port4eth0上面的ip地址动态获取,用作外部WAN上网的接口,与此通信的数据包不加VLAN头。eth0.2 :用作内部LAN接口.IP地址固定,数据包进过LAN时自动添加或者去掉VLAN头。WAN和LAN之间是不通的。说明:192.168.100.244为WAN口所接PC IP.192.168.1
2013-09-12 18:00:18 5587 1
原创 linux应用编程:socket 常用API总结
1:代码#include #include #include #include #include #include #include #include #include #include#include#include//extern int h_errno;char interfaceIpAddr[50];int get_interface_ipAddr(char
2013-08-06 22:35:23 2276
原创 linux应用编程:thread总结
1:线程与进程的区别2:线程同步:互斥锁3:线程同步:条件变量4:线程同步:post信号量在代码中有实例。5:线程退出6:线程示例代码/* ============================================================================ Name : thr
2013-07-31 22:29:11 2240
原创 linux应用编程:signal(信号量) 实例1
1:示例代码#include#include#include#include#include#include#include#include //the copy fie size must>Mint count=0; //current copy numberint file_size; //the file sizepid_t pid;void sig_a
2013-07-29 22:53:45 1281
原创 linux 进程间通信--systemV 共享内存 实例
1:共享内存代码#include #include /* Type definitions used by many programs */#include /* Standard I/O functions */#include /* Prototypes of commonly used library functions,
2013-07-29 22:40:52 1023
原创 linux 进程间通信--systemV 信号量 实例
1:代码#include #include #include #include #include #include #define MAX_SEMAPHORES 3union semun{ int val; /* value for SETVAL */ struct semid_ds *buf;
2013-07-29 22:25:48 1203
原创 linux 进程间通信--systemV 消息队列 实例
1:消息接收端#include#include#include#include#include #include#include#include#include #include #define MAX_TEXT 512struct my_msg_st{ int my_msg_type; char msg_text[MAX_TEXT];};#define MSG
2013-07-29 22:17:52 1355
转载 I2C总线原理及应用实例
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安
2013-07-20 10:06:03 2476
转载 SPI总线
SPI总线 MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK。传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。采用SPI总线的系统如图8-27所示,它包含了一个主片和多个从片,主片通过发出片选信号-CS来控制对哪个从片进行通信,当某个从片的-CS信号有效时,能通过SI接收指令、数据,并通过SO发回数据。而未被选中的从片的SO端处于高阻状态。
2013-07-19 14:39:40 2535
原创 linux udp socket编程实例
1:udp通信框图2:udp server端代码#if 1#include "./../../udp_client/src/iolib/iolib.h" /* 添加用户自已的I/O函数库 */#define MAX_LINE 100//extern int checkSelect(int handfd,char *rwflag);void my_fun(char * p)
2013-07-18 21:58:10 6036
原创 linux TCP socket 实例
0:TCP/IP协议栈与数据包封装CP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后
2013-07-14 21:39:38 3982
转载 Linux静态库和动态库区别及实例
库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的
2013-07-14 14:31:42 2975
原创 总结的常用shell脚本命令,以备后用。
#!/bin/sh#for exm to test# ./check.sh 12 36 25 12 453 1 2 3 RETVAL=0SRRVER_START=1SRRVER_STOP=2DNS_STATUS=1dnsCheck(){ while test "x`pidof dnsmasq`" != x ; do ec
2013-07-13 21:00:56 4338
原创 linux thread 同步 操作 实例
1:linux thread 介绍如果需要只终止某个线程而不终止整个进程,可以有三种方法:从线程函数return。这种方法对主线程不适用,从main函数return相当于调用exit。一个线程可以调用pthread_cancel终止同一进程中的另一个线程。线程可以调用pthread_exit终止自己。#include void pthread_exit(void *value_ptr)
2013-07-04 22:44:04 2488
原创 linux fork signal 编程实例
1:signal的种类2:使用signal实现系统sleep功能static void sigHandler(int sig){ static int count = 0; static int alarmcount = 0; /* UNSAFE: This handler uses non-async-signal-safe functions
2013-07-03 22:39:53 1391
原创 linux-消息队列编程实例
上面是在eclipse下面的工程的编译情况,这个代码是来自《PRAISE FOR THE LINUX PROGRAMMING INTERFACE》一书。有三个文件组成。/*************************************************************************\* Copyright (C) Micha
2013-06-27 22:33:57 1463
原创 atheros之flash驱动程序分析
1:uboot中的参数mtkparts在uboot的bootargs的参数设置如下:其中mtdparts=“”的内容会传递给内核进行解析。即:在linux内核文件Cmdlinepart.c打开调试信息:即:/* debug macro */#if 1 //更改为1,将打开调试信息#define dbg(x) do { printk("DEBUG-CMDLINE-
2013-06-25 22:02:36 4515
原创 linux下组播收发程序
服务器端代码:#include #include #include #include #include #include #include #include #include #include #include #define MCAST_PORT 31241#define LOCAL_PORT 56171#define MCAST_ADDR "224.1.2
2013-06-13 22:20:11 4380
原创 linux 下getsockopt()和setsockopt()分析
1:在linux socket编译成中,我们经常使用如下类似的命令: #include /* See NOTES */ #include int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);
2013-05-20 22:04:03 2151
原创 linux 下 nf_conntrack_tuple 跟踪记录
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2013-05-20 21:57:26 6605
原创 iptables 中的NAT使用总结
首先对SNAT DNAT进行概念介绍:SNAT:源地址转换目标地址不变,重新改写源地址,并在本机建立NAT表项,当数据返回时,根据NAT表将目的地址数据改写为数据发送出去时候的源地址,并发送给主机目前大多都是解决内网用户用同一个公网地址上网的情况DNAT:目标地址转换和SNAT相反,源地址不变,重新修改目标地址,在本机建立NAT表项,当数据返回时,根据NAT
2013-05-15 17:37:58 15245
转载 寻扶风高中03级毕业的 黄文娟,望知情者速与本人联系.
寻找陕西省宝鸡市扶风高中03级毕业的黄文娟,望知情者速与本人联系.。我相信最终有天会找到你的。03年高中毕业的时候,只知道去北京上学了,2004-2005年中还联系过几次。最后不知道为什么联系不上了。
2013-03-25 19:22:23 1900
原创 跨网段组播数据转发
最近在实际的项目中遇到了组播通信,其中最主要的问题是组播如何跨网络路由的问题,起初在网络找资料,找到了PIMD来实现组播数包的转发。借助pimd也能实现组包数据包的转发。但是,pimd是个应用程序,如果组播数据平凡的话,会影响到系统的效率。同时考虑到实际的项目中,组播数据源和组播的接受者是在同一个局域网之内,只要交换机支持组播,通过交换机将组播的发送者和接受者连接起来,之后通过更改驱动程序
2013-03-05 20:21:46 23615
原创 pppoe调试信息
---------------------------------------------* The following section contains information about your systemThu Jan 1 00:02:21 UTC 1970Output of uname -aLinux (none) 2.6.31--LSDK-9.2.0_U10.102
2013-03-05 19:23:30 7226 3
原创 组播路由pimd 2.1.8
最近工作中涉及到了组播,对基本的概念,同时在linux下面对发送和接受组播的UDP程序进行验证。主要涉及到组播数据包的路由,linux内核中普通的路由协议是不支持组播数据包的转发,因此需要研究支持组播数据包转发的路由。因此选用了pimd 2.1.8。同时研究组播时需要设计到IGMP协议,是跟组播路由器通信的协议,主要是用来报告自己加入的组播组和响应组播路由器的查询结果。其实现可以在linux内
2013-01-23 21:37:29 14970 4
原创 zubao
http://blog.csdn.net/yming0221/article/details/7549340 http://www.cnblogs.com/hateislove214/archive/2010/11/05/1869883.htmlhttp://blog.csdn.net/sandflee/article/details/5675732http://wenk
2013-01-12 18:12:41 1181
原创 根据IP地址获取对应的MAC地址
#include #include #include #include #include #include int main(int argc, char *argv[]){ struct sockaddr_in sin = { 0 }; struct arpreq myarp = { { 0 } }; int sockfd; unsigne
2013-01-08 21:32:53 5075
原创 linux 内核线程实例
~ # ps PID USER VSZ STAT COMMAND 1 root 868 S init 2 root 0 SW< [kthreadd] 3 root 0 SW< [ksoftirqd/0] 4 root 0 SW< [events/0] 5 r
2012-12-28 21:33:36 2907
原创 jffs2根文件系统与uimage内核
1:jffs2根文件系统在我们现在mips平台上面,其根文件系统使用的是jffs2格式的文件系统。创建jffs2时,使用的命令如下:jffs2_build: image_root@echo Making jffs2 at `date`cd $(IMAGEPATH) && \$(TOPDIR)/build/util/mkfs.jffs2 --root=$(IMAGE_ROOT
2012-12-28 21:31:07 3906
原创 linux TC命令使用总结
brctl addbr br0brctl addif br0 eth1ifconfig br0 192.168.119.7ifconfig eth0 10.10.106.230echo 1 > /proc/sys/net/ipv4/ip_forward 在实际的项目中,由于需要控制下载和上传的带宽,为特定的用户提供可靠的带宽保证。上传时使用的是WAN口即用来连接外网的,在我
2012-12-28 21:26:31 24436 1
原创 linux 内核中的软中断处理
Linux内核定义的软中断如下:static struct softirq_actionsoftirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;char *softirq_to_name[NR_SOFTIRQS] = { "HI","TIMER", "NET_TX", "NET_RX", "BLOCK", "T
2012-12-27 19:27:49 2046
原创 linux下之定时器timer实例
最近工作中涉及到在一定的时间之后对特定的动作进行处理。比如按键,按键需要在按下至少4S之后,重新启动系统之类、此时使用定时器,可以确保准确的计时。下面的实现可以通用。struct timer_list os_timer_t; //定义定时器#define OS_TIMER_FUNC(_fn) \ void _fn(unsigned long timer_arg)#define OS_
2012-12-08 09:48:15 7863 2
原创 内核中如何实现周期性的任务执行
/*本实例主要测试的是:内核中如何实现周期性的任务执行。如果驱动程序中需要执行周期性的动作,可使用以下三种方式之一。基本思路为:创建work,让创建的work调度到linux系统内核queue还是自己创建的queue。默认的工作队列是把创建的任务提交给特定的内核线程来执行,这个特定的内核线程是:event/n,n是处理器的编号,单处理器中n为0,即为event/0这样一个内
2012-12-08 09:45:26 2922
翻译 ebtables的使用
http://blog.163.com/dyc_888@126/blog/static/10044335120111255249503/http://blog.chinaunix.net/uid-10694051-id-2935976.html一:ebtables简介ebtables和iptables类似,都是Linux系统下网络数据包过滤的配置工具。既然称之为配置工具,就是说过滤功能
2012-12-06 16:29:34 14298
原创 linux 下VLAN数据包格式及vconfig命令测试
主要是对VLAN的数据包格式进行了抓包分析。同时对vconfig命令的适用进行了说明。PC:10.10.107.168 AP:10.10.107.231(eth0.100)1:添加VLAN,使用vconfig。~# vconfigBusyBoxv1.10.3 (2012-09-23 02:13:20 CST) multi-call binaryUsage:vconfi
2012-11-25 10:11:39 25024 2
原创 atheros 8328交换芯片 在SDK_10.5.13上面的移植
这一部分 内容主要是根据自己的工作内容总结而成。其修改的总结文档可以在8328在SDK 10.5.13上的K移植总结.pdf上面下载。
2012-10-19 16:01:38 2315
原创 NAPI处理方式分析
NAPI 的核心在于:在一个繁忙网络,每次有网络数据包到达时,不需要都引发中断,因为高频率的中断可能会影响系统的整体效率,在高流量下,网卡产生的中断可能达到每秒几千次,而如果每次中断都需要系统来处理,是一个很大的压力,而NAPI 使用轮询时是禁止了网卡的接收中断的,这样会减小系统处理中断的压力,NAPI 是Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而
2012-08-23 22:18:16 4466
原创 AR9344中ethernet处理方式分析
http://bbs.chinaunix.net/thread-1960516-1-1.html9344 ethernet数据接收代码分析在板的ethernet只有一个网卡,在系统处理话的时候有如下类似代码: for(i = 0; i { dev = alloc_etherdev(ATHR_MAC_ETHERDEV_SZ); if
2012-08-23 22:16:57 6398 2
转载 tasklet网络分析汇总
Chapter 1:驱动程序在初始化时,通过函数task_init建立一个tasklet,然后调用函数tasklet_schedule将这个tasklet放在 tasklet_vec链表的头部,并唤醒后台线程ksoftirqd。当后台线程ksoftirqd运行调用__do_softirq时,会执行在中断向量表softirq_vec里中断号TASKLET_SOFTIRQ对应的tasklet_
2012-08-22 23:01:33 1358
ipsec通道说明.docx
2020-04-05
WLAN各平台吞吐量测试总结
2019-03-21
privoxy入门总结
2019-03-21
art相关知识总结
2019-03-21
高通WiFi相关总结
2019-03-21
openwrt学习总结
2014-06-03
sock5 udp 透传 总结
2014-02-14
vitess交换芯片开发总结
2013-11-06
ucos for linux port 代码
2013-09-20
Serial Attached SCSI technologies and architectures
2012-03-05
存储 LSI expander 开发总结
2012-01-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人