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

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

請教一個嵌入式系統(tǒng)編程的概念問題

作者:onebyte 欄目:嵌入式系統(tǒng)
請教一個嵌入式系統(tǒng)編程的概念問題
在編程中對全局變量進行原子操作(用信號燈)和用volatile修飾全局變量有什么區(qū)別?是不是用了volatile就可以不再用原子操作了

2樓: >>參與討論
sysdsn

采用全局變量進行原子操作用VOLITALE是不能解決問題的。

芯艦數(shù)碼工作室
QQ:    308955632
MSN:   sysdsn@hotmail.com
Email: sysdsn@yahoo.com
Web:   http://www.sysdsn.com

3樓: >>參與討論
onebyte
謝啦
那是不是用了原子操作,就可以不用volatile??因為volatile的作用不就是讓碰到那個變量時,從內(nèi)存去讀,而不是寄存器中。用了原子操作,讀全局變量的過程不會被其它任務所打斷,也就不存在用不用寄存器響應結果了。這樣理解對嗎?

4樓: >>參與討論
gdtyy
不對
    原子操作的目的是保證一系列處理過程不被分割;
    volatile用于指示編譯器變量"易變",不要進行優(yōu)化.
    兩者含義不同,原子操作不保證程序不被優(yōu)化,volatile也不保證操作是不可分的.

5樓: >>參與討論
onebyte
多謝!已明白
 
6樓: >>參與討論
松鼠的大樹
從某個角度講,他們的作用是相反的。
原子操作是保證一段處理程序不被打斷。一般有:在多任務環(huán)境中通過禁止任務調度,保證原子操作不被其它任務打斷;通過禁止中斷保證原子操作不被中斷打斷。原子操作的目的是保證被操作的全局變量在操作的過程中不被本操作之外的因素修改,保證操作的完整性。

Volatile是對編譯器指出,該變量可能被本處理流程之外的因素修改,所以每一次使用本變量的時候都要重新從它的實際memoey地址中讀入最新的值。這些因素包括:多任務環(huán)境中的其它的任務;中斷服務程序;硬件(例如:端口電壓,計數(shù)器計數(shù)寄存器)。所以,volatile的變量的使用中要適應它可能隨時改變的特點。

一個要求不變,一個要適應隨時改變,這個角度看,他們是相反的。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
32位編程
win  ce操作系統(tǒng)下應用程序如何調用驅動??
74Ls273交通燈控制
請教 ATF1504,ATF1508 的加密方法,是否直接寫入就行?
請用過KEIL編C51程序的朋友們幫我這個菜鳥個忙,謝謝
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


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