[其他ST产品] 怎么在ADS下进行STR710的IAP编程(远程升级)

[复制链接]
3874|2
 楼主| lxy001 发表于 2007-8-19 11:33 | 显示全部楼层 |阅读模式

#pragma arm section code ="foo"
void  gud_sub(void)
{
 
    u32 i,dat,Addr;
    u16 *ptr,*S; 
    u8 j;
    u32 *P;
    soft_C *p;
    擦除内部全部FLASH
    内部FLASH编程
}
#pragma arm section code
 
void IAP(void)
{
 ...
 gud_sub
...
}

gud_sub和IAP函数都在Frame_chanage.c中,下面是分散加载文件。
Exec_IAP 0x20000000 0x8000;
 {

 Frame_chanage.o(foo);
 *(+RW,+ZI);
 }
 HEAP +0 UNINIT
    {
        heap.o(+ZI);
    }
STACKS 0x2000FFF0 UNINIT ;
    {
        Stack.o(+ZI);
    }
}
当程序在IAP调用gud_sub是程序就跑飞。没有执行这段代码。
如果把gud_sub修改如下
void  gud_sub(void)
{
    u32 i,dat,Addr;
    u16 *ptr,*S; 
    u8 j;
    u32 *P;
    soft_C *p;
#pragma arm section code ="foo"

    擦除内部全部FLASH
    内部FLASH编程
#pragma arm section code
}
在执行这段代码时就把扇区0擦除后就死机了。
请问各位高手怎么解决这个问题。
cyzzzz 发表于 2009-8-20 22:19 | 显示全部楼层
flash操作时,程序不能在flash里运行的,要把操作flash的函数复制到RAM中运行
xiaoyi3110 发表于 2010-4-30 14:17 | 显示全部楼层
二楼的老兄,怎么把把“操作flash的函数复制到RAM中运行”?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

53

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部