打印
[其他ST产品]

怎么在ADS下进行STR710的IAP编程(远程升级)

[复制链接]
2954|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

粉丝