自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 第一章 unix基础知识

1.1引言 所有操作系统都为它所运行的程序提供服务,典型的服务包括执行新程序,代开文件,读文件,分配存储区等 1.2unix体系结构 操作系统可以视为一种软件,它控制计算机的硬件资源,提供程序运行环境,此即为内核内核的接口称为系统调用,公用函数建立在系统接口之上,应用程序既可以使用公用库函数又可以使用系统调用。其实shell是一种特殊的应用程序,为运行其他程序提供了一个接口。 当然更广泛

2017-11-03 10:38:12 1292

原创 c语言字符串常量

指向字符串常量的指针,内容不能改变

2017-09-05 16:31:49 849

原创 K&R之const用法

const用法: const 用于修饰变量,限定该变量的值不能被修改,对于数组而言,const限定符指定的数组所有元素的值都不能改变。 const double 2 = 2.71828 const char msg[] = "hello"; const 限定符也可以配合数组参数使用,他表明函数不能修改数组元素的值 int strlen(const char[]); const的例子:

2017-08-17 10:59:27 305

原创 关于指针的定义

指针的定义: 1.定义一个整型变量: int a; 2.定义一个整型指针: int *a; 3.定义一个指向整型变量指针的指针: int * *a; *的运算是自右向左进行的,可以将其看为int *(*a),可以将其分成两部分来看,第一部分是int *是一个指向整形的指针, 第二部分是(*a)是一个指针变量,也就是说(*a)是一个指向整型的指针,那么a则是指向指针的指针 4.

2017-08-16 20:48:16 2955

原创 K&R之宏替换的例子

宏替换的例子: #include #define MAX(A,B) ((A) > (B) ? (A):(B)) void max(int a,int b){ int c; return c = max(a,b);} int main(){ int a=2; int b =8; int c1,c2; c1 = MAX(a++,b++); c2 = max(a++,b+

2017-08-16 17:19:05 272

原创 K&R之指针

指针: 机器的一个字节可以存放一个char 类型 两个字节存放一个short类型 四个字节可以存放一个long类型 指针只能指向特定类型的对象,就是说每个指针都必须指向某种类型的数据 void类型指针可以指向任何类型的指针 *pi += 1; 等同于++*pi 或 (*pi)++;(注意,这里必须带括号,*和++这样的一元运算符遵循从右到左的顺序结合) 指针与函数参数

2017-08-15 17:47:59 268

原创 K&R之初始化&宏调用

初始化 在不进行显示初始化的情况下,外部变量和静态变量都将被初始化为0,自动变量和寄存器变量的初始值为无用信息 对于外部变量的静态变量其初始化表达式必须是常量表达式 对于自动变和寄存器变量来说初始化表达式可以不是常量表达式,表达式中可以包含任意在此表达式之前已经定义的值,包括函数调用 宏调用: 宏替换对在括号中的字符串不起作用 如 #define YES 123 宏替换对引号中的

2017-08-15 13:29:49 284

原创 K&R寄存器变量

寄存器变量: register声明告诉编译器它所声明的变量放在寄存器中,用于使用频率高的变量,可以使程序更小,执行速度更快 如: register int x; register char c; 过量的寄存器变量不好 无论寄存器变量是存放在寄存器中还是存放在内存中,其地址不能访问 寄存器变量的初始化默认为0

2017-08-15 11:16:00 245

原创 K&R 之静态变量static

static 静态变量只供其所在的源文件使用,其他函数不能使用 在某一个函数中声明static变量则只在该函数中有用 static修饰的变量,函数即使于自动变量,函数名字相同也不会产生冲突

2017-08-15 11:07:38 186

原创 K&R 之extern

extern: extern用于访问外部变量 例子: 在config.h中 int p = 10; char x[10] = "hello" ; 在test1.c中 #include "config.h" #include int main(){ extern p; p++; extern x[]; printf("%d,%s",p,x); return 0;

2017-08-15 11:00:22 182

原创 K&R 第二章 类型,运算符 与表达式

类型,运算符,表达式 变量名: 变量名:由字母和数字组成,——下划线被看作字母,一般下划线用于库例程的开头,所以在自己的程序里面不要用下划线开头。局部变量使用较短的名字, 外部变量使用较长的名字 数据类型以及长度 char int float double 此外还可以加一些限定符 short long short 至少16位 long至少32位 short不能长于int,

2017-08-14 19:13:00 251 1

原创 K&R 导论

第一章 数值运算: 如果某个算数运算符的所有操作都是整型,则执行整型运算。2 如果其中一个是浮点型,则在运算前将整型转换成浮点型,然后运算。 一般如果定义了一个float 变量,该整型变量是整数,也要写上小数点,便于阅读。 打印时字符格式: int a; printf("%3d",a); 这样输出的a就占3个字符宽度,一般用于输出时对齐。 float a; printf("%3

2017-08-14 11:35:05 436

原创 typedef

typedef 用来创建一个新的数据类型 tyoedef int Length; 将Length定义为与int具有同等意义的名字。类型Length可以用于类型声明,类型转换如: Length len,,axlen; Length ×lengths[]; typedef char *string; 定义了一个字符型指针类型string,然后可以用string 定义其他变量。 typed

2017-08-13 13:47:41 280

原创 文件I/O

概述: 本次讨论的文件IO是无缓冲的IO 文件的操作对应的函数有open write lseek read  文件描述符: 文件描述符随着文件被创建或打开而产生,又由内核返回给进程,可以作为参数传递给读和写函数 文件描述符0对应着标准输入 通常替换 STDIN_FILENO 文件描述符1对应着标准输出 通常替换 STDOUT_FILENO 文件描述符3对应着标准错误 通常

2017-07-31 11:03:00 184

原创 unix基础知识

unix体系结构 内核: 控制计算机的硬件资源,提供程序运行的环境 Linux是GNU操作系统的内核 操作系统: 从光以上来讲,操作系统包括内核以及一些其他软件,这些软件能够使操作系统发挥重要作用,使计算机有自己的独特性 内核与外界的接口称为系统调用,公用库函数建立在系统调用之上,应用程序既可以使用系统调用,也可以使用公共库函数。 POSIX: POSIX表示可移植

2017-07-30 22:23:18 231

原创 linux网络编程

TCP/IP协议 Web客户与服务器之间通过TCP(transmission control protocol)通信.TCP又转而使用IP(internet protocol)通信,IP再通过某种形式的数据链路层通信,如果客户与服务器处于同一个以太网,右下图所示通信层次。 客户与服务器之间的信息流在一端是向下通过协议栈的,跨越网络后,在另一端是向上通过协议栈的。 当用户和服务器属于不

2017-07-29 14:00:41 175

原创 linux编程中的时间

在linux中的时间有 time_t和struct tm time_t的定义为type long time_t time_t描述的时间是从1970年1月1日0时0分0秒到获取时间的那一秒的秒数。 函数time(NULL)可以获取当前的时间并以time_t的类型返回。 time_t 获取到的时间不够直观,为了直观地描述时间,采用了tm结构体的形式,tm结构体的内容为

2017-07-24 09:18:22 202

转载 文件系统至st_mode字段

http://blog.csdn.net/q1007729991/article/details/53377074

2017-07-24 08:54:56 496

原创 linux编程之stat函数

stat函数用来获取文件的信息,如文件大小,修改时间等 stat函数的返回值是一个结构体其名字为struct stat struct stat {   dev_t st_dev; /* 包含这个文件的设备 ID */   ino_t st_ino; /* inode 编号 */   mode_t st_mode; /* 访问权限 */   nlink_t st_n

2017-07-24 08:49:58 670

原创 linux编程之文件系统

linux中的文件系统有EXT2 block:ext2文件系统组织文件时是以block为单位组织的,磁盘上一般是以扇区为单位的,一个扇区大小为512B,block是磁盘上的一块区域,大小一般为8个扇区,为4K. inode表:inode表就是一块区域记录着文件信息inode结点的表格 inode节点:   图1 ext2全貌  从图1

2017-07-24 08:21:04 262

原创 动态库与静态库

静态库生成方法 先把文件编译成.o文件 如gcc -c add.c -o add.o 然后在利用ar命令生成.a的库 如 ar -r  libbase.a  add.o 查看静态库中的内容 ar -t libbaase.a 使用静态库: 如add.c的内容为 #include int add(int a,int b) { return (a+b); } 在使用静态库时如下

2017-07-23 13:02:57 173

原创 烧写系统

1.烧写u-boot 这里采用openjtag来烧写 将openjatg和开发板连接起来,把要烧写的东西复制到和oflash.exe一个目录下。 将连接了开发板的openjtag和电脑连接起来,在设备管理器下发现opengtag的用不了,这时更新驱动,找到opengtag的驱动,发现安装不了,这时重启电脑禁用签名,电脑启动后在重新安装一次就好了。 进入dos状态, 执行命令oflash

2017-07-15 13:15:03 846

转载 w_char_t

转自http://blog.csdn.net/dongyonghui_1017/archive/2009/06/18/4280205.aspx 有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,有必要把来龙去脉搞清楚。 为了搞清这些函数,就必须理请几种字符类型的写法。char就不用说了,先说一些wchar_t。wchar_t是Unicode字符的数据类型,它实际定义在

2017-07-14 18:22:31 842

转载 编码方式

转载出处:http://blog.csdn.net/polarman/archive/2007/04/30/1593159.aspx  如果你开发过的软件项目中涉及到多语言支持的问题,那么相信你没少碰到过乱码问题,然后在寻求解决问题的途径过程中被一些概念如ASCII, ISO-8859-1, Unicode,UTF-8,GBK,GB2312等等所困扰。本文有助于你正确的理解这些概念。

2017-07-14 18:07:11 246

转载 可变参数

内核中printf函数 printf(const char *fmt, ...) { va_list args; int n; va_start(args, fmt);/*args为最后一个固定参数的地址加上其大小,即为第一个可变参数的地址*/ n = vsprintf(sprint_buf, fmt, args); va_end(args); if (console_

2017-07-13 20:46:06 270

原创 lcd驱动架构

lcd的硬件特性以及使用方法比较简单,再次就不罗嗦了,主要写一下驱动架构方面 两个关键文件fbmem.c 和s3c2410fb.c fbmem.c中是LINUX的缓冲帧函数,缓冲帧就是一块内存,是显示缓冲区的一种抽象,往该内存中写入颜色的数据就会在lcd上显示。 应用程序操作lcd时通过fbmem.c中的file_operations static const struct file_op

2017-07-08 10:10:36 331

转载 内核中的操作函数前面的点

linux内核结构体的使用指定初始化(点运算符) 这种方式称为指定初始化(designated initializer)。 如,/usr/src/linux-2.6.32.5/drivers/usb/usb-skeleton.c static struct usb_driver usb_storage_driver = {  .owner = THIS_MODULE,  .name =

2017-07-08 09:08:11 209

原创 arm-linux-objdump

arm-Linux-objdump命令用于显示二进制文件的信息,也可以用来查看反汇编代码,使用格式如下:  arm-linux-objdump -D -m arm  key_led_elf > key_led.dis将elf文件转换为反汇编文件 —dissassemble-all或者-D 反汇编所有段   —architecture=machine或者-m machine 指定反汇

2017-07-05 16:45:22 1017

原创 arm-linux-objcopy

arm-Linux-objcopy被用来复制一个目标文件的内容到另一个文件中.此选项可以进行格式的转换.在实际编程的,用的最多的就是 将ELF格式的可执行文件转换为二进制文件. Arm-linux-objcopy –o binary –S elf_file bin_file -O bfdname 输出的格式 -S 不从源文件中复制重定位信息和符号

2017-07-05 16:35:02 347

原创 arm-linux-ld

arm-linux-ld

2017-07-05 16:19:46 382

转载 arm-linx-参数

以上内容来自网络http://www.cnblogs.com/zhangpengshou/p/3587751.html

2017-07-05 16:10:36 184

u-boot makefile分析

u-boot makefile分析

2016-11-12

空空如也

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

TA关注的人

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