请教香主。STM32系列 是大端 还是小端?

[复制链接]
18884|14
 楼主| heqinlong2009 发表于 2009-9-28 16:06 | 显示全部楼层 |阅读模式
找了DATASHEET没找到相关资料啊。。。我需要用BIGENDIAN模式。。。。
咋个切换呢:?
jinjing999 发表于 2009-9-28 17:37 | 显示全部楼层
大端小端我有点概念模糊。
一般电脑上做的代码都是,高字节在前,低字节在后

如果你要是用KEIL编译的话,刚好相反,最高位在后面,最低位在前面。
比如一个16位整数1024,电脑上拆开分解是: 0x04   0x00
但是在realview编译结果是00 04。
注意:keil编译51是跟电脑上编译的结果是相同的
 楼主| heqinlong2009 发表于 2009-9-28 17:42 | 显示全部楼层
楼上 51是大端的。。
我看CORTEXM3资料 这个核是可以切换的
貌似我一直在用STM32小端模式。
不知道怎么切换到大端。。DATASHEET没说。。
BBSTOM 发表于 2009-9-28 17:47 | 显示全部楼层
CORTEX-M3 继承了ARM7/9的从映射机制, 而且内部因为有BOOTROM.
复位后就 必然会运行BOOTROM,默认/或切换到小端了。之后是检查BOOT01引脚看是否要ISP.
然后 初始化后跳到用户的程序去~

ARM7/9要用操作CP15寄存器,来切换大小端,MMU,缓冲等等。
jinjing999 发表于 2009-9-28 18:00 | 显示全部楼层
呵呵,我找了,不能改成大端模式。编写程序的时候,关于通讯的地方注意点就可以了
 楼主| heqinlong2009 发表于 2009-9-29 20:40 | 显示全部楼层
STM32貌似不能切换 是么?求证权威人士 嘿嘿
mcuisp 发表于 2009-9-29 21:22 | 显示全部楼层
整个Cortex-M3都是定死为小端的。
bird777 发表于 2009-10-3 22:41 | 显示全部楼层
见V3.0  core_cm3.h   __REV(uint32_t value)  
与变频器/PLC通讯会用着.
xiepengchenghn 发表于 2010-10-8 22:06 | 显示全部楼层
yuanruibing 发表于 2010-11-10 17:29 | 显示全部楼层
不明白楼上的意思
hsw_21 发表于 2012-7-5 10:53 | 显示全部楼层
香主 呢?
香水城 发表于 2012-7-5 14:31 | 显示全部楼层
ARM的手册上有关于大小端的描述,如下:
The processor can access data words in memory in little-endian format or big-endian
format. It always accesses code in little-endian format.
Note:
Little-endian is the default memory format for ARM processors.

能解决LZ的疑问吗?
李富贵 发表于 2012-7-5 15:46 | 显示全部楼层
ARM7、ARM9的大小端是可以配置的,但是Cortex-M3全系列都是小端,不能改。
jxmzzr 发表于 2012-7-5 15:55 | 显示全部楼层
STM32是固定配置为小端的
The bytes are coded in memory in Little Endian format. The lowest numbered byte in a word is considered the word’s least significant byte and the highest numbered byte the most significant.
一般首席 发表于 2013-12-14 21:16 | 显示全部楼层
明白了 原来是小端模式,以前都没注意到
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部