[求助]PE生成FLASH操作函数擦除不了FLASH(已解决)

2020-02-20 20:56发布

本帖最后由 FSL_TICS_Robin 于 2014-11-27 11:01 编辑

前几天刚用KL25官方板子实现IAP,也是用PE生成的FLASH函数,FLASH所有扇区都能擦除。现在把程序移植到KL16的工程板子上,用JLINK调试。我的FLASH分成三部分,1部分正常程序,2部分IAP程序,3部分做EEPROM,1和2由链接文件分配,3由FLASH函数直接操作,结果FLASH擦除函数只能擦除3,不能擦除1和2。搞了一天了,2个工程的配置都一样啊。是KL25和KL16的区别么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
FSL_TICS_ZJJ
1楼-- · 2020-02-23 03:10
lbblsws 发表于 2014-10-17 11:12
KL16Z128VFM4;KL25全部能正常擦写(openSDA调的);在工程板子上是用JLINK调的,擦除不了已写程序的空间( ...

把你代码上传,我这边用KL26的试试,这个是兼容KL16的芯片的。
FSL_TICS_ZJJ
2楼-- · 2020-02-23 07:39
 精彩回答 2  元偷偷看……
lbblsws
3楼-- · 2020-02-23 12:44
FSL_TICS_ZJJ 发表于 2014-10-17 11:21
你也可以用opensda接过去调试看看,是不是JLINK导致的。
还有,你现在用的是什么IDE? ...

我用的KDS,openSDA怎么接过去啊?
lbblsws
4楼-- · 2020-02-23 17:26
FSL_TICS_ZJJ 发表于 2014-10-17 11:20
把你代码上传,我这边用KL26的试试,这个是兼容KL16的芯片的。

我的电脑加密的,工程给你没有用,我只能贴代码
lbblsws
5楼-- · 2020-02-23 22:08
FSL_TICS_ZJJ 发表于 2014-10-17 11:20
把你代码上传,我这边用KL26的试试,这个是兼容KL16的芯片的。

int main(void)
/*lint -restore Enable MISRA rule (6.3) checking. */
{
  /* Write your local variable definition here */
        LDD_TError Error;
        uint8 xxx[2] ={0x00,0x00};
  /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
  PE_low_level_init();
  /*** End of Processor Expert internal initialization.                    ***/

  /* Write your code here */
  /* For example: for(;;) { } */


        InitEeprom();

        Error = Flash_Write(Flash_DeviceData, xxx, 0x5300, 2);

        do{
                Flash_Main(Flash_DeviceData);
        }
        while(Flash_GetOperationStatus(Flash_DeviceData) != LDD_FLASH_IDLE);
        Error = Flash_Erase(Flash_DeviceData, 0x5000, 0x400);
        do{
                Flash_Main(Flash_DeviceData);
        }
        while(Flash_GetOperationStatus(Flash_DeviceData) != LDD_FLASH_IDLE);

7楼9楼所说都是在这段程序里观察到的,FLASH函数都是PE生成的,现在存储在普通程序段
Samzzt
6楼-- · 2020-02-24 01:59
直接用PE新建一个KL16的工程

一周热门 更多>