打印
[STM32F0]

STM32F072C8 内部FLASH写数据,在IAR正常操作,KEIL就不行

[复制链接]
3229|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenqinyao|  楼主 | 2014-7-21 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

STM32F072C8 内部FLASH写数据,在IAR正常操作,KEIL就不行,当执行写操作时,直接跳到HardFault_Handler,在IAR里不做任何改变,一切正常,
有遇到这种情况的吗? 或者有我没想到提示一下

/******************************************************************
名   称:void Flash_WriteNByte( u32 Addr, u32 *pH, u16 Len )
功   能:写多字节数据
参   数:Addr  地址,必须是2K的倍数
         pH     写入的数据指针
         Len    写入的长度
******************************************************************/
void Flash_WriteNByte( u32 Addr, u32 *pH, u16 Len )
{
    u8 i;   

    FLASH_Unlock();

    FLASH_ClearFlag( FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR );

    FLASHStatus = FLASH_ErasePage( Addr );

    for( i=0; i<Len; i++ )
    {
       FLASHStatus = FLASH_ProgramWord( Addr + i*4 , pH[i] );  //
    }

    FLASH_Lock();

}

这是写操作, 执行这一句就会出错 FLASHStatus = FLASH_ProgramWord( Addr + i*4 , pH[i] );  注意: 在IAR里一切正常
沙发
mmuuss586| | 2014-7-21 19:02 | 只看该作者
整个程序打包发上来,我测试下看看;


使用特权

评论回复
板凳
rojum32| | 2015-7-17 17:16 | 只看该作者
版主,请问现在问题解决了吗?

使用特权

评论回复
地板
小管| | 2016-1-8 12:02 | 只看该作者
碰上同样问题了。有人解决了吗?

使用特权

评论回复
5
siemens11| | 2016-1-8 14:39 | 只看该作者
擦写flash的函数要运行在ram里面,iar只要定义ramfunc就自动完成了,你需要看一下keil里面是怎么处理的

使用特权

评论回复
6
21icer| | 2017-11-2 09:31 | 只看该作者
做个记号

使用特权

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

本版积分规则

5

主题

24

帖子

2

粉丝