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

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

請(qǐng)教,在GCC里怎么將 結(jié)構(gòu)體 定義到 Flash 中?

作者:yingjie 欄目:單片機(jī)
請(qǐng)教,在GCC里怎么將 結(jié)構(gòu)體 定義到 FLASH 中?
 
2樓: >>參與討論
農(nóng)民講習(xí)所
先定義好結(jié)構(gòu),結(jié)構(gòu)是新的變量類(lèi)型說(shuō)明
CHAR , int, int *之類(lèi)變量說(shuō)明等同地位和作用。所以你在按標(biāo)準(zhǔn)C寫(xiě)法說(shuō)明,如:
struct x{
  ....
};

const struct x sx;

將struct x想象看作CHAR之類(lèi)。


3樓: >>參與討論
zsmbj
如此:
struct stu{
int month;
int day;
int year;
};

PROGMEM    struct stu    data1={12,31,2006};

PROGMEM    struct stu    data2={01,01,2005};


4樓: >>參與討論
yingjie
在avr studio 中看了一下,怎么還是定義到了SRAM中?
struct SetMenuType{
   unsigned CHAR *MenuText[10];
   unsigned CHAR MenuNum;
   };
.....
struct SetMenuType m1 PROGMEM={{"1234","2345","3456","4567","5678","67879","7890","8901","9012","0123"},10};

 

5樓: >>參與討論
yingjie
再就是在以后讀取應(yīng)用的時(shí)候,和普通變量用法一樣嗎?
 
6樓: >>參與討論
zsmbj
你的定義的問(wèn)題
你在定義里只是將MenuText的指針存在了FLASH里,真正的數(shù)據(jù)則存放在了ram里。

如下可以:

struct SetMenuType{
   unsigned CHAR MenuText[10][5];
   unsigned CHAR MenuNum;
   };

struct SetMenuType m1 PROGMEM={{"1234","2345","3456","4567","5678","67879","7890","8901","9012","0123"},10};


.lss文件:

0000002d <m1>:
  2d:    31 32 33 34 00 32 33 34 35 00 33 34 35 36 00 34     1234.2345.3456.4
  3d:    35 36 37 00 35 36 37 38 00 36 37 38 37 39 37 38     567.5678.6787978
  4d:    39 30 00 38 39 30 31 00 39 30 31 32 00 30 31 32     90.8901.9012.012
  5d:    33 00 0a   


7樓: >>參與討論
yingjie
謝謝zsmbj,上面問(wèn)題已經(jīng)解決,新問(wèn)題來(lái)了:
謝謝zsmbj,上面問(wèn)題已經(jīng)解決,新問(wèn)題來(lái)了:
該結(jié)構(gòu)體作為函數(shù)的參數(shù),代入函數(shù)后如何讀MenuNum的值呀?
unsigned CHAR GetMenuSelect(struct SetMenuType *menu)        
    {
    unsigned CHAR num;
    num=pgm_read_byte(menu->MenuNum);
    num=menu->MenuNum;
    num=*((unsigned CHAR*)(menu->MenuNum));
    ......
    }
以上三種方式均不能得到正確的值。

8樓: >>參與討論
yingjie
謝謝,搞定了
 
參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
ATMEGA128外接SRAM需用那種型號(hào)的鎖存器呀!
AVR的IO口驅(qū)動(dòng)led究竟是直接驅(qū)動(dòng)好,還是灌電流輸入好?
請(qǐng)教自動(dòng)轉(zhuǎn)換量程問(wèn)題!
atmega128
用TINY24 SPI作從機(jī) 不能進(jìn)入接收中斷
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)