[Kinetis] KL26Z128**** flash编程遇到问题,初始化flash用不来,求指导!!

[复制链接]
4678|26
 楼主| fjpmbb 发表于 2015-1-23 11:29 | 显示全部楼层
我这边 不能在线仿真,只能靠打印数据,所以读出的数据,我是调用flashread的方法来读取的,显示的数据不是想要的
FSL_TICS_ZJJ 发表于 2015-1-23 11:50 | 显示全部楼层
fjpmbb 发表于 2015-1-23 11:29
我这边 不能在线仿真,只能靠打印数据,所以读出的数据,我是调用flashread的方法来读取的,显示的数据不是 ...

好的,那回头我自己试下,然后给你测试工程。
这个是我测试读功能的,以前也用flash_LDD写过都是可以的。
FSL_TICS_ZJJ 发表于 2015-1-23 14:33 | 显示全部楼层
fjpmbb 发表于 2015-1-23 11:29
我这边 不能在线仿真,只能靠打印数据,所以读出的数据,我是调用flashread的方法来读取的,显示的数据不是 ...

我代码这么写的:

#define MY_FLASH_LOCATION 0x0001f000//0x00005ff0
volatile bool               DataWritten标志寄存器 = FALSE;
char                        Data[] = "Hello world";
char                        Buffer[] = "           ";
LDD_TError                  Error;
LDD_FLASH_TOperationStatus  OpStatus;
LDD_TDeviceData            *MyFLASH_Ptr;

main()中:

  MyFLASH_Ptr = FLASH1_Init(NULL);


  Error = FLASH1_Write(MyFLASH_Ptr, Data, MY_FLASH_LOCATION, sizeof(Data));  
  do {
    FLASH1_Main(MyFLASH_Ptr);
    OpStatus = FLASH1_GetOperationStatus(MyFLASH_Ptr);
  } while (!((OpStatus == LDD_FLASH_IDLE) | (OpStatus == LDD_FLASH_FAILED)));


    Error = FLASH1_Read(MyFLASH_Ptr, MY_FLASH_LOCATION, Buffer, sizeof(Buffer));    /* Start reading from the flash memory */
     do {
       FLASH1_Main(MyFLASH_Ptr);
       OpStatus = FLASH1_GetOperationStatus(MyFLASH_Ptr);
     } while (!((OpStatus == LDD_FLASH_IDLE) | (OpStatus == LDD_FLASH_FAILED)));

     if (OpStatus == LDD_FLASH_FAILED) {                                         /* Check if the operation has successfully ended */
       /* Error state solution */
     }

测试结果:“
61.jpg

62.jpg

可以看到,经过flash写命令,Hello world已经被写到0x0001f000地址。
读取的时候,把0x0001f000地址的值读到buff,可以看到,结果是正确的。



 楼主| fjpmbb 发表于 2015-1-23 16:28 | 显示全部楼层
我在看看,应该是我哪里还没有弄对 谢谢了
justperky 发表于 2015-1-25 20:08 | 显示全部楼层
学习学习
FSL_TICS_ZJJ 发表于 2015-1-26 10:55 | 显示全部楼层
fjpmbb 发表于 2015-1-23 16:28
我在看看,应该是我哪里还没有弄对 谢谢了

是的,你直接拷贝我24楼的代码,就能用了。
因为我这边debug过了。
如果后续还有问题,欢迎继续交流。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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