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

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

拜托放棄位域效率低下的習慣吧~~~

作者:hotpower 欄目:DSP技術
拜托放棄位域效率低下的習慣吧~~~
研究了C28X的頭文件后,有點失望~~~看來TI也陶醉與51位的流毒~~~

51的位只能適合自己,雖然PIC也是滿身的位,AVR的PORT位.

但隨著16位/32位 ARM/DSP的發(fā)展,"位"已淡化,且以另一種新的構(gòu)思代替,即

IOSET,IOCLR代替,且2812還有IOTOGGLE.

由于控制更加復雜,模塊已不能用幾個寄存器就能表述...

他們一般都是地址連續(xù)或能遵循一定排列規(guī)律的變量,故一般都聲明為結(jié)構(gòu)(指針)而使表述更為簡潔.

例:
struct GPIO_DATA_REGS {
   union  GPADAT_REG    GPADAT;
   union  GPASET_REG    GPASET;
   union  GPACLEAR_REG  GPACLEAR;
   union  GPATOGGLE_REG GPATOGGLE;
//..............
};
//...............
union GPFTOGGLE_REG {
   Uint16                all;
   struct GPFTOGGLE_BITS bit;
};

雖然位域的設置清除很方便,但是對編譯器的優(yōu)化帶來的難題~~~

下圖是經(jīng)過3級優(yōu)化后的編譯代碼,確實不好.

所以,可以保留TI的頭文件,再加上"位宏",就能提高代碼的效率....
(連續(xù)操作相同變量的位域不是個好習慣,除非硬件需要)

   SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
   SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
   SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;
   SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1;
   SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=1;
   SysCtrlRegs.PCLKCR.bit.SPIENCLK=1;
   SysCtrlRegs.PCLKCR.bit.ECANENCLK=1;
   SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;
寫成以下形式肯定代碼簡潔
SysCtrlRegs.PCLKCR.all |= (1 << ...) | (1 << ...);

所以不如放棄union直接用:
SysCtrlRegs.PCLKCR |= (1 << ...) | (1 << ...);

當然偷懶就只不要濫用xxx.bit....而在只控制1個位時使用,超過2個就用xxx.all.

哈哈,菜農(nóng)拜托各位暈友放棄位域效率低下的不良習慣吧~~~

2樓: >>參與討論
hotpower
本不想做2812的頭文件,看來還是不能省心的~~~
不過這次要"輕松"的多了~~~

3樓: >>參與討論
tjsheep
這個不同意,呵呵
dsp的特殊寄存器,基本都是模式的設定,效率不是關鍵,但是結(jié)構(gòu)的明了是很重要的,dsp也不是51,處處都要親歷親為,所以我覺得應該這樣說:拜托放棄單片機的習慣吧~~~hoho

4樓: >>參與討論
hotpower
哈哈,位域不如"位宏"~~~位域真是"多此一舉"
哈哈~~~

5樓: >>參與討論
tjsheep
那個宏不好移植吧……
 
6樓: >>參與討論
hotpower
哈哈,有空也來個TI2812DEF.H玩玩,提高一點效率
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
視頻處理
2407程序運行時芯片發(fā)燙
求助
請大家推薦幾款FLASH,容量為128M或者256M都可以,急???
如何將只將中斷向量燒寫到flash中(2407)
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


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