自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(677)
  • 资源 (5)
  • 收藏
  • 关注

原创 powerpc平台watchdog总结

watchdog总结1. 硬件原理图这里使用了ADM706芯片,wdi喂狗引脚与CPUGPIO3相连。wdo看门狗超时复位信号输出引脚,与/MR手动复位输入相连,也就是会产生一个RESET信号。原理图如下所示:    2. uboot中添加watchdog喂狗功能首先需要在include/configs/xxx.h文件

2014-09-10 17:34:19 1331

原创 完成量(completion )实例

这是一个公交司机和售票员之间的线程调度,用于理解完成量,完成量是对信号量的一种补充,主要用于多处理器系统上发生的一种微妙竞争,在这里两个线程间同步,只有当售票员把门关了后,司机才能开动车,只有当司机停车后,售票员才能开门。 #include#include#include#include#includeMODULE_LICENSE("DualBSD/GPL");

2014-09-10 17:02:18 859

原创 看门狗的种类

在现在的嵌入式系统中主要可以分为三种类型的看门狗: 1. CPU内部自带的看门狗此类看门狗一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,设定溢出时间,并启动定时器。程序按时对定时器赋初值(或复位),以免被咬。这种看门狗是可以被禁用的(只要停止这个定时器即可)。大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册,如s3c2440系列芯片。优点:可以通过程

2014-09-10 16:45:47 2773

原创 nmap

一个强大的网络嗅探工具:

2014-06-08 21:50:02 584

原创 socket中的damain和type

socket创建插口时的系统调用函数:

2014-04-27 12:15:52 674

原创 socket架构中的socket结构体和sock结构体

socket创建函数中,有三个参数:

2014-04-27 12:08:29 752

原创 openswan 移植

最近一周都在移植openswan。这是个fei chan

2014-04-22 13:48:59 1717 2

原创 libpcap 库

libpcap是个非常强大的网络嗅探工具库。使用libpcap系列函数可以实现对网络包内容的侦测

2014-04-22 13:43:34 493

原创 gmp 移植

GNU MP is a library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers. It has a rich set of functions, and the functions have a regular int

2014-04-22 13:33:39 683

原创 pptpd 移植

pptpd vpn 也是一种基于ppp的VPN实现方式:

2014-04-22 13:26:02 573

原创 ppp 交叉编译

这里有一篇比较详细的ppphttp://blog.csdn.net/jmq_0000/article/details/7105287

2014-04-22 13:13:53 1112

原创 openssl 交叉编译

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

2014-04-22 12:34:12 626

原创 ipsec-tools 交叉编译

为了实现ipsec VPN 如果要使用racooon方式实现,则必须选择ipsec-tools

2014-04-22 12:28:30 1509

原创 lzo 交叉编译

这里用的是lzo-2.06版本./configure --host=mipsel-linux

2014-04-22 12:18:09 697

原创 strace 交叉编译

strace 是llinux下经常用的一个工具,

2014-04-22 11:38:56 1117

原创 iptables 交叉编译

最近搞iptables,linux下强大的防火墙配置工具。

2014-04-21 18:10:50 1428

原创 flex 交叉编译

我使用的是flex_2.5.35版, mips平台上交叉编译:./configure --host=mipsel-linux

2014-04-17 17:56:05 975

原创 socket类型

流套接字(SOCK_STREAM):流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。数据报套接字(SOCK_DGRAM):数据报套接字提供了一种无连接的服务。该服务并不

2013-12-12 11:25:31 512

原创 do...while(false)的作用

经常在函数中见到 do {...}while(false);一直挺纳闷,为什么会有这样的代码。现在想明白一点,这样做中间可以用break来跳出循环,从而达到goto的作用,因为goto有诸多弊端,应尽量避免。

2013-12-10 09:09:32 667 1

原创 中断保存现场

通常,中断响应时硬件已经保存了PC和PS的内容,但是还有一些状态环境信息需要保存起来。如果不做保存处理,那麽即使以后能按断点地址返回到被中断程序,但由于环境被破坏,原程序也无法正确运行。中断响应时硬件处理时间很短,所以保存现场工作可由软件来协助硬件完成,并且在进入中断处理程序时就立即去做。对现场信息的保存方式是多样化的,常用方式有两种:一种是集中式保存:在内存的系统区中设置一个

2013-11-13 13:50:04 4187 1

原创 并发(concurrency)与并行(parallelism)

并发和并行并不是一个意思。并行:是严格的多CPU同时执行。并发,并不是严格的同时执行,而是以时间片为单位交替执行,所以不需要多处理器。例子:一个并发程序是指能同时执行通常不相关的各种任务。以一个游戏服务器为例子:它通常是有各种组件组成,每种组件都跟外部世界进行着复杂的信息交互。一个组件有可能要处理多个用户聊聊;另外一些可能要处理用户的输入,并把最新状态反馈给用户;其它的

2013-11-07 11:10:00 510

原创 dd 之前必须 flash_eraseall 一下

用dd或nandwrite写mtd 设备 /dev/mtd* 之前,必须flash_erase 或flash_eraseall 一次,要不然会写不正确。

2013-11-06 16:50:25 787

原创 僵尸进程

1. 僵尸进程概念僵尸进程就是指子进程退出了,而父进程尚未退出,并且没有对子进程进行wait,致使子进程的资源得不到释放,依然占据在内存中,从而变成了像“僵尸”一样的进程.(僵尸不能动,却占据着身体;进程不能执行了,却占据着内存等资源)。  这种进程因为不再活动了,不会对信号进行处理,使用kill向它发送信号是没有用的,也就是它变成了杀不死的进程2. 僵尸进程的避免基本由3

2013-11-04 12:31:34 419

转载 linux中inittab文件详解

init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。理解Runlevel:  runlevel用来表示在init进程结束之后的系统状态,在系统的硬件中没有固定的信息

2013-10-15 22:17:21 1169

原创 linux启动:upstart 原理(替代了传统的init)

长期以来,多数Linux发行版一直在使用Unix System V引入的 init 系统。init 由内核自身产生,任务是启动系统剩余部分,产生并监视所有其它进程,看其是否停止或僵死。System V init 虽然过去一直运行的很好,但它已经有些迟暮了。这也是 Ubuntu 为什么会使用Upstart来代替正在老化的 init 系统。获取源代码地址: 从http://upst

2013-10-15 22:07:33 1021

原创 linux启动:upstart(替代了传统的init)

长期以来,多数Linux发行版一直在使用Unix System V引入的 init 系统。init 由内核自身产生,任务是启动系统剩余部分,产生并监视所有其它进程,看其是否停止或僵死。System V init 虽然过去一直运行的很好,但它已经有些迟暮了。这也是 Ubuntu 为什么会使用Upstart来代替正在老化的 init 系统。获取源代码地址: 从http://upst

2013-10-15 20:57:58 175

转载 shell 脚本实现的守护进程

# #!不是注释符,而是指定脚本由哪个解释器来执行,# #!后面有一个空格,空格后面为解释器的全路径且必须正确。#! /bin/ashPRO_PATH=""# testpro为要守护的可执行程序,即保证它是一直运行的PROGRAM="testpro"# 此脚本一直不停的循环运行,while 与 do 放在一行上要在条件后加分号# if、then、while、do等关键字或命令是作

2013-10-15 15:41:22 636

原创 xenomai

这两天一直在玩xenomai, 这是个开源项目,地址:www.xenomai.org英文是这么介绍xenomai的:Xenomai is a real-time development framework cooperating with the Linux kernel, in order to provide a pervasive, interface-agnostic, har

2013-10-12 17:55:13 2023 2

原创 Linux下编译静态库(.a)和动态库(.so)

静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m -----把文件移动到指定的静态库文件中 p -----把静态库文件中指定的文件输出到标准输出 q -----快速地把文件追加到静态库文件中 r -----把

2013-10-11 12:10:41 627

原创 alsa-lib, alsa-utils安装方法

ALSA 驱动安装方法ALSA 驱动下载:去http://www.alsa-project.org/main/index.php/Main_Page 下载:       alsa-driver-xxxxxx       alsa-lib-xxxxxx       alsa-ultis-xxxxxx即driver, lib, ultis包,后面的xxxxxx是具体的版本号,我

2013-10-10 11:41:31 1155

转载 amixer 命令使用

最近接触到amixer,大概明白了其意思和具体用法,简述如下。alsamixer是Linux 音频架构ALSA中的Alsa工具的其中一个,用于配置音频的各个参数。alsamixer是基于文本下的图形界面的,可以通过键盘的上下键,左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作。amixer,是alsamixer的文本模式,即命令行模式,需要用amixer命令的形式

2013-10-09 13:34:23 531

原创 linux系统让进程在后台运行的几种方法

1. 在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:$ ./test.sh & $ jobs -l[1]+ 17208 Running ./test.sh & 2. 对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将

2013-09-27 15:42:00 443

原创 linux系统让进程在后台运行的几种方法

1. 在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:$ ./test.sh & $ jobs -l[1]+ 17208 Running ./test.sh & 2. 对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将

2013-09-27 15:35:41 377

原创 killall

Linux命令:killall用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,这真是一个太好用的命令了。常用参数格式:killall 杀死指定名字的进程。实际上是向名字为的所有进程发

2013-09-25 16:44:15 520

原创 shell 脚本中删除所有进程

arm机器上删除所有进程比较简单,x86上进程就多了,就要复杂一些:如果要删除名为 "abc" 的进程,可以用以下步骤完成! 1.  查看进程,比如说有名为 abc 的进程,可以这样查看它的详细信息:ps -aux | grep -i "abc" //表示查看所有包含abc字符的进程;2.  去掉包含grep本身命令的情况:ps -aux | grep -i

2013-09-25 16:33:06 714

原创 for循环中有多个限制结束条件的正确写法

正确写法应该是:for(i=a,j=b; id; i++,j--){....}我以前都是把多个条件用逗号分隔开写。for(i=a,j=b;id; i++,j--){....}一直没有什么问题。但是今天我做了一个题,一直找不出来错误,我单步调试,最后终于被我发现,就是这种写法错了。原来,我之前的写法其实是逗号运算符, id 结果就是j>d的结果~~要想限制

2013-09-25 13:20:46 1957 1

原创 grub 编译_安装_配置

grub 源代码可以从网上下,这里我用的是grub-1.981. 编译grub源文件./configure使用configure 进行配置,产生相应的makefile文件。make使用make 编译make install如果configure 时候指定 --prefix= /install, 他会把编译出来的文件都放在/install 目录下

2013-09-24 18:07:40 1354

原创 getopt()和getopt32()

getopt()和getopt32()这两个函数, 都是用来就是用来分析命令行参数的函数。1. getopt()在继续讨论getopt 之前,先要明确两个概念:选项(option) 和 选项参数(argument)。如下例子:gcc -g -lm foo.c -o foo -g 中的 g,-o 中的 o 还有 -lm 中的 l 就是选项,而 -lm 中的 m 就是 l

2013-09-24 11:47:49 929 1

原创 路由器和交换机有什么区别

一直都不清楚路由器和交换机的区别, 今天仔细查了查,终于弄明白了些.路由器 路由器和交换机的区别:交换机主要是实现大家通过一根网线上网,但是大家上网是分别拨号的,各自使用自己的宽带,大家各自上网没有影响,哪怕其他人在下载,对自己上网也没有影响,并且所有使用同一条交换机的电脑都是在同一个局域网内。路由器比交换机多了一个虚拟拨号功能,通过同一台路由器上网的电脑是共用一个宽带账号,大

2013-09-22 13:24:49 788

原创 nanosleep()

函数原型int nanosleep(const struct timespec *req, struct timespec *rem);d.h头文件#include 参数形式struct timespec{time_t tv_sec; /* seconds */long tv_nsec; /* nanoseconds */};功能这个函数功能是暂停某

2013-09-22 10:37:13 564

opc-data-access protocol

opc data access protocol

2014-08-25

multcast_test 软件

android 平台 multicast test 软件

2012-07-18

vim增强补丁

更加人性化的vim功能增强,非常便于程序员开发,好使用。

2012-07-17

嵌入式C_C++语言精华.pdf

绝对经典. 堪称精华. 不下必后悔, 嵌入式 C C++,都概括进去了

2009-06-12

嵌入式linux入门笔记.pdf

嵌入式 linux 入门笔记,非常详细的说明哦,有助与新手学习

2008-12-04

空空如也

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

TA关注的人

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