iap_write_appbin函数无法写数据

2019-07-21 05:53发布

[mw_shl_code=applescript,true]u16 iapbuf[512];   
//appxaddr:应用程序的起始地址
//appbuf:应用程序CODE.
//appsize:应用程序大小(字节).
void iap_write_appbin(u32 appxaddr,u8 *appbuf,u32 appsize)//2556
{
        u16 t;
        u16 i=0;
        u16 temp;
        u32 fwaddr=appxaddr;//当前写入的地址
        u8 *dfu=appbuf;
        for(t=0;t<appsize;t+=2)
        {                                                    
                temp=(u16)dfu[1]<<8;
                temp+=(u16)dfu[0];          
                dfu+=2;//偏移2个字节
                iapbuf[i++]=temp;            
                if(i==512)
                {
                        i=0;
                        STMFLASH_Write(fwaddr,iapbuf,512);       
                        fwaddr+=1024;//偏移1024 16=2*8.所以要乘以2.
                }
        }
        if(i)STMFLASH_Write(fwaddr,iapbuf,i);//将最后的一些内容字节写进去.  
}
[/mw_shl_code]

当appxaddr:应用程序的起始地址数值超过 0x08040000时,不工作,啥原因?
小的时候没问题。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
铭哥哥
1楼-- · 2019-07-21 10:15
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 15:34
你的MCU什么型号?40000好大了哦
lancker
3楼-- · 2019-07-21 19:34
正点原子 发表于 2018-1-5 01:00
你的MCU什么型号?40000好大了哦

我 的 MCU是 F103RE,我的Bootloaderc从0x08010000开始写,写到0x08040000就写不了。
请原子大侠赐教。
谢谢!
正点原子
4楼-- · 2019-07-22 01:13
lancker 发表于 2018-1-5 07:13
我 的 MCU是 F103RE,我的Bootloaderc从0x08010000开始写,写到0x08040000就写不了。
请原子大侠赐教。
...

RE有512KB FLASH,够用才对。
有战舰板?可以在我们战舰板上试试。
lancker
5楼-- · 2019-07-22 04:29
本帖最后由 lancker 于 2018-1-6 09:18 编辑
正点原子 发表于 2018-1-6 01:51
RE有512KB FLASH,够用才对。
有战舰板?可以在我们战舰板上试试。

将芯片flash换为512k, 可以将程序完整下载到flash里
但始终不能正常运行,是不是内存不够??
我的BIN大小为307kb.

将mini版小的源程序(不带EMWIN的),可以成功下载并正常运行。
但如果将扩展程序中“EMWIN实验1 STemWin无操作系统移植”程序移植过去也无法正常运行。

战舰板借给朋友了,下周试一试。
正点原子
6楼-- · 2019-07-22 09:16
 精彩回答 2  元偷偷看……

一周热门 更多>