OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11881|回复: 5

Cortex_M3权威指南中不能理解地方,求原子解答!

[复制链接]

5

主题

8

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2011-10-8
在线时间
0 小时
发表于 2011-10-13 22:49:14 | 显示全部楼层 |阅读模式
原子哥:
      在Cortex_M3权威指南的第50页中写到:
      向量表跟随在 MSP的初始值之后——也就是第 2 个表目。要注意因为 CM3 是在 Thumb
态下执行,所以向量表中的每个数值都必须把 LSB 置 1(也就是奇数)。正是因为这个原因,
图 3.18 中使用 0x101 来表达地址 0x100。当 0x100处的指令得到执行后,就正式开始了程序
的执行。在此之前初始化 MSP是必需的,因为可能第 1 条指令还没执行就会被 NMI 或是其
它 fault 打断。MSP初始化好后就已经为它们的服务例程准备好了堆栈。 

    麻烦解释下红色标记这句中LSB置1(也就是奇数),Thumb态是16位,我认为应该是是BIT1置1,
偶数地址才对吧,很不理解,请指教!谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-10-14 00:01:55 | 显示全部楼层
这个,我也不熟悉.
LSB是最低位,就是BIT0,怎么回事BIT1呢?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2011-10-20
在线时间
85 小时
发表于 2011-10-20 01:16:38 | 显示全部楼层
由于早期的arm芯片指令,有32位的arm指令与16位的thumb指令之分;它们的区别就在于指令的lsb为1还是0,thumb指令时,lsb为1.
其实这不难理解,lsb对应的字节地址是用不到的:16位指令取指是半字对齐,32位是字对齐。
到了thumb-2指令,不区分是arm还是thumb指令了,但是它兼容过去的thumb指令,lsb自然必须为1了。

这些其实在权威指南里都讲过的,我在这里回答的有些冒然,不能保证都对。

顺便赞一下,《Cortex_M3权威指南》确实是本不可多得的好书。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1863
金钱
1863
注册时间
2011-3-29
在线时间
139 小时
发表于 2011-10-20 07:59:33 | 显示全部楼层

不是指令数据的最低有效位,而是PC指针的最低有效位。向量表存储的是用于放入PC的程序地址。由于arm和thumb的指令分别是4字节,2字节对齐,所以理论上PC寄存器的bit0恒为0,所以bit0可以用来做指示作用,表明当前是arm指令还是thumb指令。其他的同楼上吧。
业余程序玩家。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-10-20 08:42:13 | 显示全部楼层
受教了...
回复 支持 反对

使用道具 举报

38

主题

248

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
463
金钱
463
注册时间
2011-2-11
在线时间
12 小时
发表于 2011-10-24 20:00:20 | 显示全部楼层
标记位
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 07:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表