查看: 12011|回复: 20

[原创] 【YL-KL26Z开发】+ FTFA的测试

[复制链接]

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
发表于 2015-8-1 23:29:13 | 显示全部楼层 |阅读模式
接上次实验:https://www.nxpic.org.cn/module/forum/thread-600371-1-1.html

本次所做实验为KL26Z的FTFA的测试,也就是对内部FLASH的擦除、编程、检验、读取VID、读取1s状态\读取IFR、使用串口观察。

这里的主程序是对所有操作的执行和读取返回值并显示,就不再贴出了。

下面是程序:

读取FCCOBn的值:

RUN_IN_RAM INT8U ftfa_run_ccob_cmd(INT8U command[], INT16U count)
{
    INT8U ret_val = 0;
    INT8U idx;
    INT16U cmd[12];

    FTFA_FSTAT = FTFA_FSTAT_FPVIOL_MASK | FTFA_FSTAT_ACCERR_MASK | FTFA_FSTAT_RDCOLERR_MASK;  //清除FLAG标志位

    for(idx = 0; idx < 12; idx++)
    {
    cmd[idx] = 0;                                                //清除存储数组值
    }

    for(idx = 0; idx < count; idx++)
    {
    cmd[idx] = command[idx];                           
    }  
    FTFA_FCCOB0 = cmd[0];  
    FTFA_FCCOB1 = cmd[1];
    FTFA_FCCOB2 = cmd[2];
    FTFA_FCCOB3 = cmd[3];
    FTFA_FCCOB4 = cmd[4];                                                //复制FCCOB中的值
    FTFA_FCCOB5 = cmd[5];
    FTFA_FCCOB6 = cmd[6];
    FTFA_FCCOB7 = cmd[7];
    FTFA_FCCOB8 = cmd[8];
    FTFA_FCCOB9 = cmd[9];
    FTFA_FCCOBA = cmd[10];  
    FTFA_FCCOBB = cmd[11];  

    FTFA_FSTAT = FTFA_FSTAT_CCIF_MASK;                            //清除完成标志位,使命令执行
    if (ftfa_enable_interrupts_flag)
    {
        FTFA_FCNFG = FTFA_FCNFG | ftfa_interrupt_mask;         //使能中断
    }

   while(( FTFA_FSTAT & FTFA_FSTAT_CCIF_MASK) == 0) ;     //等待命令执行完成
    ret_val = ftfa_check_for_fstat_errors();                              //读取当前状态值
    return(ret_val);
}

擦除程序:

INT8U FTFA_ERSSCR( INT32U addr)                                  //由于这是第一条指令,所以不需要对Complete Flag 进行清零处理
{
   INT8U cmd_ary[12];
   INT8U ret_val;
                                                                                      
   addr = ftfa_convert_addr_to_ccob_addr(addr);                //这里是对地址的转换,本次程序中并没有用到

   cmd_ary[0] = FTFA_ERSSCR_CMD;                                //按照规则将指令以及地址存入相应的位置
   cmd_ary[1] = bits_23_16(addr);
   cmd_ary[2] = bits_15_8(addr);
   cmd_ary[3] = bits_7_0(addr);
   ret_val = ftfa_run_ccob_cmd(cmd_ary, 4);                      //将FCCOBn中的值返回

   return ret_val;     
}

在这里需要提到擦除命令的命令格式,如下图:
QQ截图20150801221540.png
这里提到的边缘等级(Margin)设置如下图:
QQ截图20150801221942.png
这个边缘等级,我看手册没太明白,知道的大神可以指点一下,谢谢!

这里就简单介绍一个命令的程序,其他的就不多说了,大家可以参考手册。

下面是测试结果:
QQ截图20150801222445.png

源工程: Demo_FTFA.zip (948.96 KB, 下载次数: 37)

评分

参与人数 1NXP金币 +30 收起 理由
小七 + 30 赞一个!

查看全部评分

回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16706
    最后登录
    1970-1-1
    发表于 2015-8-1 23:37:34 | 显示全部楼层
    不错,学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16706
    最后登录
    1970-1-1
    发表于 2015-8-1 23:39:36 | 显示全部楼层
    楼主这个串口调试挺强大的,还能调试多机通信?
    有没有能根据接收指定的数据串,发送指定内容的串口调试工具推荐一个。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    42

    主题

    340

    帖子

    0

    高级会员

    Rank: 4

    积分
    722
    最后登录
    2016-1-9
     楼主| 发表于 2015-8-2 08:40:07 | 显示全部楼层
    lkl0305 发表于 2015-8-1 23:39
    楼主这个串口调试挺强大的,还能调试多机通信?
    有没有能根据接收指定的数据串,发送指定内容的串口调试工 ...

    这个功能倒是没有
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-3-3 09:56
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    106

    主题

    836

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1527
    最后登录
    2023-6-12
    发表于 2015-8-2 10:01:15 | 显示全部楼层
    lkl0305 发表于 2015-8-1 23:39
    楼主这个串口调试挺强大的,还能调试多机通信?
    有没有能根据接收指定的数据串,发送指定内容的串口调试工 ...

    这个可以自己写 一个。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16706
    最后登录
    1970-1-1
    发表于 2015-8-2 11:09:32 | 显示全部楼层
    jinyi7016 发表于 2015-8-2 10:01
    这个可以自己写 一个。

    也是一个办法哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2015-8-2 14:19:59 | 显示全部楼层
    楼主。学习了。 null - 副本 - 副本 - 副本.png null - 副本 - 副本 (2).png null - 副本 - 副本 (3).png null - 副本 - 副本.png null - 副本 (2) - 副本.png null - 副本 (2).png null - 副本 (3).png null - 副本 (4).png null - 副本.png null.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
    发表于 2015-8-2 21:46:23 | 显示全部楼层
    学习     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-8-30 16:02
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    1065

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1851
    最后登录
    2019-11-19
    发表于 2015-8-2 21:48:16 | 显示全部楼层
    向楼主学习
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    102
    最后登录
    2020-1-7
    发表于 2015-9-16 10:36:21 | 显示全部楼层
    为啥debug的时候在查看memory中flash的值的时候没有改变?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 14:08 , Processed in 0.106834 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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