自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

肖同丽

学海无涯 兴趣做舟

  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redhat下安装自己的内核

1. 把下载的内核拷贝到一个目录下。然后解压:$ tar -jxvf linux-2.6.28.tar.bz2. 解压完后,在该文件夹下,会产生一个新的文件linux-2.6.28进入linux-2.6.2目录,执行一下步骤2. $ Makedistclean3.$ Cp  /usr/src/kernels/2.6.18-164.el5-i686/.config     .config

2014-03-05 17:41:55 1294

原创 字符设备驱动

(1)、实现功能:创建设备文件。在用户空间实现对设备文件的操作。(2)、实现过程:写字符设备程序char_1.c 文件==》写makefile并编译==》加载$insmod char_1.ko ==》查看系统的设备号$cat  /proc/devices (已经为名为xtl_test的设备申请了一个设备号 111)1、写字符设备程序char_1.c 文件#inclu

2013-10-31 20:30:36 603

原创 内核模块基础

内核的模块第一步:编写一个hello.c文件#include #include /*内核中库文件*/ MODULE_LICENSE("DUAL BSD/GPL");static int num=300;module_param(num,int,S_IRUGO);/*传入可变参数,加载时传入参数*/static int xtl_init(void){ printk

2013-10-30 20:13:20 599

转载 Linux内核模块导出后无法调用问题解决(模块间函数调用通讯)

Linux模块间通讯方法非常的多,最便捷的方法莫过于函数符号导出,然后直接调用。然而在linux2.6.26以后的内核中模块的符号导出经常会出现问题,一个模块中的导出符号不能被另外一个模块进行调用。这个使得处理有依赖关系的模块非常的头疼。 1. 符号导出函数EXPORT_SYMBOL() EXPORT_SYMBOL标签内定义的函数对全部内核代码公开,不用修改内核代码

2013-10-30 17:03:22 642

原创 子网掩码和IP地址运算

子网掩码:作用:将某个IP地址划分成网络地址和主机地址两部分。子网掩码一旦设置,网络地址和主机地址就固定了。计算:将IP地址和子网掩码转换为二进制的形式,然后进行“与”计算。得到网络号,也就是该子网的首地址。一直纠结于为什么这么计算,现在整理下对这个计算的理解:1、  首先是子网掩码可以根据子网中的主机数得来。将主机数用二进制表示,计算二进制的个数N。把32位的

2013-09-17 21:48:49 4191

原创 从文件系统本质看硬链接和软连接的区别

该文件的注释的参考页码书籍:linux c编程一站式学习1、 首先把一个文件作为分区格式化。然后在这个文件系统中分析硬链接和软连接的区别$ Dd  if=/dev/zero of=fscount=256 bs=4k该语句详细解释在P510 2、 用常规文件制作成的文件系统也可以像磁盘分区一样mount 到某个目录。$Sudo mount –o loop  fs /mount

2013-09-16 17:47:14 1325

原创 链表中的结构体和指针

1. 首先定义一个结构体类型。2.通过宏定义tyepedef  用s_list 代表此结构体类型。3.

2013-08-17 14:53:24 2045

原创 堆&链表&中式表达式及实现

/*program name:stack_expre.cfunction:input the expression and caculatte the valuedata:13-8-4author:tt*/#include #include /*defines a structure type*/struct s_node{ int data; struct s_node

2013-08-17 12:24:50 919

原创 二叉树

系统里的文件的关系可以用树来表示,文件是线性的存放在硬盘上的。可以用树表示的内容在硬盘上线性存放着。一、二叉树有三种表示方式1.二叉树数组表示法:(空间浪费大)在主程序中定义了nodelist[16] 和b_tree[16],在执行程序是输入:1 ,2,3,4,5,6时会出现错误。原因是数字依次增大时,形成的是右歪斜树。此时的二叉树空间需要到2^6-1个。分配的空间不够使,

2013-08-16 19:44:33 779

原创 环形队列

环形队列牺牲了一个字节front 指向的字节不能存放数据开始写的添加一个数据的子函数如下:这样程序在添加数据时不会出现错误,在添加到满时会显示“the queue is full”。在删除时就出现错误,如果添加到满,rear 和front 相等。在删除数据的函数中就直接输出“the queue is empty!”程序修改:一个小小的区别~~~各种伤肺~

2013-08-16 11:44:17 809

原创 Makefile 基础知识

1.目的:实现自动化编译2.过程:make命令执行=====》需要一个 Makefile 文件=======》makefile的书写规则3.实现:编写makefile 文件====》执行$make======》生成可执行文件4.makefile详细规则:4.1基本规则:target(目标文件): prerequisites(依赖的文件)command(shell

2013-08-10 14:32:45 640

原创 查看用户空间的内存分配

1.运行一个可执行文件 a.out2.查看用户进程的进程号: ps  -as3.显示内存分配:cat  /proc/1830/maps4.读可执行文件的EIF文件:readelf  -a  a.out5.对比找出数据的位置~~~data/biss/~~初始化、未初始化:全局变量、局部变量、指针~~

2013-08-08 20:45:11 940

原创 linux &静态库&动态库

linux支持两种库的类型:静态库和动态库(共享库)1. Linux静态库和动态库的命名规则:静态函数库:libxxx.a动态函数库:libxxx.so2. Gcc/g++的编译链接:通常,对函数的链接是在编译期的时候完成的,所有相关的对象文件与相关联的library被链接成一个可执行文件,这就是使用静态库的编译过程,而动态库技术:对一些库函数的

2013-08-08 20:28:48 705

转载 函数调用&栈

链原文接   http://blog.csdn.net/zdl1016/article/details/4139839?reload      理解调用栈最重要的两点是:栈的结构,EBP寄存器的作用。右侧的红色部分,写出了引发栈结构变化的对应的指令+| (栈底方向,高位地址) || ....................|| ...................

2013-08-08 14:06:21 544

转载 Linux下静态库的创建----ar命令的使用详解

点击打开链接ar命令简介:                 ar命令可以用来创建、修改库,也可以从库中提出单个模块。                 1、如何查看一个静态库中包含那些.o文件:               ar    -t   lib_libname.a2、ar命令的使用格式:              ar   参数

2013-08-07 16:55:17 1784

转载 make &make install 时出现错误和警告的修正

Aspseek1.4更新日志一、make && make install时出现的警告、错误及其修正错误及警告:charsets.cpp:475:1: warning: deprecated conversion from string constant to 'char*'/usr/include/c++/4.5/backward/backward_warning.h:28:2:

2013-07-13 09:39:18 27493 1

转载 VIM命令模式与输入模式切换

vi编辑器vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器。vi有两种工作模式:命令模式和文本输入模式。启动vi需要输入vi,按[Spacebar]键并输入文件名后回车。切换模式键vi从命令模式切换到文本输入模式。每个键以不同方式使vi进入文本输入模式。按[ESC]键使vi从文本输入模式回到命令模式。表1列出了vi从命令模式切换到文本输入模式的命令键及其功能。表1

2013-07-11 11:14:26 1173

原创 unix系统接口(一)

unix操作系统通过一系列的系统调用提供服务,这些系统调用实际上是操作系统内的函数,可以被用户程序调用。借助系统调用获得最高小效率,或者是访问标准库中没有的功能。一、文件描述在unix操作系统中,所有的外围设备都被看做是文件系统中的文件,所有的输入输出都要经过文件读写来完成。就是说,通过一个单一的接口机能处理外围设备和程序之间的所有通信。通常,在读写文件之前,必须先将这个意图通知系统,

2013-06-29 16:04:21 1247

原创 截图软件scrot

在写笔记的时候遇到的一个小问题,怎么把程序窗口截下来.在网上找的scrot截图软件的使用整理如下:       1.安装:Fedora下 yum install scrot , Ubuntu下apt-get install scrot .  2.  抓取桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当

2013-06-21 15:26:56 582

原创 c++简单程序设计(一)

借考试的机会整理一下c++, 重点是整理一下 c++中和c语言中不同的知识点,着重学习嵌入式学习中涉及到的面向对象的思想,运算符重载,模板和异常处理.(一) 基础知识1. c++中只有字符串常量,没有字符串变量.2. 符号常量的使用声明形式const float PI=3.14(声明是必须赋值)3.关系运算符的优先级(,>=)相同高于(==,!=)逻辑运算符的优先级

2013-06-17 16:19:10 741

原创 面向对象的基础知识

一、面向对象的方法1.1 面向对象方法的由来     面向过程的程序设计 ======>随着程序复杂和庞大===> 结构化程序设计结构化的思想是:自上而下、逐步求精;其程序是按照功能分为若干的模块,这些模块形成了一个树状结构;各模块之间的关系尽可能简单,功能上相互独立;每个模块内部均是由顺序、循环、选择三种基本结构组成;实现模块化的具体方法就是使用子函数======>基于面向过程的设计方法

2013-06-16 15:46:46 756

原创 重载2

接重载1将单目“++”运算符重载为成员函数。前置单目运算符,重载函数没有形参,对于后置的单目运算符,重载函数需要一个int 形参#includeusing namespace std;class Clock{                                                                //时钟类定义public:

2013-06-16 15:45:42 548

原创 重载1

1.概念:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数。就是函数的重载。C++允许功能相近的函数在相同的作用域内以 相同的函数名,从而形成重载。2.注意:函数的参数必须不同:个数不同或者类别不同。[cpp] view plaincopyint add (int x,int y);  int ad

2013-06-15 11:09:35 639

转载 职业发展

点击打开链接 在嵌入式在线论坛里见到的一篇文章,受益匪浅!!!值得借鉴!!!自第一台计算机问世以来,软件行业随之诞生。虽然软件行业一直以惊人的高速在发展着,飞速地经过了婴幼儿期不断完善着自己,然而60年对一个行业来说仍然有些年轻,分工不够细化也造成了这个行业男性占据绝对大多数的局面。现立方体科技有限公司CIO、企业信息化顾问朱家玲认为,随着行业的不断发展,将会出现更多适合女性的工作和职位,

2013-06-04 10:40:48 669 1

原创 进程控制

一、进程控制理论基础1、进程是一个具有一定独立功能的程序的一次运行活动。2、特点:动态性、 并发性  、独立性、  异步性3、状态 4、进程ID进程ID:表示进程的唯一数字。父进程的ID:(PPID)启动进程用户的ID(UID)5、进程互斥若干个进程都需要使用某一共享资源时,如果只允许一个进程使用。其它进程就需要等待其资源释放。6、临界资源操作系统中

2013-05-29 21:15:12 593

原创 文件编程

一 、系统调用访问文件          linux中文件编程可以使用两种方法: linux 的系统调用 C语言库函数            前者依赖于linux系统,后者与操作系统是独立的。1、系统调用—创建int creat(const char *filename,mode_t mode)filename:要创建的文件名(包含路径,缺省为当前路径)mode: 创建模式

2013-05-29 09:43:43 603

原创 GUN make

一、make的简单介绍GUN make来构建和管理自己的的软件工程,make能够使整个软件工程的便已链接只需要一个命令就可以完成。gcc工具仅仅用于小的程序。当程序变庞大复杂时只能用make.二、具体使用1、首先命名一个文件makefile。makefile 文件描述了整个工程的编译链接等规则。2、规则:用于生成一个或者多个目标文件的格式   targets :prer

2013-05-28 10:19:47 729

原创 GDB 程序调试

一、GDB程序调试工具的主要功能:1.启动调试程序2.让被调试的程序在指定的位置停住。3当程序被停住时,可以检查程序的状态(如变量值) 在单片机的学习中使用的IAR软件中的调试,很容易理解此三项功能。调试一个程序往往比写一个程序更重要。二、GDB的快速进阶1.编译生成可执行文件:gcc -g tst.c -o tst 2.启动GDB    gdb tst 3

2013-05-27 11:16:13 636

空空如也

空空如也

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

TA关注的人

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