自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yzycqu

记录点滴

  • 博客(32)
  • 收藏
  • 关注

转载 编译内核模块

编译内核模块的方法与编译一般应用程序的方法略有不同. 我们会发现在内核源码树的层层目录中, 都存在有Makefile. 即这些Makefile是分层次组织的. 以往的内核版本中, 编译模块比较麻烦, 需要我们对这些Makefile做出许多更改. 2.6的内核采用了"kbuild"编译系统, 简化了这些问题. 关于kbuild, 可参考内核源码树中的 /Documentation/kbuild/mo

2013-04-11 21:49:28 886

原创 zImage制作uImage

mkimage -n 'linux-2.6.32.2' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage uImage.img

2013-01-27 16:19:41 637

转载 Linux内核镜像格式

Linux内核有多种格式的镜像,包括vmlinux、Image、zImage、bzImage、uImage、xipImage、bootpImage等.(1)kernel镜像格式:vmlinux   vmlinuz是可引导的、可压缩的内核镜像,vm代表Virtual Memory.Linux支持虚拟内存,因此得名vm.它是由用户对内核源码编译得到,实质是elf格式的文件.也就是说,vmlin

2013-01-25 11:08:39 805

原创 Socket程序从windows移植到linux下需要注意的

1)头文件 windows下winsock.h或winsock2.hlinux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)2)初始化windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib,"Ws2_32")来告知编译

2013-01-16 15:50:14 799

转载 吐血简述在arm-linux上编译helloworld时候的抓狂经历

想在我的fl2440上运行一个helloworld,在三、五个月前,我曾经编写过一个helloworld,跑在开发板上,当时编译和运行都很顺利,所以就没有把相关的操作过程记录下来。在随后的几个月里,一直在研究linux底层驱动的开发,所以一直都没有开发过上层应用程序。现在,由于想编写一个上层应用来测试一下底层驱动程序的时候,又想再编译一下helloworld,因此,也就开始了我无比挫折的开发hel

2013-01-10 21:44:36 816

转载 mini2440 SPI驱动移植

最近项目需要,需要在mini2440上移植SPI驱动,板子需要驱动SPI设备,上网找了很多资源,但是很多都是有问题,最终在基本理解驱动结构的前提下,将SPI驱动顺利移植到mini2440。,我使用的内核版本是2.6.32.2,这个版本和2.6。29不一样,网上很多版本都是关于2.6.29,如果完全按照网上步骤,编译会出现问题,我做的步骤如下:1,在Linux Source Code

2013-01-10 12:56:05 667

转载 linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解

前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成    那么如何将驱动直接编译进内核呢?    在我们实际内核的移植配置过程中经常听说的内核裁剪又是怎么麽回事呢?我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会

2013-01-10 12:44:53 701

转载 UNIX网络编程之旅-配置unp.h头文件环境

最近在学习Unix网络编程(UNP),书中steven在处理网络编程时只用了一个#include “unp.h”  相当有个性并且也很便捷于是我把第三版的源代码编译实现了这个过程,算是一种个性化的开发环境的搭建吧,顺便把过程记录下来,以便自己以后查阅。首先去网上找到源代码包unpv.13e.tar.gz 一找一大堆解压缩到你的某个目录,unpv13e里面大致有这些目录

2013-01-10 12:30:20 563

转载 关于Linux静态库和动态库的分析

1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编

2013-01-10 11:18:10 549

转载 大端小端模式

开头讲个有关大端小端的故事:  端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开

2013-01-10 11:12:26 557

原创 linux 下cgi控制机器重启

#include #include #include intmain(int argc,char **argv){printf("Content-type: text/html; charset=utf-8/n/n");printf("The system is goging to reboot ......./n");fflush(stdout);sync();reboot(

2013-01-10 11:03:33 1030

转载 linux中fork()函数详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来

2013-01-10 10:23:46 445

转载 passwd shadow文件说明

使用者帐号:/etc/passwd, /etc/shadow  由上面的说明您大概已经知道,嘿嘿!帐号管理最重要的两个档案就是‘ /etc/passwd 与 /etc/shadow ’了!这两个档案可以说是 Linux 里头最重要的档案之一了! 如果没有这两个档案的话,呵呵!您可是无法登入 Linux 的呦!所以,底下我们先针对这两个档案来进行说明。 当然啰,更详细的资料您可以自行 man

2013-01-09 00:42:50 525

转载 ubuntu12.4以root账户登录

ubuntu默认是禁止以root登录图形界面的,这样做也是有好处的,建议你也不要以root登录,不然Ubuntu会死得很快的。修改root账户的密码后,终端输入su root 输入密码,切换到root账户模式cd /etc/lightdmgedit lightdm.conf打开编辑器加上最后两行[SeatDefaults]user-session=ubuntugreeter-

2013-01-09 00:39:48 769

转载 nand write 与nand write.jaffs的区别

关于nand flash操作的几个常用命令的含义 nand write:向Nand Flash写入数据,如果NandFlash相应的区域有坏块,则直接报错。 nand write.jffs2:向Nand Flash写入数据,如果NandFlash相应的区域有坏块,可以跳过坏块。 nand read:读取Nand Flash相应区域的数据,如果Nand

2013-01-08 10:37:27 1923

原创 C++基础知识

1. 构造函数执行顺序:先父后子   析构函数执行顺序:先子后父2. 在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数(迟绑定技术 late binding)3. 纯虚函数是被标明为不具体实现的虚成员函数.纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡含有纯虚函数的类叫做抽象类。这种类不能

2012-05-26 14:58:24 524

转载 ASCII文件与二进制文件

计算机中的文件可以分为两类:ASCII文件和二进制文件。ASCII文件又称文本文件,其定义是包含ASCII字符的文件,通常由类似NotePad的文本编辑器创建。类似的,二进制文件的定义是内容为二进制信息的文件,通常由某些如编译器的特定程序生成。ASCII文件从一定意义上来说也是二进制文件,因为它的文件内容最终还是以二进制(1和0)的形式存储在计算机磁盘上的。因此我们也可以这样描述:ASCI

2012-05-10 11:05:30 1454

转载 理解i节点

一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即

2012-05-10 10:21:29 1770

原创 uboot下载到内存运行问题解决

开发板:友善之臂mini2440问题:通过mini2440开发板自带supervivi的d选项下载uboot.bin到内存运行,结果出现以下信息,就停住了:解决方法:查看uboot相应board目录下的config.mk文件,其中有"TEXT_BASE = 0x33F80000",修改DNW下载地址为0x33F80000,这样编译的uboot.bin就能直接下载到内存运行了

2012-05-05 15:00:42 1465 1

原创 Linux内核关键数据结构

进程描述符:task_struct,定义在include\linux\Sched.h系统调用:定义在include\linux\Syscalls.h系统调用处理程序:entry.S(其中包含分配的系统调用号)linux/fs.h定义file_operations结构和file以及inode结构

2012-05-03 22:15:36 501

转载 make clean、make mrproer 以及make distclean的区别

解压内核源码包后, 到内核源代码目录树的顶层目录, 执行# make helpCleaning targets:  clean           - Remove most generated files but keep the config and                    enough build support to build external module

2012-05-02 15:06:49 396

原创 电容容量老是记不住

1法拉(F)= 1000毫法(mF)=1000000微法(μF)1微法(μF)= 1000纳法(nF)= 1000000皮法(pF)

2012-04-21 10:16:31 483

转载 cc、gcc、g++、CC的区别概括

gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语

2012-04-18 11:02:56 1142

转载 使用typedef语句定义数组类型

使用typedef语句定义数组类型    1. 一维数组类型的定义格式        typedef [];    例如:    (1) typedef int vector[10];    (2) typedef char strings[80];    (3) typedef short int array[N];    第一条语句定义了一个元素类型为int,含有1

2012-04-14 09:05:39 1961 3

原创 图片

Linux文件系统结构图Unix版本历史

2012-04-14 08:31:19 377

转载 DXP,AD不用新建PCB完美解决 Unknown Pin 和Failed to add class member 问题

相信很多人在使用DXP和AD的时候,都遇到过Unknown Pin 和Failed to add class member 的问题,我也遇到了,经过实验发现新建个PCB就可以解决这些问题,网上的常见做法也是这样的。但是很多时候新建PCB就要放弃前面已经布局布线了一半的样本,实在是费时又劳神。所以我在想既然是报错,肯定有办法解决,于是就研究了下发现了如下解决办法。希望对大家能有帮助。出现这个

2012-04-10 10:25:22 2304

转载 Ubuntu安装TFTP

1、安装相关软件包apt-get install tftpd (服务端)apt-get install tftp (客户端)apt-get install xinetd2、建立配置文件cd /etc/xinetd.d/vi tftp输入service tftp{socket_type = dgramprotocol = udpwait = y

2012-03-27 15:19:45 824

转载 利用远程桌面连接实现外网对局域网计算机的控制

一、被控计算机上的设置:        右击桌面上“我的电脑”,选择“属性”——“远程”标签,选中“远程桌面”——“允许用户远程连接到此计算机”(即打开远程桌面连接的默认端口3389),如果要发送远程协助邀请则还要选中前一项。二、在被控机所在局域网的路由器上设置端口映射登陆路由器的管理页面,在“虚拟服务器”中添加一条:端口号为3389,然后填入被控机的局域网IP

2012-03-27 09:22:41 12584 2

原创 解决linux 下多线程错误 undefined reference to `sem_init'

编译的时候出现如下错误提示:undefined reference to `sem_init'undefined reference to `sem_post'undefined reference to `sem_wait'编译选项需要加入一个多线程:gcc -pthread -o outfile.out filename.c

2012-03-26 20:21:36 16720

原创 如何运行《UNIX环境高级编程》中的代码?

APUE中的代码不是download下来就可以直接编译执行的。由于头文件的问题,需要做相关的设置,修改一下相关的文件。首先从http://www.apuebook.com/src.tar.gz下载源码压缩包,解压到相应目录,例如:mkdir /root/apue_srccd /root/apue_srctar zxvf src.tar.gz解压以后得到文件夹ap

2012-03-26 19:42:19 1172 1

原创 解决虚拟机Fedora9安装VMware Tools后鼠标定位不准

VMware虚拟机用6.5版本,安装了vmware tools之后发现鼠标定位不准,最后查到是在装载xorg-x11-drv-vmmouse驱动时的一个bug,在客户虚拟机的显示中,鼠标位置可能不正确。直到被更新前,在客户机中添加Option NoAutoAddDevices到/etc/X11/xorg.conf文件的ServerFlags节中。如果需要,创建这个节: 可以通过键盘上的方向键和Ta

2012-03-26 16:35:43 2619

原创 概念"笔记

1. gmake是GNU Make的缩写。Linux系统环境下的make就是GNU Make,之所以有gmake,是因为在别的平台上,make一般被占用,GNU make只好叫gmake了。 比如在安装二进制文件进行编译时要使用make命令,但如果在Solaris或其他非GNU系统中运行,必须使用GNU make,而不是使用系统自带的make版本,这时要用gmake代替make进行编译。2

2012-03-22 15:34:08 488

空空如也

空空如也

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

TA关注的人

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