查看: 2731|回复: 6

[求助] 如何使用 fsl_flash 元件在 KDS+KSDK ?

[复制链接]

该用户从未签到

11

主题

41

帖子

0

注册会员

Rank: 2

积分
124
最后登录
2025-4-22
发表于 2015-3-23 11:55:13 | 显示全部楼层 |阅读模式
Hi,

小弟使用 FRDM-K22F 來開發
採用的環境是 KDS 2.0.0 + KSDK 1.1.0 with Processer Expert
想要讀寫內部 Flash, 但不知該如何使用
採用的是 fsl_flash 這個元件, 請問元件內的參數要怎麼填寫?

1.png

再問, 要如何做讀寫的動作? 該怎麼使用 API ?
謝謝!






我知道答案 目前已有6人回答
回复

使用道具 举报

该用户从未签到

6

主题

147

帖子

0

中级会员

Rank: 3Rank: 3

积分
386
最后登录
2019-7-30
发表于 2015-3-24 07:26:47 | 显示全部楼层
不懂,帮顶一下。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-3-24 14:42:04 | 显示全部楼层
楼主的问题很好!
其实fsl_flash是直接把我们之前的C90TFS的flash库封装做进来了。
所以,这里的一些地址配置,其实就是flash地址的基本配置, 那么在配置之前,需要了解下,各项的意思,这点在该模块的help文档中也有写:

Configuration0 - The following items are available only if the group is enabled (the value is "Enabled"):
  • Configuration structure name - Configuration name
  • C90TFS register base address - Specifies register base address of flash module.
  • Program flash base address - The base address of program flash block.
  • Size of program flash - The size address of program flash block.
  • Data flash base address - The base address of data flash block.
  • FlexRam base address - The base address of FlexRAM (for FlexNVM device) or acceleration RAM block (for non-FlexNVM device).
  • Background debug mode enable - Background debug mode enable. There are 2 options:
    • Enabled
    • Disabled

其实,这些在我之前发的一篇关于C90TFS的贴子中也详细介绍了,具体请查看:

那么理解意思之后,配置就不难了。
,具体结合K22你这款芯片,配置如下图:
25.jpg


回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

41

帖子

0

注册会员

Rank: 2

积分
124
最后登录
2025-4-22
 楼主| 发表于 2015-3-24 17:58:15 | 显示全部楼层
感謝你的回答!
但是依然還是有點困惑...  

我該如何寫入一個 byte 到指定的Flash位址呢?
例如我想要寫 0x10000 位址, 值為0x55 該怎麼做?

我只有在PE上做好設定, 然後main.c中加入以下兩行
uint8_t Data = 0x55;
FlashProgram(&flash1_InitConfig0,0x10000,1,&Data,(uint32_t)FlashCommandSequence);

這樣子對嗎?
但是似乎沒有成功, 用debug模式下去看memory依然沒有變化
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-3-25 13:56:23 | 显示全部楼层
CoolWJT 发表于 2015-3-24 17:58
感謝你的回答!
但是依然還是有點困惑...  

楼主你可以参考SDK里面的FLASH例程,里面也有KDS的工程,调用的都是一样的flash模块,代码部分可以直接参考,SDK里面的例程是可以直接跑,并且功能正确的,代码路径:
C:\Freescale\KSDK_1.1.0\demos\flash_demo\kds\frdmk22f
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-3-26 17:17:50 | 显示全部楼层
另外,楼主如果是想写flash的,你可以先不用fsl_flash,这个模块和KDS结合可能有些问题。
你可以先用寄存器操作实现,例如写一个longword 到0X00010000
FTFA_FCCOB0 = 0X06;
  FTFA_FCCOB1 = 0X01;
  FTFA_FCCOB2 = 0X00;
  FTFA_FCCOB3 = 0X00;
  FTFA_FCCOB4 = 0X01;
  FTFA_FCCOB5 = 0X02;
  FTFA_FCCOB6 = 0X03;
  FTFA_FCCOB7 = 0X04;
  FTFA_FSTAT = FTFA_FSTAT_CCIF_MASK;
  while(!(FTFA_FSTAT & FTFA_FSTAT_CCIF_MASK));

回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-23 04:56 , Processed in 0.100154 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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