自定义博客皮肤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)
  • 收藏
  • 关注

转载 gcc attribute weak & alias应用

1          gcc attribute weak & alias应用alias ("target")The alias attribute causesthe declaration to be emitted as an alias for another symbol, which must bespecified. For instance,    

2015-03-31 00:21:34 436

转载 linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲tar命令的基本用法:   tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下:   # tar -cf all.tar *.jpg  

2015-03-30 15:24:04 710

转载 常用 U-boot命令详解

常用 U-boot命令详解 U-boot发展到现在,他的命令行模式已经非常接近Linux下的shell了,在我编译的U-boot-2009.11中的命令行模式模式下支持“Tab”键的命令补全和命令的历史记录功能。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ ver

2015-03-24 20:54:16 762

转载 make distclean install ect.

make clean仅仅是清除之前编译的可执行文件及配置文件。 而make distclean要清除所有生成的文件。Makefile在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:make根据Makefile编译源代码,连接,生成目标文件,可执行文件。make clean清除上次的make命令所产生的obj

2015-03-17 16:55:48 545

转载 arm-linux-gcc 4.3.3 Illegal instruction 及制作文件系统(arm-linux-gcc option -print-libgcc-file-name)

4.3.3这个编译器是带EABI的,也就是说具有突出的浮点预算性能,就是Float Point Performance,它使用Vector Float Point(矢量浮点),因此可以极大提高涉及到浮点运算的程序 。而现在手头既有6410又有2410,这个EABI对这两个处理器编译出来的程序有什么不同么?一、预先了解它会做什么首先我们就先弄清楚它是什么:arm-linux-gcc

2015-03-16 12:01:53 1273

转载 symbol used in shell

在shell中常用的特殊符号罗列如下:# ;    ;;       .       ,        /        \        'string'|        !    $    ${}    $?       $$    $*        "string"*      **    ?       :        ^       $#    $@        `comm

2015-03-15 22:19:00 400

转载 GCC compilation options

From:  http://yulinlu.blog.163.com/blog/static/588156982010724180248/gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 

2015-03-15 17:05:47 663

转载 Linux查看环境变量当前信息命令

Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。在Windows下,查看环境变量的命令是:set,这个命令会输出系统当前的环境变量。Linux下Linux查看环境变量准确的说是REDHAT下应该如何查看呢,命令是:export如果你想查看某一个名称的环境变量,

2015-03-13 17:34:07 831

转载 shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select

1、expr计算整数变量值格式 :expr arg例子:计算(2+3)×4的值1、分步计算,即先计算2+3,再对其和乘4s=`expr 2 + 3`expr $s \* 42、一步完成计算:expr  `expr 2 + 3 `  \* 4–说明:运算符号和参数之间要有空格分开;通配符号(*),在作为乘法运算符时要用\、“”、‘’符号修饰–:

2015-03-13 16:56:47 547

原创 shell case的用法及shell如何运行

#!/bin/shcase $1 in--) echo "print infomation --" ;;-nnnnnnnnqwerty) echo "print information -ndsf;lgkjsdflkgjsdfljgsjfdlgslflk";;1) echo "print information 1" ;;esac----------------------

2015-03-13 16:39:29 1068

转载 Shell编程中Shift的用法

位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不知道位置

2015-03-13 16:17:03 933

转载 shell脚本中的$*,$@和$#

#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(my_fun "$@") echo 'the number of parameter in "$*" is '$(my_fun "$*")执行:./my.sh p1 "p2 p3" p4后返回:the number of

2015-03-13 16:02:30 1054

转载 Linux命令touch

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。1.命令格式:touch [选项]... 文件...2.命令参数:-a   或--time=atime或--time=access或--time=use  只更改存取时间。-c   或--no-create  不建立任何文档。-d  使

2015-03-12 22:49:50 355

转载 Shell中的&&、 ||、 ()和 {}

&&运算符:command1  && command2&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。 (cmd1;cmd2;...;cmdN)      # 在一个子shell里执行一组命令 {cmd1;cmd2;...;cmdN}     #  在当前shell里执行

2015-03-11 23:31:44 666

转载 Linux 命令tr

通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。     tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字

2015-03-11 18:52:45 423

转载 Linux cat 命令

简略版:cat主要有三大功能:1.一次显示整个文件。$ cat filename2.从键盘创建一个文件。$ cat > filename     只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件: $cat file1 file2 > file参数:-n 或 --number由 1 开始对所有输出的行数编号-b 或 --number-nonbl

2015-03-11 15:57:32 514

转载 Makefile中的wildcard & patsubst的用法

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

2015-03-10 19:28:25 647

转载 makefile echo 用法(把echo输出信息当作一个目标)

在makefile里面添加说明make报错误:makefile:13: *** missing separator.  Stop.首先我是想在MAKEFILE里面添加几行命令,这些命令不是用来编译的,而仅是用来在执行MAKEFILE的时候,最先显示出来,类似于帮助一样。如下:@echo "MAKEFILE说明:"@echo "此MAK

2015-03-10 13:47:59 34180

转载 makefile里经常看到sed指令

问题这里,我们给出了一个模式规则来产生[.d]文件:     %.d: %.c             @set -e; rm -f $@; \              $(CC) -M $(CPPFLAGS) $; $@.$$$$; \              sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' ; $@; \       

2015-03-10 11:43:10 3908

转载 Makefile中常用的函数(二)

Makefile中常用的函数(二)$(wordlist ,,)     名称:取单词串函数——wordlist。    功能:从字符串中取从开始到的单词串。和是一个数字。    返回:返回字符串中从到的单词字串。如果比中的单词数要大,那么返回空字符串。如果大于的单词数,那么返回从开始,到结束的单词串。    示例: $(wordlist 2, 3, foo bar

2015-03-09 23:26:28 401

转载 Makefile中常用的函数(一)

在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ }这里,就是函数名,make支持的函数不多。是函数的参数

2015-03-09 23:23:23 437

转载 GCC和C99标准中的inline

本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以

2015-03-09 17:41:19 2087

转载 GUN ARM汇编中标号的引用在汇编和C语言中区别(monitor_flash_len = _bss_start - _armboot_start;)

u-boot/cpu/xx/start.S中:_TEXT_BASE: .word TEXT_BASE /*uboot映像在SDRAM中的重定位地址,我设置为0xa170 0000 */ .globl _armboot_start _armboot_start: .word _start /*_start是程序入口,链接完毕它的值应该是0xa170 0000=TEXT_B

2015-03-09 13:23:37 1026

转载 #pragma预处理命令

#pragma预处理命令#pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma指令:#pragma comment(lib,"XXX.lib")表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样。#pragma comment(linker,"/ENTRY:main_function")表示指定链接器选项/ENTRY:ma

2015-03-08 18:59:03 475

转载 __asm__ __volatile__内嵌汇编用法简述

__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清远见教学平台是ARM体系结构的,所以下面的示例都是用ARM汇编。 带有C/C++表达式的内联汇编格式为: __asm__ __volatile__("Instruction List" : Outp

2015-03-07 21:23:57 1507

转载 #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")

register volatile gd_t *gd asm ("r8")如下的两个结构,我们主要的是关心下面一行声明:#define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("r8")这个声明告诉编译器使用寄存器r8来存储gd_t类型的指针gd,即这个定义声明了一个指针,并且指

2015-03-07 18:22:11 728

转载 编译器优化 volatile

1、编译器优化介绍 内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到

2015-03-07 17:22:15 945

转载 ARM寄存器中a1、ip的含义 ARM寄存器的别名

AMR寄存器的别名 + APCSARM中的寄存器的别名默认的情况下,这些寄存器只是叫做r0,r1,...,r14等,而APCS 对其起了不同的别名。使用汇编器预处理器的功能,你可以定义 R0 等名字,但在你修改其他人写的代码的时候,最好还是学习使用 APCS 名字。一般编程过程中,最好按照其约定,使用对应的名字,这样使得程序可读性更好。关于不同寄存器所对应的名字

2015-03-06 22:18:20 1115

转载 start_addr & NAND_BLOCK_MASK || size & NAND_BLOCK_MASK

网上好多人同问这个问题,nand_read_ll函数中,开始的if判断啥意思#define NAND_SECTOR_SIZE 512#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1)if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) {

2015-03-06 15:12:39 894

转载 Makefile 中:= ?= += =的区别

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE    VRE = “Hello World!”elseendififeq ($(OPT),define)    VRE ?= “Hello World! First!”endif

2015-03-04 21:30:58 275

转载 typedef int(init_fnc_t) (void) 和 typedef int(*init_fnc_t) (void)

typedef int(init_fnc_t) (void);这个就是一个取别名的过程。我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a;这个时候我们的MyInt 就和int是一样的意思。而对于函数的申明我们通常会这样申明:int InitFunction() (void);此时表示申明了一个函数名为Init

2015-03-04 16:26:33 323

空空如也

空空如也

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

TA关注的人

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