12
返回列表 发新帖
楼主: cjpx84

[分享] mkl14 ftfa保护区域的设置

[复制链接]

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
 楼主| 发表于 2015-3-17 09:23:42 | 显示全部楼层
本帖最后由 cjpx84 于 2015-3-17 10:28 编辑

擦除的时候就出错了。

参考的是官方的flash代码,已经放到ram了。

flashConfig.CallBack = (PCALLBACK)RelocateFunction((uint32_t)__ram_for_callback , CALLBACK_SIZE , (uint32_t)callback);     
    g_FlashLaunchCommand = (pFLASHCOMMANDSEQUENCE)RelocateFunction((uint32_t)__ram_func , LAUNCH_CMD_SIZE ,(uint32_t)FlashCommandSequence);     


我之前发出来的代码,擦完之后,有个验证的动作,在验证的时候出错了,就进入errtrap里。
for(i = 0x0U; i < 0x2U; i++)
   {
    ret = FlashVerifySection(&flashConfig, dest_temp, number, i, g_FlashLaunchCommand);
    if (FTFx_OK != ret)
    {
     ErrorTrap(ret);
    }


另外,还有个问题想确认一下:
最终保护flash区域的设置是以fopt寄存器为准的吗?或者说 fopt 寄存器的值在reset的时候从configure filed载入的,然后每次擦除的时候根据fopt的寄存器值做相应的保护??


回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-3-17 13:19:26 | 显示全部楼层
cjpx84 发表于 2015-3-17 09:23
擦除的时候就出错了。

参考的是官方的flash代码,已经放到ram了。

擦除之后,验证之前,你看下第一个sector的memory data,看看是否已经被擦除掉了。
但是,第一个sector里面还有中断向量表等,你擦完之后,除了修改你的保护字节,其他的都需要重新写进去。
FOPT寄存器值每次都是reset后从configuration field 调进来的,所以,修改了configuration field之后,需要reset下,才可以真正刷到FOPT寄存器。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-3-26 13:42:03 | 显示全部楼层
非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此贴默认为已解决.
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-22 21:20 , Processed in 0.078318 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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