arm-linux-gcc编译器定义寄存器变量】的更多相关文章

uboot代码中有这么一句话“#define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("r8")”,困扰了山人多时.经过多番求索,才得知原来是定义了一个全局的寄存器变量gd_t(r8是它的专用寄存器). 详细解释一下,register意思是定义的变量保存在寄存器中,volatile代表禁止编译器优化,后边的asm ("r8")说的是使用的寄存器是r8. 一.何谓寄存器变量      百度…
一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid=2185900163 二.安装arm linux gcc 4.3.2 1.复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里 2.将文件解压到/usr/local目录下 解压命令tar xvzf arm-linux-gcc-4.3.2 -C /  注意以上命令必须要有-C而且是大写的…
原文地址http://blog.csdn.net/abc78400123/article/details/6779108 在用gdb调试,使用s 或n单步执行程序时,发现程序不是按顺序运行的,有时莫名其妙的执行到前面的语句去了,有时又执行到后面的语句,有时一次执行几条语句.后来查了下资料.原来这是编译时的优化问题所导致的. 因为内核的编译是使用make命令的,所以要更改优化等级的话,只能修改makefile文件了. 在makefile中,找到CFLAGS   然后在这加上-O0选项即可. 当然这…
GNU CC(通常称为GCC)是GNU项目的编译器,他能够编译C.C++语言编写的程序. 使用gcc,程序员可以对编译过程有更多控制,编译过程分为3个阶段. --预处理 --汇编 --链接 程序员可以在编译的任何阶段结束后体质整个编译过程以检查编译器在该阶段输出的信息 使用gcc,程序员可以控制生成二进制执行文件中调试代码的数量和类型. 和其他编译器一样,gcc也可以优化执行代码 gcc是个交叉平台编译器,所有能够在当前CPU平台上为不同操作系统开发软件 gcc对C和C++进行了一些扩展,有助于…
寄存器存在于CPU内部,运算速度非常快, 因为内存中的数据必须载入寄存器才能计算.如果直接定义一个变量为寄存器变量,则少了载入等过程自然会快.对于频繁使用的变量可以把它放在寄存器中来提速度. 对于VC编译器会自动优化,即使没有声明寄存器变量,VC也会自动优化. 对于GCC编译器就不会自动优化. 定义一个寄存器变量: void main() { register ; //&i; //寄存器变量放在cpu中,没有地址, 但是c++中没问题 } 接下来,通过gcc编译器来编译下面代码,测试执行速度.…
假如现在我们有如下代码需要编译运行和调试.文件名为:test.c #include <stdio.h> int main() { int day, month, year, sum, leap; printf("input year month day:\n"); scanf("%d%d%d",&year,&month,&day); switch(month) { case 1: sum = 0; break; case 2: s…
在Linux环境下进行开发,gcc是非常重要的编译工具,所以学习gcc的基本常见用法时非常有必要的. 一.首先我们先说明下gcc编译源文件的后缀名类型 .c为后缀的文件,C语言源代码文件:  .a为后缀的文件,是由目标文件构成的档案库文件:  .C,.cc或.cxx 为后缀的文件,是C++源代码文件:  .h为后缀的文件,是程序所包含的头文件:  .i 为后缀的文件,是已经预处理过的C源代码文件:  .ii为后缀的文件,是已经预处理过的C++源代码文件:  .m为后缀的文件,是Objective…
linux gcc 区分32位或64位编译   Linux系统下程序如何区分是64位系统还是32位系统 经过对include的翻查,最后确定gcc以__i386__来 进行32位编码,而以__x86_64__来进行64位编 码:64位的gentoo下stdio.h就是个简单例子(i不晓得其它的是不是?):而且在bits/wordsize.h中对这两个定义进行了综合, 以__WORDSIZE的值来表示机器类型,大家可以直接去看看 例子 #include <stdio.h> int main(in…
Linux设置编译器环境变量 https://jingyan.baidu.com/article/9f7e7ec0bb22aa6f29155453.html Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量 http://www.cnblogs.com/juncent/archive/2012/02/08/2343172.html 在linux下如何使用yum查看安装了哪些软件包 https://zhidao.baidu.com/question/9404973602770…
通过apt-get方式下载的Qt5.9的gcc编译器版本只是4.8.3,无法打开一些Qt5的库头文件,所以准备在Llinux下再安装一个gcc5.3.0. 查看gcc版本 ubuntu下查看gcc的版本非常简单,直接在终端上输入gcc -v 或者 gcc --version,就会显示版本信息了,而且它配置的编译脚本参数也可看到,如下图所示: gcc下载安装 1.可以去gcc各版本下载链接下载gcc5.3.0安装包,也可以通过命令行下载. #cd /opt #wget http://ftp.gnu…