HR8P506,FLASH的IAP操作与RAM不得不说的秘密

好久不更新,今天弄了个FLASH的IAP自编程操作,,,
进行这节前一定一定要熟读FLASH章节.

首先,要做IAP操作要记得将配置字设置一下.
这里写图片描述

可以看到,最快捷的方式是将FWPEB位设置成Disable就好了.
其余设置自己领悟.

然后只要在程序中调用已经写好的库函数就好了.

举个栗子:

#define START_ADDR  0x00006400
#define PAGE_ADDR   (START_ADDR / 1024)//一页为1K

uint32_t rbuf;
uint32_t Time;

int main(void)
{
    while (1)
    {
        Time++;
        if(ReadKey)//按键按下,将计时数值写入FLASH
        {
            IAP_ErasePage(PAGE_ADDR);
            IAP_WriteWord(0, PAGE_ADDR, Time);
        }

        IAP_Read(&rbuf, START_ADDR + count, 1);//读出FLASH内容  
        printf("Time: %5d Flash: %5d ",Time,rbuf);//打印数据
    }
}

这个程序,,,只是写大概意思,请自行补全…

编译,下载.

但是发现每次要写入FLASH的时候,,,单片机都复位了….
这是嘛回事.

这里写图片描述

跟踪发现,程序每次进行到这里就复位了.
使能FLASH操作单片机就进入了二次元.这是怎么回事.

折腾了一下午,,,最后发现手册里面如是说
这里写图片描述

程序要在SRAM里面运行才正常,,,,,
SRAM:怪我咯..

那么问题来了,怎样才能让代码在SRAM里运行呢…
很简单:

这里写图片描述

选中lib_flashiap.c文件,右键,选择Options for File ‘lib_flashiap.c’这个选项.

这里写图片描述

在Code/Const这里选择成IRAM1就好了.
点击确定,重新编译,烧录.

OK,IAP功能可以正常使用了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
H750 iap是指STM32H750开发板上的一个功能,它可以实现通过外部flash存储设备来进行固件的升级。外部flash是一种存储设备,可以将固件文件存储在其中,然后通过iap的功能将固件文件加载到H750开发板上进行升级。 H750 iap功能通过串行外设(SPI)接口与外部flash进行通信,读取和写入数据。它可以通过指定的命令将固件文件从外部flash加载到开发板的内存中进行执行。这个过程需要确保固件文件的完整性和正确性,以免导致设备故障或数据丢失。 外部flash通常有较大的存储容量,可以满足更大固件的存储需求。与内部flash相比,外部flash的主要优势在于容量更大,可以存储更多的固件文件。同时,它也可以通过更换flash芯片来扩展存储容量。 在使用H750 iap外部flash时,需要注意以下几点: 1. 外部flash的容量和接口类型需要与H750的iap功能兼容,以确保正常通信和数据传输。 2. 外部flash的存储位置和固件文件的加载地址需要正确配置,否则可能导致固件加载错误或无法启动。 3. 在进行固件升级时,需要注意备份原始固件文件,以防意外情况导致固件数据丢失。 4. 外部flash的读写速度较慢,使用时需要考虑数据传输的时间和性能影响。 总之,H750 iap外部flash功能可以提供更大的存储容量和灵活的固件升级方式,为开发者提供了更多的选择和便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值