查看: 2787|回复: 5

[已解决] KL25Z128的Flash擦写操作(已解决)

[复制链接]

该用户从未签到

34

主题

101

帖子

0

新手上路

Rank: 1

积分
293
最后登录
1970-1-1
发表于 2013-7-4 09:26:17 | 显示全部楼层 |阅读模式
下面是我的code
unsigned char
Flash_SectorErase(uint_32 *FlashPointer)
{
    unsigned char Return = Flash_OK;
    uint_32 FlashPtr = (uint_32)FlashPointer;
    /* Allocate space on stack to run flash command out of SRAM */
    /* wait till CCIF is set*/
    while (!(FTFL_FSTAT & FTFL_FSTAT_CCIF_MASK))
    {;}
   
    /* Write command to FCCOB registers */
    FTFL_FCCOB0 = FlashCmd_SectorErase;
    FTFL_FCCOB1 = (uint_8)(FlashPtr >> 16);
    FTFL_FCCOB2 = (uint_8)((FlashPtr >> 8) & 0xFF);
    FTFL_FCCOB3 = (uint_8)(FlashPtr & 0xFF);
FTFL_FSTAT |= 0x80;   
    /* wait for command completion */
 while (!(FTFL_FSTAT & FTFL_FSTAT_CCIF_MASK)) {};
}
每次运行到:FTFL_FSTAT |= 0x80; 
   不管我给的的参数是多少都没用,MCU肯定 复位,求高手指导!!
我知道答案 目前已有4人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-7-4 09:43:58 | 显示全部楼层

    RE:KL25Z128的Flash擦写操作

    代码是否拷贝到RAM中执行了?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34

    主题

    101

    帖子

    0

    新手上路

    Rank: 1

    积分
    293
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-4 09:48:07 | 显示全部楼层

    RE:KL25Z128的Flash擦写操作

    没有,因为我有个代码拷贝到RAM中的历程,
       flashCmdSize = 0x200;
        flashCmdFr = (UINT32)FlashCommandSequence - 1;
        flashCmdTo = (UINT32)__ram_for_command_sequence_func;
        for(i=0;i < flashCmdSize;i++)
        {
           value = READ8(flashCmdFr);
           flashCmdFr++;
           WRITE8(flashCmdTo, value);
           flashCmdTo++;
        }
        pFlashCommandSequence = (pFLASHCOMMANDSEQUENCE)((UINT8 *)__ram_for_command_sequence_func + 1);
    这样的话,在For循环里面也会复位MCU,我不知道为什么。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34

    主题

    101

    帖子

    0

    新手上路

    Rank: 1

    积分
    293
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-4 10:18:04 | 显示全部楼层

    RE:KL25Z128的Flash擦写操作

    我想把2个Demo合并成一个,但他们的.ld文件里面的配置不一样,所以会有这种问题。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-7-4 10:56:37 | 显示全部楼层

    RE:KL25Z128的Flash擦写操作(正解)

    很可能是因为你没有拷贝到RAM中执行的原因。官方例程有对与FLASH操作的例程。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34

    主题

    101

    帖子

    0

    新手上路

    Rank: 1

    积分
    293
    最后登录
    1970-1-1
     楼主| 发表于 2013-7-4 11:11:24 | 显示全部楼层

    RE:KL25Z128的Flash擦写操作

    我单独用官网的Demo,是可以对Flash进行操作的。
    但我把这个Demo和我的代码合并在一起使用,就不OK了。(我的代码是使用的USB stack里面的,有PE插件)
    我发现2个Demo里面的ld不一样,但我看都看不懂ld文件,有这种文件的指导说明书之类的吗?
     
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 04:47 , Processed in 0.091127 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表