自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 HTTP 协议详解

HTTP协议简介超文本传输协议(英文:HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的R...

2021-03-11 15:58:59 748

原创 Using Visual Studio Code for C Programming on an Old Linux Remote Server

Using Visual Studio Code for C Programming on an Old Linux Remote ServerVisual Studio Code with C/C++ extension on Windows 7Visual Studio Code(VSCode) has become the most popular development environment in the world, and for some good reasons:if.

2021-03-11 15:22:44 641

原创 Linux内核中的数据结构与算法(三)哈希链表

四,哈希链表谈到链表就不得不谈Linux内核中另外一个重要的结构,哈希链表。讨论这个结构前,你需要对哈希的最基本的概念要清楚哦,由于我们已经讲过Linux内核中的普通链表的结构,这里我们对比他们的区别来了解哈希链表会直观一些。Linux链表认为双指针表头双循环链表对于HASH表来说过于浪费,因而设计了一套用于HASH表的hlist的数据结构,单指针表头双循环链表。hlish表头仅有一个指向首节点的指针,而没有指向尾节点的指针,这样在海量的HASH表中存储的表头就能减少一半的空间消耗。定义和初始化

2021-03-11 15:20:55 496

原创 Linux内核中的数据结构与算法(二)

四,基本链表在讲链表前我想多说几句,链表基本上是所有语言所有行业的程序员都会在日常生活中频繁接触的数据结构了,所以在笔试的环节中我们会发现有大量的知识点是考察链表的使用,我希望看了此文章的人能够了解Linux内核中的链表的使用方法,我认为你有链表的编程经验。1.单向链表单向链表我们都知道是如下一种结构的东西,Head指针指向第一个成为表头节点,终止于最后一个指向NULL的指针。2.双向链表双链表就是如下一种结构,与单链表不同的是双链表中每个节点存在prev,next两种指针,分别

2021-03-11 15:19:46 162

原创 Linux内核中的数据结构与算法(一)

一,序言其实想写这个系列很久了,因为本人工作的关系,平时接触Linux内核很多,从业后很多时候在网上查找的东西是片面或者不系统的,打算给自己的知识库进行个整理吧,打算开笔写这个系列,再加上自己想考研了,算是重新学习,也算巩固自己的知识吧。如果有什么错误和疏漏,也请看客们给出批评意见,比心比心比心~~~❤️❤️❤️二,概述本系列文章主要介绍Linux中涉及的数据结构和算法,其实这远比你想象的多得多呢,没有Linux内核研究经验的小伙伴们也不用担心,懂C语言就行了,文章中使用内核C语言呈现数据结构和

2021-03-11 15:18:20 240

转载 2021-02-05

Using Visual Studio Code for C Programming on an Old Linux Remote ServerVisual Studio Code with C/C++ extension on Windows 7Visual Studio Code(VSCode) has become the most popular development environment in the world, and for some good reasons:if.

2021-02-05 15:03:40 1091

转载 H.323

H.323 is a recommendation from the ITU Telecommunication Standardization Sector (ITU-T) that defines the protocols to provide audio-visual communication sessions on any packet network. The H.323 stand...

2019-01-04 16:02:26 1232

原创 TWAMP protocol

1. IntroductionTow-Way Active Measurement Pootocol  (TWAMP) is an open protocol for measuring network performance between any tow devices in a network that supports the protocols in the TWAMP framew...

2018-11-23 11:10:44 3739

原创 PPTP

1. IntroductionThe Point-to-Point Tunneling Protocol (PPTP) is al less used method for implementing virtual private networks. PPTP has many well known security issues.PPTP uses a TCP control chann...

2018-11-16 14:55:56 3293 1

原创 RTSP protocol

1. IntroductionThe Real Time Streaming Protocol (RTSP) is a network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is ...

2018-11-15 18:06:04 1025

转载 GRE 技术

GRE简介协议简介 GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(IPX, AppleTalk, IP, IPSec, DVMRP, etc.)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三...

2018-11-15 14:34:16 6934

原创 (一)CDN技术分类概述

一,概述CDN的全称是Content Delivery Network,即内容分发网络。使用CDN技术的主要目的在于增加访问速度、解决南北互联(中国)、提高用户体验。追述历史,史上最有名的CDN事件就是克林顿丑闻的斯塔尔报告被放在互联网,因为下载人数过多,导致服务器瘫痪。该事件促使CND诞生。CDN的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等。内容路由技

2016-08-22 11:10:09 1604 1

转载 kmalloc内核函数

#include void *kmalloc(size_t size, int flags); 给 kmalloc 的第一个参数是要分配的块的大小. 第 2 个参数, 分配标志, 非常有趣, 因为它以几个方式控制 kmalloc 的行为. 最一般使用的标志, GFP_KERNEL, 意思是这个分配((内部最终通过调用 __get_free_pages 来进行, 它是 GFP_ 前缀的来源

2012-09-19 11:23:52 1169

转载 Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析

在驱动程序里, ioctl()函数上传送的变量 cmd是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:     bit31~bit30 2位为 “区别读写”区,作用是区分是读取命令还是写入命令。     bit29~bit15 14位为 "数据大小"区,表示 ioctl

2012-09-19 10:56:48 39029 4

转载 dma s3c6410

代码路径:arch\arm\plat-s3c64xx\Dma.c1.              static void dbg_showchan(struct s3c2410_dma_chan *chan)通过读寄存器查看channel信息2. static void show_

2011-07-20 13:34:41 2110

转载 s3c6410 DMA驱动分析

DMA谨以此文纪念过往的岁月。DMA传输支持4种格式,内存到内存,设备到内存,内存到设备,设备到设备。对于内存到内存比较好理解,就是不通过CPU的复制,直接使用进行数据传输。1.dma的初始化在cpu.c文件中会对CPU的一些最最基本的资源初始化,如时钟,中断等等,在该文件中会注

2011-07-20 11:30:30 3048

转载 Linux s3c2410 DMA驱动开发

网上介绍LINUX下的一般驱动程序开发示例浩如烟海,或是因为简单,关于DMA驱动的介绍却寥寥无几;近期zhaoyang因工作需要,花了几日时间开发了某设备在S3C2410处理器Linux下DMA通信的驱动程序,有感于刚接手时无资料借鉴的茫然,故写点介绍,期待能给有DMA开发任务的

2011-07-20 11:14:53 2496

原创 s3c 6410 DMA驱动分析

s3c6410 linux DMA驱动分析 2010-11-08 19:23最近准备开发DMA驱动,先对s3c6410驱动做了一些分析。代码路径:arch\arm\plat-s3c64xx\Dma.c1.              static void db

2011-07-05 09:33:59 1693 1

原创 使用F2812调试DS1302实时时钟芯片经验

最近在调试DS1302忙一天终于搞定,特此写点心得共享下希望各位少走弯路,最重要的是要保住芯片手册,基本上软件上需要注意的问题芯片手册都能发现。1.      在上电时,RST 必须为逻辑0 直至Vcc>2.0V。同时SCLK 在RST 驱动至逻辑1 状态时必须为逻辑0。2.      数据输入是在SCLK的上升沿,数据输出是在SCLK的下降沿。3.      传输方式:低位先传输

2011-06-09 14:20:00 3056 1

原创 2812 GPIO

1、GPxMUX寄存器 通用输入输出多路选择寄存器I/O是工作在通用数字IO还是外围IO信号引脚就有GPxMUX决定。GPxMUX.bit.xx=0,xx通用数字IO;GPxMUX.bit.xx=1,xx外围IO引脚。2、GPxDIR寄存器 方向选择寄存器如果配置为通用数字IO脚,那么GPxDIR决定了该引脚是输入还是输出。GPxDIR.bit.xx=0,xx配置为输入;GPxDIR.bitxx=1,xx配置为输出。3、GPxQUAL寄存器 设置采样脉冲寄存器在配置为通

2011-06-01 13:19:00 2276

原创 2812 SCI模块

<br />SCI(Serial Communication Interface),即串行通信接口,是一个双线的异步串口,即具有接收和发送两根信号线的异步串口,一般可以看作是UART(通用异步接收/发送装置)。<br /> <br /> <br />2812的SCI模块支持CPU与采用NRZ(non-return-to-zero 不归零)标准格式的异步外围设备之间进行数字通信。如果设计时我们的SCI使用的是RS232串行接口,那么,2812就能和其他使用RS232接口的设备进行通信。例如2812内部的两个S

2011-05-25 09:07:00 3981 1

原创 FFT算法的物理意义

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。    虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。    现在圈圈就根据实际经验来说说FFT结果的具体物理意义。一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告

2011-03-15 10:00:00 29983 12

转载 基于DSP的FFT算法在无功补偿控制器上的应用

0 引言    在电力系统中,无功功率是影响电压稳定的一个重要因素,无功补偿是保证电力系统高效可靠运行的有效措施之一。要取得无功补偿的最佳效果,必须准确地测量出有功功率和无功功率。本文基于非正弦周期信号的无功功率理论,采用快速傅里叶算法,测量有功功率和无功功率,精确的计算,可以有效地提高投切精度,简化投切策略,但其缺点是计算量较大,单片机系统的计算速度远不能满足要求,然而DSP的应用则解决了计

2011-03-15 09:57:00 3798 3

原创 s3c6410 18b20

<br />#include <linux/module.h><br />#include <linux/kernel.h><br />#include <linux/fs.h><br />#include <linux/init.h><br />#include <linux/miscdevice.h><br />#include <linux/delay.h><br />#include <asm/irq.h><br />#include <mach/hardware.h><br />#include

2011-01-24 10:39:00 1859

原创 NAND坏块

<br />1. 为什么会出现坏块 <br />      由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。坏块的特性是:当编程/擦除这个块时,不能将某些位拉高,这会造成Page Program和Block Erase操作时的错误,相应地反映到Status Register的相应位。 <br />2. 坏块的分类 <br />      总体上,坏块可以分为两大类 <br />    1. 固有坏块 <br

2011-01-07 14:08:00 1105

原创 嵌入式web server boa 在s3c6410上的移植

<br />嵌入式web server boa 在S3C6410上的移植<br />开发平台:LINUX<br />目标平台:S3c6410<br />开发工具:arm 交叉工具链版本4.3.2  <br />boa版本:boa-0.94.13.tar.gz<br /> <br />一、下载源码,生成makefile<br />     1.下载源码<br />     2.解压 tar zxvf boa-0.94.13.tar.tar<br />     3.cd boa-0.94.13/src<br /

2010-12-31 10:29:00 1655

原创 linux下对系统时间的设置

hwclock可以设置系统时间,大家可能都用过。但是我想每个人对知道此命令的途径却不完全相同。我陈述一下自己得知此命令的过程,希望能那些对linux望而却步的初学者有些帮助,linux本身公开源码,这对那些追根问底的人是个不错的选择。文中过程废话较多,假设读者是初学者,对一些过程不是很清楚。高手见谅!几天前要做几台服务器的时间同步,和同事讨论系统时间设置的问题,我模糊记得date可以设置系统时间,和他打赌可以使用(为此输了三条鱼,:( )比如:[root@TestRA te

2010-12-10 10:18:00 4169 1

原创 ioctl对缓存的处理

ARP缓存表arp_tbl由协议栈在运行期间自动维护,包括邻居新建,更新,回收等。同时,TCP/IP协议栈的实现中也提供了三个命令,可以用来由用 户维护arp_tbl,这三个命令分别是SIOCDARP(删除arp_tbl中的一个邻居),SIOCSARP(设置arp_tbl中的一个邻居), SIOCGARP(获取arp_tbl中的一个邻居)。用户使用系统调用ioctl来传递这三个命令,命令参数是结构体struct arpreq,其定义如下:<br /><br />    struct arpreq {<br

2010-12-09 14:37:00 1638

原创 解决Ubuntu 9.10文件不能共享的问题

<br />用vmware workstation 6.0安装了fedora 11。由于要解决屏幕分辨率和文件共享的问题,就尝试安装vmware tools。但是每次编译都有很多错误。鼠标移动是没有问题的、加载U盘之类也没问题、设置分辨率也没问题,就是hgfs文件夹下没有出现主机共享的文件夹。为此大伤脑筋。在网上游离了很久,都没有什么值得有价值的发现。 今天闲的实在没事,我又去搞着东西,哇塞,又出现新的文章了,看来总有些牛人会解决这些问题的。文章说,是因为vmware tools只支持2.6.28的内核,而

2010-12-07 09:35:00 1480 1

原创 nand scrub命令注意事项

<br />在使用nand scrub命令强制擦除带有坏块的分区时,在提示输入y/n时实际生效是输入y后在输入回车,并且y不会显示,否则会打印scrub <br />abort

2010-12-06 11:05:00 9368 5

原创 如何把自己的模块编译到内核中

<br /> 如何把一个自己写的外部驱动模块编译添加到内核中有时候还是需要把自己写的驱动模块添加到内核中去编译成一个整体,这样很容易YY,我靠,我也能在内核目录里加代码了<br /><br />首先选一个典型的例子,一个外部驱动模块,需要传入两个参数,然后通过cat /proc/result 查看他们的和<br />/*<br />test_inline_driver.c<br />这是一个例子,把模块参数val1+ val2的和通过 cat /proc/result 显示出来<br />*/<br />#

2010-12-06 11:03:00 1671 3

原创 Ubuntu ftp 配置

<br />安装vsftpd sudo apt-get install vsftpd 2)设置 vsftpd.conf文件 注意:设置之前请备份!! sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old .1.1、监听地址与控制端口   listen_address=ip address 此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了在主机的哪个IP地址上监听FTP请求,即在哪个IP地址上提供 FTP服务。对于只有一个IP地址的主机,不需要

2010-11-23 11:22:00 762

转载 白盒测试

一、白盒测试 根据软件产品的内部工作过程,在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。这种测试方法就是白盒测试。白盒测试把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。  不论是黑盒测试,还是白盒测试,都不可能把所有可能的输入数据都拿来进行所谓的穷举测试。因为可能的测试输入数据数目往往达到天文数字。下面让

2010-07-20 14:19:00 1543

原创 白盒测试工具集

Parasoft白盒测试工具集工具名支持语言环境简介JtestJava代码分析和动态类、组件测试JcontractJava实时性能监控以及分析优化C++ TestC,C++代码分析和动态测试CodeWizardC,C++代码静态分析Insure++C,C++实时性能监控以及分析优化.test.Net代码分析和动态测试<br /> Compuware白盒测试工具集工具名支持语言环境简介BoundsCheckerC++,DelphiAPI和OLE错误检查、指针和泄露错误检查、内存错误检查TrueTimeC++,

2010-07-20 11:30:00 1137

原创 ubuntu8.10 samba配置

<br />5.配置samba<br />ubuntu 8.10 下配置samba,实现windows xp 访问Ubuntu<br />5.1,准备<br />首先更新 software sources, 找到最快的源<br />执行:<br />$ sudo apt-get update<br />5.2. samba 的安装<br />sudo apt-get install samba-common smbclient<br />$ sudo apt-get install samba<br />$

2010-07-19 16:50:00 619

转载 LINUX RTC机制实现计时器类

<br />   更好的计时器类实现:LINUX RTC机制实现计时器类(原创)<br />      很多时候需要在LINUX下用到定时器,但像setitimer()和alarm()这样的定时器有时会和sleep()函数发生冲突,这样就给编程带来了很大的困难。<br />    写了一个定时器的类,使用select进行精确定时。而且可以在系统中创建不限数量的定时器,且互不干扰。类的内部采用线程实现。即线程+select。代码如下:<br />CTimer.h:<br />/*<br />* CTimer.

2010-07-09 13:54:00 1421

原创 linux串口数据传输出现问题的几点总结

<br />(一)很多时候当在使用串口的时候你会发现在read串口设备时会出现当机现象,出现这种现象的原因可能是你在open设备的时候没有使用非阻塞的方式打开,在使用串口发送数据和接收数据的时候,或者注意select的配合使用达到非阻塞的读取。<br />(二)在系统头文件<termios.h>中定义了终端控制结构struct termios,tcgetattr()和tcsetattr()两个系统函数获得和设置这些属性。结构struct termios中的域描述的主要属性包括: <br /><br />c_

2010-07-09 13:49:00 5537

原创 linux串口编程

<br />Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。<br />串口简介<br />串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准

2010-07-03 13:11:00 896

原创 linux串口编程

<br />Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。<br />串口简介<br />串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准

2010-07-03 13:09:00 699

原创 中断和中断处理程序

驱动程序可以通过下面的函数注册并激活一个中断处理程序,以便处理中断:int request_irq(unsigned int irq,                         irqreturn_t (*handler)(int ,void *,struct pt_regs *),                         unsigned long irqflags,

2010-05-25 17:03:00 741

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除