程序达不到预期结果一般情况下先检查三个问题:
1. 是否是运行在ARM平台上, 用命令:file 目标文件名 查看
2. 查看大小端是否对 arm-linux-readelf查看
3. 查看程序用到的某些库是否对 使用命令:arm-linux-readelf -d 目标文件名 (可以查看目标文件在目标板上运行必须用到哪些库,如果开发板上没有该库,则肯定是运行不了的)
ARM反汇编器:在底层编程中是非常有用的!能查看汇编代码!(即如何将程序变成汇编版本)
命令方式:arm-linux-objdump -D ...
分类:
其他好文 时间:
2016-04-17 22:37:31
阅读次数:
230
字节的高位与低位举个例子,int a = 0x12345678 ; 那么左边12就是高位字节,右边的78就是低位字节,从左到右,由高到低,(注意,高低乃相对而言,比如56相对于78是高字节,相对于34是低字节)。 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这 ...
分类:
其他好文 时间:
2016-04-17 10:20:50
阅读次数:
155
其实,不止是ip和port需要转换成网络字节序,如果发送端和接收端字节序不一样,有些情况下也要转换。
参考unix网络编程卷1的5.18节,下面贴几张图
以下文字复制自论大小端
对于跨平台的程序或者所用数据牵扯到不同平台的程序(例如网络编程),大小端字节序是个值得考虑的事情。本文主要讨论一下网络编程方面的大小端问题。(by peakflys)...
分类:
其他好文 时间:
2016-04-16 10:59:40
阅读次数:
539
方法一:#include<stdio.h>intcheck_sys(){inti=1;int*p=&i;char*q=(char*)p;if(*q==1){return0;}else{return1;}}intmain(){intret=check_sys();if(ret==1){printf("big\n");}else{printf("little\n");}return0;}//方法二:利用联合的特点#include<stdio.h>che..
分类:
其他好文 时间:
2016-04-14 07:02:05
阅读次数:
118
先放代码: int check() { union { unsigned int a; unsigned char b; }c; c.a = 1; return 1 == c.b; } 再说原理: 上述程序,假设返回值为1则是小端,假设是0则大端。由于union类型共用一段内存,所以c占4个字节(假 ...
分类:
其他好文 时间:
2016-03-30 08:18:56
阅读次数:
157
大小端模式大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据...
分类:
系统相关 时间:
2015-12-25 22:14:07
阅读次数:
228
#include#include typedef union { int m; char a[4];}Node;int main (){ Node node;// node.m = 0x01020304; // 16进制 转...
分类:
其他好文 时间:
2015-11-26 01:01:32
阅读次数:
189
存储数据的模式1、大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;2、小端模式,是指数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的...
分类:
其他好文 时间:
2015-11-19 09:32:55
阅读次数:
150
我们知道关于字节序有大端和小端之分。一般来说,Inter的处理器使用的是小端(littleIndian),Moto的处理器使用的是大端。大端和小端的区别在于,内存对于变量的存放规则不同。小端存储模式是低位放在低地址,高位存放在高地址。而大端则相反。简单示例如下:a=0x11223344;低..
分类:
其他好文 时间:
2015-11-13 06:46:57
阅读次数:
246