2015-05-15 00:58:47 iteye_5810 阅读数 129
  • ADC-1.13.ARM裸机第十三部分

    本期课程主要讲解AD转换相关的概念(如模拟量、数字量),AD转换涉及到的一些参数如模拟量量程、数字量位数精度(分辨率)、转换速率(MSPS)等,然后讲了S5PV210的AD控制器和主要寄存器,后带大家初级编写AD转换的裸机程序并完成调试优化。课程目标在于让大家掌握AD转换的概念、意义和编程实践。

    4277 人正在学习 去看看 朱有鹏
对于linux系统,,安装一些软件,,有时候要考虑到linux系统是32位还是64位的系统
可以通过终端输入命令:
1)getconf LONG_BIT可以得到系统的具体位数是32还是64位。
2) uname -a 可得到系统的具体系统

我们时常需要查询系统相关的信息,比如页面大小,整数大小之类,如果编写程序去计算会比较繁琐,这里有一个很有用的命令,可以用来获取系统相关信息。它就是getconf。

$ getconf PAGE_SIZE
4096
$ getconf INT_MAX
2147483647

可以取得的相关信息如下(参考相关资料,在又在版本上会有些不同):
_CS_PATH Value for the PATH environment variable used to find commands.
ARG_MAX Maximum length, in bytes, of the arguments for one of the exec subroutines, including environment data.
BC_BASE_MAX Maximum value allowed for the obase variable with the bc command.
BC_DIM_MAX Maximum number of elements permitted in an array by the bc command.
BC_SCALE_MAX Maximum value allowed for the scale variable with the bc command.
BC_STRING_MAX Maximum length of a string constant accepted by the bc command.
CHARCLASS_NAME_MAX Maximum number of bytes in a character class name.
CHAR_BIT Number of bits in a type character.
CHAR_MAX Maximum value of a type character.
CHAR_MIN Minimum value of a type character.
CHILD_MAX Maximum number of simultaneous processes for each real user ID.
CLK_TCK Number of clock ticks per second returned by the time subroutine.
COLL_WEIGHTS_MAX Maximum number of weights that can be assigned to an entry in the LC_COLLATE locale stanza in a locale-definition file.
CS_PATH Value of the PATH environment variable used to find commands.
EXPR_NEST_MAX Maximum number of expressions that can be nested within parentheses by the expr command.
INT_MAX Maximum value of a type int.
INT_MIN Minimum value of a type int.
LINE_MAX Maximum length, in bytes, of a command's input line (either standard input or another file) when the utility is described as processing text files. The length includes room for the trailing new-line character.
LONG_BIT Number of bits in a type long int.
LONG_MAX Maximum value of a type long int.
LONG_MIN Minimum value of a type long int.
MB_LEN_MAX Maximum number of bytes in a character for any supported locale.
NGROUPS_MAX Maximum number of simultaneous supplementary group IDs for each process.
NL_ARGMAX Maximum value of digit in calls to the printf and scanf subroutines.
NL_LANGMAX Maximum number of bytes in a LANG name.
NL_MSGMAX Maximum message number.
NL_NMAX Maximum number of bytes in an N-to-1 collation mapping.
NL_SETMAX Maximum set number.
NL_TEXTMAX Maximum number of bytes in a message string.
NZERO Default process priority.
OPEN_MAX Maximum number of files that one process can have open at one time.
PATH Sequence of colon-separated path prefixes used to find commands.
RE_DUP_MAX Maximum number of repeated occurrences of a regular expression permitted when using the interval-notation parameters, such as the m and n parameters with the ed command.
SCHAR_MAX Maximum value of a type signed char.
SCHAR_MIN Minimum value of a type signed char.
SHRT_MAX Maximum value of a type short.
SHRT_MIN Minimum value of a type short.
SSIZE_MAX Maximum value of an object of type ssize_t.
STREAM_MAX Number of streams that one process can have open at one time.
TMP_MAX Minimum number of unique path names generated by the tmpnam subroutine. Maximum number of times an application can reliably call the tmpnam subroutine.
TZNAME_MAX Maximum number of bytes supported for the name of a time zone (not the length of the TZ environment variable).
UCHAR_MAX Maximum value of a type unsigned char.
UINT_MAX Maximum value of a type unsigned int.
ULONG_MAX Maximum value of a type unsigned long int.
USHRT_MAX Maximum value of a type unsigned short int.
WORD_BIT Number of bits in a word or type int
2011-06-15 17:07:48 zbwangchao 阅读数 20
  • ADC-1.13.ARM裸机第十三部分

    本期课程主要讲解AD转换相关的概念(如模拟量、数字量),AD转换涉及到的一些参数如模拟量量程、数字量位数精度(分辨率)、转换速率(MSPS)等,然后讲了S5PV210的AD控制器和主要寄存器,后带大家初级编写AD转换的裸机程序并完成调试优化。课程目标在于让大家掌握AD转换的概念、意义和编程实践。

    4277 人正在学习 去看看 朱有鹏

 

   $su - root

    #file /sbin/init

    /sbin/init: ELF ;32-bit; LSB executable, Intel 80386......

    即是32位的 linux, 如是64位的, 显示的是 64-bit

 

 

IED_151_197_sles10_64:/data/home/gongwuyuan591up # uname -m
x86_64
IED_151_197_sles10_64:/data/home/gongwuyuan591up # file /sbin/init
/sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, statically linked, for GNU/Linux 2.6.4, stripped
IED_151_197_sles10_64:/data/home/gongwuyuan591up #

 

 

IED_151_197_sles10_64:/data/home/gongwuyuan591up # arch
x86_64

 

 

 

 

1.直接看看有没有/lib64目目录的方法。64位的系统会有/lib64和/lib两个目录,32位只有/lib一个。

2.getconf LONG_BIT

(32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节inux系统中可用"getconf WORD_BIT"和"getconf LONG_BIT"获得word和long的位数。64位系统中应该分别得到32和64。)

 

2012-06-28 20:13:46 lida2003 阅读数 940
  • ADC-1.13.ARM裸机第十三部分

    本期课程主要讲解AD转换相关的概念(如模拟量、数字量),AD转换涉及到的一些参数如模拟量量程、数字量位数精度(分辨率)、转换速率(MSPS)等,然后讲了S5PV210的AD控制器和主要寄存器,后带大家初级编写AD转换的裸机程序并完成调试优化。课程目标在于让大家掌握AD转换的概念、意义和编程实践。

    4277 人正在学习 去看看 朱有鹏

方法一:LINUX提供了一个查看配置的命令

(实际有相应的库函数)getconf


使用方法如下:

# getconf LONG_BIT

注:如果返回64,就表示为64位内核,否则应当返回32。


方法二:查看Linux初始化进程编译可执行文件属性

# file /sbin/init

注:如果返回64,就表示为64位内核,否则应当返回32。


方法三:查看系统配置

# uname -a

注:如果看到有i686_64或者类似的信息表示是64位的,没有则是32位的。

2017-03-04 13:49:35 linlin2178 阅读数 110
  • ADC-1.13.ARM裸机第十三部分

    本期课程主要讲解AD转换相关的概念(如模拟量、数字量),AD转换涉及到的一些参数如模拟量量程、数字量位数精度(分辨率)、转换速率(MSPS)等,然后讲了S5PV210的AD控制器和主要寄存器,后带大家初级编写AD转换的裸机程序并完成调试优化。课程目标在于让大家掌握AD转换的概念、意义和编程实践。

    4277 人正在学习 去看看 朱有鹏
1. 基础知识

1.1. 查看程序调用的库
ldd /bin/ls

1.2. 查看动态库包含的函数:
nm -D /lib64/libc.so.6

1.3. 查看静态库包含的.o文件:
ar -t libgcc.a

1.4. 查看库的位数
file /lib64/libc-2.12.so

1.5. 查看库的soname
readelf -d /lib64/libc.so.6 | grep soname
soname相关知识,可参考[1]

1.6. gcc
-L               # 编译时搜索库的位置
-Wl,-rpath       # 运行时搜索库的位置
-static          # 同时有静态库和动态库时,会先调用动态库,如果要链接静态库,需要加上-static参数
-z nodefaultlib  # 编译选项禁止搜索缺省路径。

2. 编译时库是如何链接的?
gcc -g -Wl,-rpath=/home/lib -o main main.c -L/work/c/lib -lpr
a. 编译时,编译器会根据-L指定的目录,去/work/c/lib下寻找libpr.so文件
b. 读取libpr.so文件中的soname,并记录在可执行文件main中
c. 运行时main根据记录的soname去目录/home/lib中寻找匹配的库文件。
资料来源[2]

3. 运行时库是如何链接的?
3.1. 运行时库的链接顺序
a. 编译目标代码时指定的动态库搜索路径,gcc通过-Wl,rpath参数指定;
b. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
c. 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
d. 默认的动态库搜索路径/lib;
e. 默认的动态库搜索路径/usr/lib。

资料来源[3]

3.2. /etc/ld.so.conf
    /etc/ld.so.conf中的配置对全局用户生效,加入库的链接,可以通过修改/etc/ld.so.conf实现,用root用户运行:
    # echo "/home/lib" >> /etc/ld.so.conf
    # ldconfig  
   运行ldconfig 将 /etc/ld.so.conf 加载到/etc/ld.so.cache中,避免重启系统就可以立即生效。

参考资料:
[1] http://blog.csdn.net/alspwx/article/details/36655645
介绍了库的命名规范和库的版本控制
[2] http://blog.csdn.net/littlewhite1989/article/details/47726011
介绍了编译时库是如何链接的
[3] http://blog.csdn.net/thinkerabc/article/details/628315
介绍了运行时库是如何链接的

查看ubuntu系统位数

阅读数 614

没有更多推荐了,返回首页