找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[M051] 这里的程序是不是有点问题?

[复制链接]
跳转到指定楼层
楼主
与时俱进 发表于 2014-4-16 15:46:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
   if ( len == FLASH_PAGE_SIZE && ((addr & (FLASH_PAGE_SIZE-1)) == 0) )
    {
        DrvFMC_Erase(addr);

        while (len >= FLASH_PAGE_SIZE)
        {
            FMC_ProgramPage(addr, (uint32_t *) buffer);
            len    -= FLASH_PAGE_SIZE;
            buffer += FLASH_PAGE_SIZE;
            addr   += FLASH_PAGE_SIZE;      
        }
    }
--------------------
上面是BSP包里的一小段程序,if里面有( len == FLASH_PAGE_SIZE),说明请求的数据长度只要一个PAGE,不是多个PAGE,
所以只要运行一次           FMC_ProgramPage(addr, (uint32_t *) buffer);即可,没必要用到 while (len >= FLASH_PAGE_SIZE)。
我的理解对吗?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
Angus 发表于 2015-5-11 11:13:51 | 只看该作者
本帖最后由 Angus 于 2015-5-11 11:15 编辑

你的理解是对的。
如果您能说明是哪一个芯片型号,软件包的版本号是多少,我们测试一下,就可以更详细的回答您的问题。
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU