历史上的今天
今天是:2025年01月25日(星期六)
2021年01月25日 | ARM基础知识七
2021-01-25 来源:eefocus
简介:ARM编译器支持的数据类型
*************************************************************
ARM编译器支持的数据类型
************************************************************
数据类型 长度(位) 对齐特性
Char 8 1(字节对齐)
short 16 2(百字对齐)
Int 32 4(字对齐)
Long 32 4(字对齐)
Longlong 64 4(字对齐)
Float 32 4(字对齐)
Double 64 4(字对齐)
Long double 64 4(字对齐)
All pointers 32 4(字对齐)
Bool(C++ only) 32 4(字对齐)
1.整数类型
在ARM体系中,整数类型是以2的补码形式存储的。对于long long类型来说,在little endian内存模式下,其低32位保存在低地址的字单元中,高32为保存在高地址的字单元中;在big endian模式下,其低32位保存在高地址的字单元中,高32为保存在低地址的字单元中。对于整型数据的操作遵守下面的规则:
**所有带符号的整型书的运算是按照二进制的补码进行的。
**带符号的整型数的运算不进行符号的扩展。
**带符号的整型数的右移操作是算数移位。
**制定的移位位数的数是8位的无符号数。
**进行移位操作的数被作为32位数。
**超过31位的逻辑左移的结果为0。
**对于无符号数和有符号的正数来说,超过32位的右移操作结果为0;对于有符号的负数来说,超过32位的右移操作结果为-1。
**整数除法运算的余数和除数有相同的符号。
**当把一个整数截断成位数更短的整数类型的数时,并不能保证所得到的结果的最高位的符号位的正确性。
**整型数据之间的类型转换不会产生异常中断。
**整型数据的溢出不会产生异常中断。
**整型数据除以0将会产生异常中断。
2.浮点数
在ARM体系中,浮点数是按照IEEE标准存储的。
**float类型的数是按照IEEE的单精度数表示的。
**double和long double 是用IEEE的双精度数表示的。
对于浮点数的操作遵守下面的规则:
**遵守正常的IEEE754规则。
**当默认情况下禁止浮点数运算异常中断。
**当发生卷绕时,用最接近的数据来表示。
3.指针类型的数据
下面的规则适用于处数据成员指针以外的其他指针:
**NULL被定义为0。
**相邻的两个存储单元地址相差一。
**在指向函数的指针和指向数据的指针进行数据转换时,编译器将会产生警告信息。
**类型size_t被定义为unsigned int.
**类型ptrdiff_t被定义为signed int。
**两个指针类型的数据相减时,结果可以按照下面的公式得到。
((int)a-(int)b)/(int)sizeof(type pointed to)
这时,只要指针所指的对象不是pack的,其对齐特性能够满足整除的要求。
下一篇:ARM基础知识八
史海拾趣
|
可控硅门极电压电流问题:我用的是SG25AA60型号的的可控硅(25A/600V),但PDF资料很简单,自己也是第一次接触可控硅,所以在这问一下, 1.可控硅的门极电压电流一般有什么要求啊? 2.门极触发电压要多大的值才能触发? 3.门极能接电压的正负范 ...… 查看全部问答> |
|
我用CreateToolhelp32Snapshot的方式去做这样的事情是可以取得exe文件的名称的,但是我现在的状况是我的CE机器是别人定制的上面并没有toolhelp.dll这样东东,导致一LoadLibrary(_T(\"toolhelp.dll\")); 就会出错,编译是通过了但是在真实机器上执行 ...… 查看全部问答> |
|
谁有三星2440的BSP CSP安装包和全套文档? 可以给我一份吗? 想了解一下,开阔一下知识. 我的邮箱:huabinsir@126.com. 谢谢.… 查看全部问答> |
|
Error: Ram start overlaps rom binary Fatal error hit, exiting... makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec). makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec). 出错提示如上。先谢过了。… 查看全部问答> |
|
并口的信号线25根,和数据寄存器8位,控制寄存器8位,状态寄存器8位,是不是一一对应呢 还有EPP模式中,控制寄存器某一位设置0的时候,信号线上是不是低电平,设置1的时候,信号线上是不是高电平呢。… 查看全部问答> |




