[STM32F4] CORTEX_M4 复位向量的LSB位为什么必需是1啊?

[复制链接]
978|12
 楼主| zwll 发表于 2021-3-2 21:47 | 显示全部楼层 |阅读模式
CORTEX_M4 复位向量的LSB位为什么必需是1啊?
liuzaiy 发表于 2021-3-2 21:51 | 显示全部楼层

0 arm
1 thumb
 楼主| zwll 发表于 2021-3-2 21:53 | 显示全部楼层
我想通过软件跳到复位中断位置去执行,但出现 HardwareFault:
  __set_MSP(*(__IO uint32_t*)  0x1a000000);   
  ((void(*)(void))(*(vu32 *)0x1a000004))();      
正确的该怎么做呢?
liuzaiy 发表于 2021-3-2 21:55 | 显示全部楼层
有专门的 NVIC_SystemReset 库函数的
 楼主| zwll 发表于 2021-3-2 21:59 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家
香水城 发表于 2021-3-11 22:32 | 显示全部楼层
应该说,对于cortex M芯片 ,跟所有跳转 有关的中断相量地址的LSB都该为1.
sonicll 发表于 2021-3-12 11:41 | 显示全部楼层
二楼正解,LSB的0和1是区分ARM模式和thumb模式的,cortex-m系列只支持thumb模式
zchong 发表于 2021-3-14 13:58 | 显示全部楼层
这个强制转换成函数指针是不是存在问题,最前面少了一个*吧
八层楼 发表于 2021-4-1 09:48 | 显示全部楼层
这是硬性规定
观海 发表于 2021-4-1 09:49 | 显示全部楼层
cortex-m系列只支持thumb模式
guanjiaer 发表于 2021-4-1 09:50 | 显示全部楼层
按照规定办吧
heimaojingzhang 发表于 2021-4-1 09:52 | 显示全部楼层
要仔细看手册啊
keaibukelian 发表于 2021-4-1 09:54 | 显示全部楼层
原来是这个原因啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

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