野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11873|回复: 1

IAP 例程的两个问题

[复制链接]
发表于 2015-9-29 07:15:47 | 显示全部楼层 |阅读模式
1, iap_load_app函数中的给jump2app初始化的这一句 jump2app=(iapfun)*(vu32*)(appxaddr+4);  中的(iapfun)是强制类型转换吗?将appxaddr+4地址中的内容强制转换成iapfun类型,然后jump2app()就代表从FLASH所需的位置开始执行程序?
void iap_load_app(uint32_t appxaddr)
{
    if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000)   .
    {
        printf("\n已经开始运行FLASH用户更新代码!!\r\n");
        jump2app=(iapfun)*(vu32*)(appxaddr+4);              
        MSR_MSP(*(vu32*)appxaddr);                    
        jump2app();                                    
    }
}         

2,IAP例程中的写FLASH函数 void STMFLASH_Write(uint32_t WriteAddr,uint16_t *pBuffer,uint16_t NumToWrite)  库里面没有带现成的吗?


回复

使用道具 举报

发表于 2015-10-4 08:43:54 | 显示全部楼层
是的,强制转化成iapfun类型指针

st库有带programword之类的函数,但只是单字节操作的
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-7-2 22:55 , Processed in 0.026971 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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