打印

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

[复制链接]
17180|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,缓冲等等。

使用特权

评论回复
5
jinjing999| | 2009-9-28 18:00 | 只看该作者
呵呵,我找了,不能改成大端模式。编写程序的时候,关于通讯的地方注意点就可以了

使用特权

评论回复
6
heqinlong2009|  楼主 | 2009-9-29 20:40 | 只看该作者
STM32貌似不能切换 是么?求证权威人士 嘿嘿

使用特权

评论回复
7
mcuisp| | 2009-9-29 21:22 | 只看该作者
整个Cortex-M3都是定死为小端的。

使用特权

评论回复
8
bird777| | 2009-10-3 22:41 | 只看该作者
见V3.0  core_cm3.h   __REV(uint32_t value)  
与变频器/PLC通讯会用着.

使用特权

评论回复
9
xiepengchenghn| | 2010-10-8 22:06 | 只看该作者
mark

使用特权

评论回复
10
yuanruibing| | 2010-11-10 17:29 | 只看该作者
不明白楼上的意思

使用特权

评论回复
11
hsw_21| | 2012-7-5 10:53 | 只看该作者
香主 呢?

使用特权

评论回复
12
香水城| | 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的疑问吗?

使用特权

评论回复
13
李富贵| | 2012-7-5 15:46 | 只看该作者
ARM7、ARM9的大小端是可以配置的,但是Cortex-M3全系列都是小端,不能改。

使用特权

评论回复
14
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.

使用特权

评论回复
15
一般首席| | 2013-12-14 21:16 | 只看该作者
明白了 原来是小端模式,以前都没注意到

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝