查看: 1057|回复: 0

[S12] 关于S12p系类的内存映射

[复制链接]

该用户从未签到

13

主题

34

帖子

0

注册会员

Rank: 2

积分
149
最后登录
2022-6-14
发表于 2016-9-12 19:30:32 | 显示全部楼层 |阅读模式
1.png 2.png
按照上图的映射方式做一下的flash擦写处理,擦写出错。参考的官方例程使用官方地址时正常擦写无错误。
  1. INT8U PFlash_EraseSector(INT32U address)
  2. {
  3.   while((FSTAT & FSTAT_CCIF_MASK) == 0);   //wait if command in progress
  4.   FSTAT = 0x30;             //clear ACCERR and PVIOL
  5.   
  6.   FCCOBIX = 0x00;
  7.   FCCOB = 0x0A00 | ((address & 0x00030000)>>16);
  8.   
  9.   FCCOBIX = 0x01;
  10.   FCCOB = (address & 0x0000FFF8);
  11.   
  12.   FSTAT = 0x80;         //launch command
  13.   while((FSTAT & FSTAT_CCIF_MASK) == 0); //wait for done
  14.   
  15.   if((FSTAT & (FSTAT_ACCERR_MASK | FSTAT_FPVIOL_MASK)) != 0)
  16.     return FlashEraseError;
  17.   else
  18.     return noErr;
  19. }
复制代码
是不是我当我写入32位的地址0x0003c000(全球地址)就是擦除本地内存Flash中0xC00开始一个扇区的数据?还是我哪里理解出了错
希望有经验的人士指点一二,万分感谢。

想问一声这个擦写的地址是如何计算的,谢谢各位大神。




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

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-5-9 19:19 , Processed in 0.189545 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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