打印

STM32flash烧写问题

[复制链接]
3138|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hao01222|  楼主 | 2009-2-7 09:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
**作JTAG命令来进行flash的编程,发现当我的启动在SRAM启动时,FLASH能正常的擦除和编程。但当我的启动模式换成内部闪存启动(即flash启动)时,STM32的flash中的页0不能被正常的擦除及编程,其它页均可以。
我查过保护位,读写保护位均未打开,请问大家这是怎么一回事?

我曾今认为是是因为向量偏移表放在page0的缘故,后来我通过M3的内部寄存器将向量表的位置指向SRAM后,同样不行。
而且也不是因为PC指针在page0的缘故,因为擦除和编程的代表我是放于sram中,所以擦page的时候PC应该是指向SRAM的

实在是想不明白到底是为什么会出现这种情况,然道是因为STM32F103的FLASH页0特殊性?
但同样的烧写驱动在MDK下就能正常实现,想不明白?
求助。。。
沙发
香水城| | 2009-2-7 10:29 | 只看该作者

你如何操作JTAG命令进行flash的编程?什么软件?

既然在MDK下能正常实现,说明STM32在这里没有特殊机制。

使用特权

评论回复
板凳
hao01222|  楼主 | 2009-2-7 20:10 | 只看该作者

STM32flash烧写问题

软件是自己写的,现在PAGE0的问题解决了,是系统reset的一个bug
但是系统reset有分两种,一种reset内核,一种reset外设

我reset内核的时候通过JTAG调试正常,但reset外设时,就出现错误,除了第一次能正常读取相应的存储空间外,之后读取的变量均是上一次读取的值,这是怎么一回事?

reset内核和外设是通过NVIC_AIRCR(0xE000ED0C)中的第0位和第2位来是实现的。
不知道有什么错误?

使用特权

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

本版积分规则

17

主题

49

帖子

0

粉丝