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

[复制链接]
 楼主| 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 | 显示全部楼层
碰上同样问题了。有人解决了吗?
siemens11 发表于 2016-1-8 14:39 | 显示全部楼层
擦写flash的函数要运行在ram里面,iar只要定义ramfunc就自动完成了,你需要看一下keil里面是怎么处理的
21icer 发表于 2017-11-2 09:31 | 显示全部楼层
做个记号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

24

帖子

2

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

5

主题

24

帖子

2

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