音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

用C語言定義RAM的全局變量在連續(xù)單元問題

作者:qxkj_yaoms 欄目:ARM技術(shù)
用C語言定義RAM的全局變量在連續(xù)單元問題
  你們好!,
  1. 我想把設(shè)置的多個系統(tǒng)參數(shù)連續(xù)保存在RAM里,定義全局變量時是怎么定義變量在連續(xù)單元,把RAM的中數(shù)據(jù)保存到CPU的FLASH里.用于掉電保護設(shè)置參數(shù),然而在IAP應(yīng)用程序中.把RAM中的數(shù)據(jù)保存到FLAH中是連續(xù)的單元(256/512/1024).
.
  2.還有保存到CPU中的FLASH的數(shù)據(jù),在IAP應(yīng)用程序中沒有從FLASH中讀出數(shù)據(jù)函數(shù),所以本個不知道怎么樣才能指定位置讀出,讀出來的值再給付給RAM中的變量.
  上面兩點是本人想用FLAH來保存參數(shù),用于掉電保護,
  請問那位大俠使用ARMLPC2132用個這種方式來保存設(shè)置參數(shù),和一些采集的重要數(shù)據(jù),有沒有例程,給我發(fā)一個,剛學(xué)ARM,
  QQ 253006576  EMAIL:qxkj_yaoms@tom.com.
    

 

2樓: >>參與討論
yuzhuju
我也想這么做,不過好象沒這么簡單的
好象不能直接用*savebuf,要什么分散加載

3樓: >>參與討論
qxkj_yaoms
請高手請教
     我在周立功所有出版的ARM書都查了一遍,都沒有講到怎樣保存數(shù)組的數(shù)據(jù)把備份到FLASH里中去, 也沒有指定FLASH中的單元讀出數(shù)據(jù)的例程, 我想問一下周功的LP2132有沒有這種功能,如里沒有,就跟我說沒有,以便我想其他的辦法保存設(shè)置參數(shù),如果有,能否給我們一個把數(shù)據(jù)寫入FALSH 和從FLASH中讀出的例程.
使我們更好掌握LPC2132這顆芯片.

4樓: >>參與討論
zlgarm
re:
1. 寫數(shù)據(jù)到片內(nèi)FLASH,調(diào)用IAP來實現(xiàn),調(diào)用RamToFlash函數(shù)時提供數(shù)據(jù)源地址即可(取數(shù)組的地址).
2. 讀數(shù)據(jù)不需要調(diào)用IAP,直接使用指針來讀取即可,如下:
   uint32  *pread;
   
   pread = (uint32 *) 0x00004000;  
   dat[1] = *pread;
   ...


5樓: >>參與討論
qxkj_yaoms
ASK?
   int  main(void)
{  
    uint8 err;
    uint32 i;
    uint8 savebuf[256];
    for(i=0;i<10;i++) savebuf[i]= i+30;
    
    IO0DIR = BEEP;
    IO0SET = BEEP;
    
    IAP_Entry = (void(*)())IAP_ENTER_ADR;           // 初始化函數(shù)指針I(yè)AP_Entry
    for(i=0;i<10;i++) savebuf[i]= i+30;
    ReadParID();                                    // 讀器件ID
    BootCodeID();                                   // 讀Boot版本號
   
    SelSector(1,1);                                 // 選擇扇區(qū)1
    EraseSector(1,1);                               // 擦除扇區(qū)1
    BlankCHK(1,1) ;                                 // 查空扇區(qū)1
   
    SelSector(1,1);                                 // 選擇扇區(qū)1
   // RamToFlash(0x00001000, 0x40001000, 256);        // 寫數(shù)據(jù)到扇區(qū)1
   
  //  err = Compare(0x00001000, 0x40001000, 256);     // 比較數(shù)據(jù)
       // 比較數(shù)據(jù)
  
    RamToFlash(0x00001000, *savebuf, 256);        // 寫數(shù)據(jù)到扇區(qū)1
   
    err = Compare(0x00001000, *savebuf, 256);
   
   
    if(err == CMD_SUCCESS)
    {    /* 成功,蜂鳴一聲 */
        IO0CLR = BEEP;
        for (i=0; i<0x3FFFFF; i++);
        IO0SET = BEEP;
    }
    else
    {    /* 失敗,一直蜂鳴 */
        IO0CLR = BEEP;
    }
   
    while(1);
    return(0);
}
  在以上的例程中如果用:

  RamToFlash(0x00001000, 0x40001000, 256);        // 寫數(shù)據(jù)到扇區(qū)1
  err = Compare(0x00001000, 0x40001000, 256);     // 比較數(shù)據(jù)
  eer返回為0  成功,蜂鳴器只叫一聲,

  但是如果保存數(shù)組里的里的數(shù)據(jù),返回的是CD 蜂鳴器一直在叫,保存不成功
savebuf[256]是保存數(shù)據(jù)的數(shù)組,
RamToFlash(0x00001000, *savebuf, 256);        // 寫數(shù)據(jù)到扇區(qū)1
err = Compare(0x00001000, *savebuf, 256);

返回的是CD 失敗 ,蜂鳴器一直在叫,保存不成功
???????這又是為什么,能否幫我指點下,?????????????





6樓: >>參與討論
exdata
re
要保證savebuf落在內(nèi)部RAM中就ok,看情況你的savebuf地址不是在內(nèi)部RAM中。

7樓: >>參與討論
qxkj_yaoms
ASK??
   請問高手在C語言中定義數(shù)組,不像匯編語言那樣,能夠指定在那個單元的RAM
  面C語言是由編譯器自動分配的, 那么要把SAVEBUF定義在RAM中的某個位置,在C語言中是怎么去定義的呢


8樓: >>參與討論
qxkj_yaoms
真令人想不通
   周立功所做技術(shù)支持的論談的人,是不是對LPC系列ARM是不很熟悉,怎么不能解決我所提出問題,就是對ARM的LPC系列把RAM中數(shù)據(jù)保存FLASH中去,在買套件時,隨機的一本書里,雖然有一個IAP 應(yīng)用例程, 但是又不能移值實際的程序中去,又有什么用呢, 就如我上面所說的 把0x40001000 變?yōu)镾AVEBUF數(shù)組指針,保存到FLASH中出錯, 比較后返回的EER 為0X0D 在書上也沒有說明,這是什么錯誤類型, 我所做的很多FLASH單片機,能把數(shù)據(jù)保存到FLASH中去的,都有一個很好的例程,如何把RAM中的數(shù)據(jù)保存到FLASH 中去,,又如何從FLASH中讀出保存到RAM中定義數(shù)組中去.還有用你們的工程開模塊,下栽程序后,經(jīng)常程序運行到數(shù)據(jù)終止,認我們自已寫的程序無法調(diào)試, 如果這些問題都不能解決,給學(xué)習(xí)開發(fā)LCP系列的ARM研發(fā)工程師當頭一棒,使正在學(xué)習(xí)用LPC系列ARM喪失信心, 周立功的ARM系列芯片又怎么去推廣呢,  

9樓: >>參與討論
eleven11
ZLG提高的功能部件的例子確實太簡單了
一個IAP當時花了我好幾天時間,不過最后終于可以穩(wěn)定的在FLASH和ram中交換數(shù)據(jù)了,很多東西由于zlg提高的例子由于太簡單了,還要仔細琢磨才能實際中運行,iap,樓主查下舊的貼子吧,當時我也是查舊帖子花了好幾天才成功的

10樓: >>參與討論
aoarm
請問:eleven11
請問一下你是怎么實現(xiàn)數(shù)組里的數(shù)據(jù)到FLASH里面的呢?
我也用IAP,但是數(shù)組定位問題解決不了的

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
ZLG的3000系列什么時候出來啊!
深入淺出ARM7-LPC213X/214X(下冊)何時出版?
等待lpc213x降價的消息
求助周公
請問ZLGARM關(guān)于選購SmartARM2200一事
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號