你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32的M3程序启动地址问题

[复制链接]
zhp-345798 提问时间:2015-10-16 17:32 /
阅读主题, 点击返回1楼
收藏 评论24 发布时间:2015-10-16 17:32
24个回答
zhp-345798 回答时间:2015-10-17 14:35:49
yanhaijian 发表于 2015-10-17 13:15
单片机上BOOT引脚控制程序从哪里开始执行。

boot0为0,从main flash memory启动的
废鱼 回答时间:2015-10-17 14:43:07
可以。通过设置启动向量。NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
zhp-345798 回答时间:2015-10-17 15:02:25
安 发表于 2015-10-17 14:43
可以。通过设置启动向量。NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

不可以哦,
我把SystemInit最后那里的SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;跟你的NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);是一样的效果
程序一开始调试r15(pc)的值为0xfffffffe
如果不设置flash偏移按常规的从0扇区启动的话r15(pc)值为0x8001bf4,可以正常调试运行的
creep 回答时间:2015-10-17 15:31:30
zhp-345798 发表于 2015-10-17 14:35
这样更不行,我一开始就是这样尝试过了

先写个简单的测试程序把其他的代码都去掉比如点亮LED看可不可以,调试看下中断向量表是否放到0x8010000处。
废鱼 回答时间:2015-10-17 16:45:19
不光要代码,工程配置也要改。
zhp-345798 回答时间:2015-10-17 16:56:02
安 发表于 2015-10-17 16:45
不光要代码,工程配置也要改。

哦,版主可以做个非常简单的demo工程参考下吗?发我邮箱:zhpzws@163.com
zchong 回答时间:2015-10-18 13:53:15
为啥大家都觉得简单呢,这个没法实现,只能在0x08000000地方增加一级bootloader程序,不然无法实现你的程序在0x08010000处运行。
废鱼 回答时间:2015-10-19 08:47:40
官方提供了IAP的例程,楼主可以参考。
zhp-345798 回答时间:2015-10-19 11:19:56
谢谢大家的帮忙,这个问题如zchong所说程序是没法实现从非0扇区直接启动的,项目已经采用其他方法解决,暂且告一段落,再次谢谢大家!
yanlinwei 回答时间:2015-10-19 11:26:23
路过学习,谢谢
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版