打印

求解一段Z-stack中的Flash 函数使用的解释

[复制链接]
2563|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
菜鸟同学|  楼主 | 2012-3-1 15:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void HalFlashRead(uint8 pg, uint16 offset, uint8 *buf, uint16 cnt)
{
  // Calculate the offset into the containing flash bank as it gets mapped into XDATA.
  uint8 *pData = (uint8 *)(offset + HAL_FLASH_PAGE_MAP) + ((pg % HAL_FLASH_PAGE_PER_BANK) * HAL_FLASH_PAGE_SIZE);
  uint8 memctr = MEMCTR;  // Save to restore.
#if (!defined HAL_OAD_BOOT_CODE) && (!defined HAL_OTA_BOOT_CODE)
  halIntState_t is;
#endif
  pg /= HAL_FLASH_PAGE_PER_BANK;  // Calculate the flash bank from the flash page.
#if (!defined HAL_OAD_BOOT_CODE) && (!defined HAL_OTA_BOOT_CODE)
  HAL_ENTER_CRITICAL_SECTION(is);
#endif
  // Calculate and map the containing flash bank into XDATA.
  MEMCTR = (MEMCTR & 0xF8) | pg;
  while (cnt--)
  {
    *buf++ = *pData++;
  }
  MEMCTR = memctr;
#if (!defined HAL_OAD_BOOT_CODE) && (!defined HAL_OTA_BOOT_CODE)
  HAL_EXIT_CRITICAL_SECTION(is);
#endif
}

不晓得如何用。不是很明白,我用没成功,不晓得自己的读的是那段,
沙发
菜鸟同学|  楼主 | 2012-3-1 15:54 | 只看该作者
重点求解一下,第一段计算read FLASH的位置!

使用特权

评论回复
板凳
菜鸟同学|  楼主 | 2012-3-1 16:04 | 只看该作者
汗,发错地方了

使用特权

评论回复
地板
yewuyi| | 2012-3-1 17:21 | 只看该作者
从字面看是读FLASH的函数。
呵呵,这样的函数直接自己写就好了,没必要什么都是库。。。

使用特权

评论回复
5
菜鸟同学|  楼主 | 2012-3-18 17:34 | 只看该作者
4# yewuyi
下班了来接贴,哈哈了,这个前段时间郁闷了很久,成功攻下。谢谢你的热心回答!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

707

帖子

8

粉丝