自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux文章目录

cdaptmountlsmkdircatfindumountcpufilemore/lessmvlnddtar关机内核版本insmodsuteeacuseraddaproposarpatfreejobsscreentouchechodudfcpdmidecodeb

2016-11-08 19:33:06 286

原创 字符串转整形

int MyItoa(char cStr[]){  int i,sum;  for(i=sum=0; cStr[i]!='\0'; i++)  {    sum = cStr[i]-'0' + sum * 10;  }    return sum;}int main(){  char szNumber[] = "56421";  printf

2017-11-16 14:13:07 471

原创 选择排序

选择排序  for(i=0;i-1;i++)   //减一的目的在于排序玩num-1前的所有数后,最后一个肯定是最大的了  {    tempMin = i;    for(j=i;j    {      if(array[j]        tempMin = j;   }      int temp = array[i];   array[i] =

2017-11-16 13:48:59 322

原创 冒泡排序

for(i=0;i  {    for(j=0;j    {      if(array[j]> array[j+1])      {        int temp = array[j];        array[j] = array[j+1];        array[j+1] = temp;        }   }  }

2017-11-16 13:48:06 267

转载 Tiny4412启动流程分析

tiny4412启动分析[    0.385000] exynos4210-uart.0: ttySAC0 at MMIO 0x13800000 (irq = 84) is a S3C6400/10[    1.320000] console [ttySAC0] enabled[    1.325000] exynos4210-uart.1: ttySAC1 at MMIO

2017-01-04 10:16:21 1872

转载 Linux设备驱动初探_准备Linux源码树

刚看 O'REILLY 写的《LINUX 设备驱动程序》时。作者一再强调在编写驱动程序时必须 建立内核树。所谓内核树,我的理解和网上资料说的一致就是内核源码的一种逻辑形式。那怎么建立呢?为此上网“翻云覆雨”起来而结果却是“惨败而归“。 为 此托了一天又4个小时(当然包括吃饭睡觉的时间),连个简单的 hello wrold 都没实现。(书中p22页最简单也最没用的驱动事列) 不 过功夫不负有

2016-12-30 09:46:55 332

转载 Linux设备驱动初探_多源文件Makefile

首先介绍一下__init这个标志在驱动源文件中的作用吧。内核中带“__”的函数:内核API函数具有这种名称的,通常都是一些接口的底层函数,应该谨慎使用。实质上,这里的双下划线就是要告诉程序员:谨慎调用,否则后果自负。以__init为例,__init表明该函数仅在初始化期间使用。在模块被装载之后,模块装载器就会将初始化函数扔掉,这样可以将函数占用的内存释放出来,已做它用。注意,不要在结束

2016-12-30 09:35:55 1113

转载 Linux字符驱动-scull

源代码调试环境:Ubuntu14.04内核版本:3.13.0-32代码参考《LINUX设备驱动程序》第三章 字符设备驱动程序功能:向字符设备写入字符串;从字符设备读出字符串scull.c#include #include #include #include #include #include #include #include #include "sc

2016-12-23 11:00:27 450

转载 Linux驱动传参与符号导出

2016-12-23 10:05:42 304

转载 Linux驱动基础

设备驱动充当了硬件和应用软件之间的纽带,它使得应用软件只需要调用系统软件的应用编程接口(API)就可让硬件去完成要求的工作。本文主要讲解了Linux设备驱动与硬件的关系,Linux设备驱动的开发模式以及内核中相关的重要基础数据结构。设备驱动与硬件的关系对设备驱动最通俗的解释就是“驱使硬件设备行动”。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备

2016-12-23 09:58:58 226

原创 Linux驱动框架解析

Linux是单内核系统,可通用计算平台的外围设备是频繁变化的,不可能将所有的(包括将来即将出现的)设备的驱动程序都一次性编译进内核,为了解决这个问题,Linux提出了可加载内核模块(Loadable Kernel Module,LKM)的概念,允许一个设备驱动通过模块加载的方式,在内核运行起来之后"融入"内核,加载进内核的模块和本身就编译进内核的模块一模一样。一个程序在编译的地址的相对关系就已

2016-12-23 09:45:46 504

原创 一天一条Linux指令-uname -a

uname -a的显示内容具体包括各个段代表:Linux - 内核名audit - 主机名2.6.18-128.el5 - 内核版本#1 SMP Wed Jan 21 10:41:14 ....2009 - 内核编译日期x86_64 - 操作系统版本x86_64 - 处理器类型x86_64 - 硬件平台(以上3 个可能顺序不对,都是一样的不要区别,x86_64表示

2016-12-23 09:06:26 614

转载 浮点数转化为二进制整型

任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为  10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是采用IEEE所制定的标准浮点格式,即二进制科学表示法

2016-11-25 16:36:46 4350

原创 Ubuntu中LTS含义

Long Term Support:长时间支持版本 三年 ,一般是18个月Ubuntu定期并有计划的不断发布其新版本,Ubuntu 一直坚持每6个月发布一个新的版本。并致力于在该发行版的支持期内持续的发布安全和关键补丁。 UBuntu 将为每个版本提供至少18个月的支持

2016-11-24 11:08:39 837

转载 gcc编译标志-fPIC

-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),  则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意  位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。gcc -shared -fPIC -o 1.so 1.c这里有一个-fPIC参数

2016-11-24 10:05:09 829

转载 gcc对C++11的支持

如果用命令 g++ -g -Wall main.cpp  编译以下代码 :123456789101112/*    file : main.cpp*/#include  int main() {

2016-11-23 10:23:31 2216

转载 Makefile经典案例

########################################################################################## Generic Makefile for C/C++ Program## Author: mengk# Date:   2008/08/30#==========================

2016-11-22 20:36:40 367

转载 Makefile的函数addprefix

函数名称:加前缀函数—addprefix。函数功能:为“NAMES…”中的每一个文件名添加前缀“PREFIX”。参数“NAMES…”是空格分割的文件名序列,将“SUFFIX”添加到此序列的每一个文件名之前。返回值:以单空格分割的添加了前缀“PREFIX”的文件名序列。函数说明:示例: $(addprefix src/,foo bar) 返回值为“src/foo sr

2016-11-22 20:26:46 1972

转载 gcc参数详解

-x language filename 设定文件使用的语言,这样源程序的后缀名无效了,并对gcc后接的多个编译文件都有效。这样如果存在.c和.cpp文件联编会有问题,解决这个问题用到了下一个参数 -x none filename,在下面做介绍。因为在预处理过程中对于.c和.cpp文件的处理方式是不一样的。可以使用的参数有:'c','objective-c','c-header','c++',

2016-11-22 20:06:22 644

原创 硬件指令集急速ARMV7

CXXFLAGS += -march=armv7-a -std=c++11

2016-11-22 20:02:16 499

转载 gcc -Wall

今天在看一个makefile时看到了gcc -W -Wall....这句,不明其理,专门查看了gcc的使用手册。-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。-Wall选项意思是编译后显示所有警告。-W选项类似-Wall,会显示警告,但是只显示编译器认为会出

2016-11-22 19:52:46 1204

转载 gcc -pthread 与 -lpthread

一般情况下,我们在链接一个(文件名为libxxx.so或libxxx.a等的)库时,会使用-lxxx的方式;在Linux中要用到多线程时,需要链接pthread库,按照惯例,我们应该使用-lpthread的方式来进行链接;但是,通过日常的观察,我发现很多开源代码都是使用了-pthread参数,而非使用-lpthread,这是为什么呢?一通Google后,总算找到一些线索:为了可移植

2016-11-22 19:49:39 4286

转载 万能Makefile

一目的:编写一个实用的makefile,能自动编译当前目录下所有.c/.cpp源文件,支持二者混合编译。并且当某个.c/.cpp、.h或依赖的源文件被修改后,仅重编涉及到的源文件,未涉及的不编译。二要达到这个目的,用到的技术有:1-使用wildcard函数来获得当前目录下所有.c/.cpp文件的列表。2-make的多目标规则。3-make的模式规则。4-用gcc -

2016-11-22 16:43:04 297

转载 Makefile函数wildcard

在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符

2016-11-22 14:58:26 247

转载 Linux下配置环境变量

一 简介 环境变量配置文件中,主要是定义对系统的操作环境生效的系统默认环境变量,比如PATH,HISTSIZE,PS1,HOSTNAME等默认环境变量 主要是下面这个5种  我们之前设置的一些变量,都是临时生效,如果想要让变量重启后还生效,就需要写入这些配置文件中,写完之后,如果不想重启,立即生效用source 配置文件或者. 配置文件,说到这里,让我想起了编译Android系统时

2016-11-22 14:35:27 573

转载 多级Makefile嵌套实验

(1)创建目录结构(2)输入"tree"命令,查看目录;若没有则安装tree命令 (sudo apt-get install tree )[html] view plain copy print?//f1.c    #include "../include/myinclude.h"             

2016-11-22 13:57:01 672

转载 汇编指令集

AAA 未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition)格式: AAA功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中.说明:1. 组合的十进制数和未组合的十进制数:在计算中,十进制数可用四位二进制数编码,称为BCD码.当一个节(8位)中存放一位BCD码,且放在字

2016-11-11 16:08:22 575

转载 X86 汇编详解

80x86指令系统  80x86指令系统,指令按功能可分为以下七个部分。  (1) 数据传送指令。  (2) 算术运算指令。  (3) 逻辑运算指令。  (4) 串操作指令。  (5) 控制转移指令。  (6) 处理器控制指令。  (7) 保护方式指令。  3.3.1数据传送指令  数据传送指令包括:通用数据传送指令、地址传送指令、标志寄存器传送指令

2016-11-11 16:07:26 3656

转载 Linux 内核游记-bootsect.S

本文的目的,在于将linux kernel的boot部分做一个介绍,因为笔者觉得很少有这样的 文章来介绍一个操作系统最最开始的一步----把kernel本身载入至内存中,同时进行一些 机器相关(machine dependent)的初始化工作,由于linux刚好使用的是大家最熟悉的386, 486系列PC,所以在说明其程序流程时,也刚好可以对其相关的PC硬体架构做探讨,可以 说是一举两得。不过

2016-11-11 15:55:38 418

转载 一天一条Linux指令-nmap

使用nmap扫描服务器端口的一次操作本文来自:http://www.vktone.com/articles/nmap_windows_machines.html   (本人新开的独立博客地址)nmap是Linux下常用的端口扫描工具,它可以检测主机是否在线,是否开启了某个服务端口,使用了何种操作系统等。我经常用它来检测远程的 Windows服务器的ip地址,因为不是固定ip地址,该

2016-11-08 19:13:22 317

转载 一天一条Linux指令-vim

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类

2016-11-08 19:07:12 197

转载 一天一条Linux指令-:

用途说明我们知道,在Linux系统中,冒号(:)常用来做路径的分隔符(PATH),数据字段的分隔符(/etc/passwd)等。其实,冒号(:)在Bash中也是一个内建命令,它啥也不做,是个空命令、只起到占一个位置的作用,但有时候确实需要它。当然,它也有它的用途的,否则没必要存在。在·Linux的帮助页中说它除了参数扩展和重定向之外不产生任何作用。 man : 写道

2016-11-08 18:44:46 252

转载 一天一条Linux指令-date

用途说明date命令可以用来显示和修改系统日期时间,注意不是time命令。 常用参数格式:date显示当前日期时间。 格式:date mmddHHMM           # 简而言之,就是“月日时分”格式:date mmddHHMMYYYY格式:date mmddHHMM.SS格式:date mmddHHMMYYYY

2016-11-08 18:41:41 233

转载 一天一条Linux指令-declare

用途说明declare命令是bash的一个内建命令,它可以用来声明shell变量,设置变量的属性(Declare variables and/or give them attributes)。该命令也可以写作typeset。虽然人们很少使用这个命令,如果知道了它的一些用法,就会发现这个命令还是挺有用的。 常用参数格式:declare格式:typeset

2016-11-08 18:35:26 218

转载 一天一条Linux指令-alias

用途说明设置命令的别名。在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问 题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题【1】。常用别名来简化ssh登录【见示例三】,使长命令变短,使常 用的长命令行变短,强制执行命令时询问等。 常用参数格式:alias

2016-11-08 18:27:39 201

转载 一天一条Linux指令-ar

用途说明创建静态库.a文件。用C/C++开发程序时经常用到,但我很少单独在命令行中使用ar命令,一般写在makefile中,有时也会在shell脚 本中用到。关于Linux下的库文件、静态库、动态库以及怎样创建和使用等相关知识,参见本文后面的相关资料【3】《关于Linux静态库和动态库的分析》。 常用参数格式:ar rcs  libxxx.a xx1.o xx2.o

2016-11-08 18:24:14 154

转载 一天一条Linux指令-crontab

用途说明crontab命令用于设置例行任务,类似于Windows中的任务计划。我们常用它来设置如下定时执行的任务:进行时间同步:ntpdate进行数据统计:mysql, sqlplus检查磁盘空间:df监控CPU使用:vmstat检查某些程序是否还在运行,重新启动:ps, service xxx start杀掉某些运行时间过长的进程:kill定时发送邮件:mail清理日

2016-11-08 18:17:36 927

转载 一天一条Linux指令-chmod

用途说明chmod用于更改文件或目录的访问权限。Linux/Unix下文件或目录的权限设置分为三级:属主、组、其他,每一级包括读、写、执行/搜索。详细说明见“常用参数”部分。常见用途就是给文件增加执行权限。 常用参数格式:chmod +x *.sh对shell脚本增加执行权限。否则脚本无法执行,报“没有权限”错误。 格式:chmod +x j

2016-11-08 17:24:56 187

转载 一天一条Linux指令-export

用途说明export命令可以用来设置或显示环境变量。在shell中,当一个变量创建时,只会在当前的shell中有 效,之后创建的子进程不会有该变量。而命令export可以将一个shell变量变成环境变量,在随后创建的子进程中也能访问到该环境变量,但是子进程在 修改了环境变量的值之后,父进程并不能知道,因为子进程将复制父进程的环境变量。因此,当shell退出时,那些在该shell中expor

2016-11-08 17:14:18 275

转载 一天一条Linux指令-wc

用途说明wc命令用来打印文件的文本行数、单词数、字节数等(print the number of newlines, words, and bytes in files)。在Windows的Word中有个“字数统计”的工具,可以帮我们把选中范围的字数、字符数统计出来。Linux下的wc命令可以实现这个 功能。使用vi打开文件的时候,底下的信息也会显示行数和字节数。 常用参数

2016-11-08 17:06:02 187

空空如也

空空如也

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

TA关注的人

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