- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 路由器跳转
设某路由器建立了如下路由表(这三列分别是目的网络,子网掩码和下一跳路由器,若直接交付则最后一列表示应当从哪一个接口转发出去)目的网路 子网掩码 下一跳128.96.39.0 255.255.255.128 接口0128.96.39.128 255.255.255.128 接口1128.
2013-03-31 19:40:24 1462
转载 内存中堆和栈
一.预备知识——程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、 栈区(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构的栈。由高地址向低地址分配。2、 堆区(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。由低地址向高地址分配。注意它与数据结构中的堆是两回事,分配方式类似于链表。?
2013-03-30 21:09:34 531
转载 C语言中的异常处理
一 前言:异常处理,对于做面向对象开发的开发者来说是再熟悉不过了,例如在C#中有try{ ...}catch( Exception e){...}finally{.....}在C++中,我们常常会使用try{}...catch(){}块来进行异常处理。说了那么多,那么到底
2013-03-30 21:08:41 536
转载 Linux设备驱动之内存映射
1. 内存映射所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率。Linux提供了mmap()函数,用来映射物理内存。在驱动程序中,应用程序以设备文件为对象,调用mmap()函数,内核进行内存映射的准备工作,生成vm_area_struct结构体,然后调用设备驱动程序中定义的mmap函数。 2. 映
2013-03-30 19:59:22 714 1
转载 vi/vim替换指令
vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行
2013-03-30 16:09:25 582
转载 module_param
module_param 在用户态下编程可以通过main()的来传递命令行参数,而编写一个内核模块则通过module_param() 参数用 module_param 宏定义来声明, 它定义在 moduleparam.h. module_param(name,type,perm); module_param 使用了 3 个参数: 变量名, 它
2013-03-26 18:49:29 548
转载 ioctl _IO,_IOW,_IOWR
_IO, _IOR, _IOW, _IOWR 宏的用法与解析在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit15
2013-03-21 19:22:54 893
转载 PV操作,信号量
例如,P1和P2是分别将数据送入缓冲B和从缓冲B读出数据的两个进程,为了防止这两个进程并发时产生错误,狄克斯特拉设计了一种同步机制叫“PV操作”,P操作和V操作是执行时不被打断的两个操作系统原语。执行P操作P(S)时信号量S的值减1,若结果不为负则P(S)执行完毕,否则执行P操作的进程暂停以等待释放。执行V操作V(S)时,S的值加1,若结果不大于0则释放一个因执行P(S)而等待的进程。对P1和P2
2013-03-21 19:21:39 771
转载 linux生产者消费者模型源代码
找到一段蛮好的linux生产者消费者模型源代码,其中的mmap()未接触过,应该是较老版本的共享内存函数吧。跟大家分享下:模型: 有两个生产者,一个写入大写字母,另一个写入小写。有三个消费者,一个消费大写字母,一个消费小写字母,还有一个不分大小写消费。#include #include #include #include #include #include
2013-03-21 19:20:22 1049
转载 怎样在ubuntu下安装Qt开发环境
安装前确保有4G的剩余空间。安装过后可以删除2G安装用的文件。注:所需要的时间较长,至少数个小时。步骤/方法一、下载Qt Framework。进入网址http://qt.nokia.com/downloads,选择中间的标签LGPL,然后下载Qt libraries 4.7.0 for linux/x11(199MB)更新:找不到的话可以直接到htt
2013-03-21 19:01:17 878
转载 Qt安装—图文并茂搭建VS2008+QT开发环境
(一)工欲善其事,必先利其器,废话不多讲。 总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚: 1,首先明确需要下载什么版本的QT。网上流行的安装说明只是针对过去旧版本的QT,还有要求下载VS2008 SP1补丁的等等。很乱,对于刚接触Qt开发者会造成不必要的困扰,安装个开发环境真的需要那么繁琐和劳神吗。 2,对于环境变量的配置,诸
2013-03-21 18:49:23 634
原创 uboot,内核uImage,网络根文件系统nfs的搭建(基于友善mini2440)
基于友善的mini2440的环境搭建。(通过uboot下载,采用nfs根文件系统的方式)连上usb转串口线,电源线,USB下载线,网线一头接电脑、一头接开发板。开关打到NOR,启动,进入NOR上的supervivi界面,按a,通过DNW下载u-boot.bin到NAND falsh至此可以拔掉USB下载线了。开关打到NAND,启动,进入u-boot界面可以利用p
2013-03-21 01:42:11 1399
转载 ioctl等
设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。我们前面的“Hello World”驱动程序已经可以提供读写功能了,在这里我们将扩展我们的驱动以支持设备控制接口,在Linux中这个接口是通过ioctl函数来实现的。设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations 结构,这里我们将介绍
2013-03-19 23:58:35 525
转载 嵌入式linux内核编译
一、内核的获得可以从网上下载内核文件,http://www.kernel.org。如果是为了练习,尽量下载2.4.x的内核。因为2.6.x的内核比较大,当然编译也需要更都的时间。二、内核的编译Linux内核的编译菜单主要有三个版本:1)make config:进入命令行,可以一行一行的配置。2)make menuconfig:开发人员比较熟悉的menuconfig菜单。3)
2013-03-19 22:25:23 801
转载 zImage生成uImage
如何生成 uImageU-boot 就是为加载kernel而服务的简单来讲:u-boot 启动过程分为两个部分 :Stage 1 and Stage2Stage1 主要是初始化硬件设备, 然后最主要的功能就是把Stage2 load到RAM中去。u-boot与kernel的关系U-boot为kernel服务, u-boot为kernel提供一些kerne
2013-03-19 20:18:32 764
转载 Linux makefile教程
概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写m
2013-03-19 16:00:35 485
Project2007 user guide
2018-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人