关于430的main flash的操作,求助!

2019-03-24 13:32发布

先给各位看帖回帖的同志们道声谢,网上查了很久没结果,故特来求问!

我有一堆比较大的数据想存在flash中,但是info flash太小了,想存在main flash中。
但是同样的程序在info flash中是可以正常写入的,在main flash中却不行了,单片机总是会reset。

求问想把数据存在main flash中要如何操作?!!

网上有说可以自己定义存的地址,还要改什么linker文件,不懂,请详解!!

谢谢各位大虾啊!! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
cpisee
2019-03-24 17:18
这两个是我擦除和写入flash的函数,在info flash内是可以正常执行的。但是在main flash里面会出错!

void FERASE(U16 address)
{
    //_DINT();                                                      
    U8 *Erase_address                             ;
    Erase_address  = (U8 *)address                ;
    FCTL1          = FWKEY + ERASE                          ;
    FCTL3          = FWKEY                                  ;
    *Erase_address = 0                                      ;
    FCTL1          = FWKEY                                  ;
    FCTL3          = FWKEY + LOCK                           ;
    //_EINT();
}

void FWRITE(U16 address, U8* data,U16 length)
{
    //_DINT();
    U16  i                                        ;
    U8* Wr_Addr                                  ;
    Wr_Addr =(U8*)address                        ;
   
    FCTL1   = FWKEY + WRT                                   ; // Set WRT bit for write operation
    FCTL3   = FWKEY                                         ;
    //while(FCTL3 & BUSY);
    for(i=0;i<length;i++)
    {
      *Wr_Addr= data                                     ;
      Wr_Addr++                                             ;
    }
    FCTL1   = FWKEY                                         ;
    FCTL3   = FWKEY + LOCK                                  ;
    //while(FCTL3 & BUSY);
    //_EINT();
}

一周热门 更多>

相关问题

    相关文章