色爱av综合网_色女人在线视频_男男gaygays亚洲_日本高清久久一区二区三区

購物車0種商品
IC郵購網(wǎng)-IC電子元件采購商城
51單片機(jī)能實現(xiàn)中斷自身嵌套嗎
(2011/10/31 9:52:00)
能有方法實現(xiàn)嗎,哪位大蝦指點一把

網(wǎng)友評論:中斷是不可重入的

網(wǎng)友評論:終審判決:自身中斷是不能嵌套的.
可以認(rèn)為同一中斷源是同一優(yōu)先級,則不能打斷前一中斷響應(yīng),等前一中斷響應(yīng)完成后再響應(yīng)后一次中斷請求.
本判決為終審判決,不可上訴.
本貼討論到此為止

網(wǎng)友評論:免得誤導(dǎo)別人

網(wǎng)友評論:dengm大蝦的方法甚妙!可以看作是中斷嵌套!

網(wǎng)友評論:dengm和prcxf兩位沒有理解"嵌套"的含義吧,dengm那不是中斷嵌套,也不可以看成是嵌套,只是在中斷服務(wù)程序里的一個跳轉(zhuǎn)語句而已,跟本貼討論的"同一中斷的嵌套"沒有干系
正確答案在27樓
28樓說我不懂在誤導(dǎo)別人,你自以為很懂的話總是回答和樓主的問題不相關(guān)的話,人家既然問自身嵌套你就不要說其它嵌套很容易,也不要你管它為什么要自身嵌套、有沒有必要嵌套?你只管回答行還是不行,并給出理由就行了,還說樓主新手錯誤問題,表達(dá)錯誤,想法錯誤,哼哼,懂點皮毛就不得了了,看你的積分排名和你說的話不相稱

網(wǎng)友評論:終審

終審判決:自身中斷是不能嵌套的.
可以認(rèn)為同一中斷源是同一優(yōu)先級,則不能打斷前一中斷響應(yīng),等前一中斷響應(yīng)完成后再響應(yīng)后一次中斷請求.
本判決為終審判決,不可上訴.
本貼討論到此為止



網(wǎng)友評論:31樓的conwh朋友叫我來回答什么叫中斷是什么意思?莫非又是一個"高手"來考驗我這個"新手"?中斷定義:中斷是指計算機(jī)暫時停止原程序的執(zhí)行轉(zhuǎn)而為外部設(shè)備服務(wù)(執(zhí)行中斷服務(wù)程序),并在服務(wù)完成后自動返回原程序執(zhí)行的過程.
不知conwh朋友是否滿意我的解釋

網(wǎng)友評論:51可以完成類似RISC的中斷(只是響應(yīng)中斷功能時不能自動關(guān)中斷),當(dāng)然也要編程實現(xiàn),一般的書是不會介紹的,INTEL的8051用戶手冊上有介紹,但RISC不能完成51的中斷嵌套功能(通過軟件編程也不能完全實現(xiàn))...
51的中斷優(yōu)先級方式是科學(xué)的...
RISC的中斷處理方法主要是考慮降低硬件的復(fù)雜性...

網(wǎng)友評論:雖然沒用過,據(jù)說很費RAM的,建議你再想別的思路,不行就換片子吧,別難為51了,普通的51就256個寄存器,除了其他用途的,能有多少剩余的?

網(wǎng)友評論:不要用這種辦法

網(wǎng)友評論:程序重入還必須考慮現(xiàn)場數(shù)據(jù)的保護(hù),否則只是一個玩意而已。


網(wǎng)友評論:我在27樓難到對"中斷"的概念有什么不妥的說法?先撇開27樓對"能否自身嵌套"問題的說法是否正確,依conwh朋友的語氣好象我在27樓里還有對"中斷"這個概念的錯誤表述和認(rèn)識,請conwh朋友明確的指出錯誤所在?
[我猜測conwh朋友的意思可能是指我27樓所表述的"不能打斷前一中斷"所以不叫中斷,所以說我沒理解中斷的概念.如果他是這個意思的話,那么在高優(yōu)先級的中斷服務(wù)在執(zhí)行時發(fā)生了低優(yōu)先級中斷請求,那么是否也不能稱這個低優(yōu)先級的中斷為"中斷"呢?照此推下去書上全錯了,因為幾乎所有單片機(jī)的書上都有這樣的描述:“如果新來的中斷其優(yōu)先級比正在服務(wù)的優(yōu)先級低,則CPU必須等到現(xiàn)有中斷服務(wù)完成以后才會自動響應(yīng)新來的中斷請求”(第211頁,胡漢才,單片機(jī)原理及其接口技術(shù),北京:清華大學(xué)出版社,2004)不知我對conwh朋友的意思的猜測是否正確,還請conwh朋友自己明確的把自己的意思表達(dá)出來]

網(wǎng)友評論:你也不需要引舉經(jīng)典,我不是在34樓中明確說明你在33樓中回答準(zhǔn)確嗎?
可是你看的書是指,“在撤消中斷標(biāo)志之前”才有“如果新來的中斷其優(yōu)先級比正在服務(wù)的優(yōu)先級低,則CPU必須等到現(xiàn)有中斷服務(wù)完成以后才會自動響應(yīng)新來的中斷請求”。如果高級的中斷發(fā)生了,并且在中斷中間(先甭管它是否有意義)交出了中斷級別,那么這是較低級的中斷也可以照樣發(fā)生和執(zhí)行的。書是應(yīng)該活著看,如果把它看死了,那看書就沒有什么意義了。你說我說的對否。

網(wǎng)友評論:“如果高級的中斷發(fā)生了,并且在中斷中間(先甭管它是否有意義)交出了中斷級別,那么這是較低級的中斷也可以照樣發(fā)生和執(zhí)行的。”你的這句話是對的,可是你有沒有看清楚我在27樓說的“可以認(rèn)為同一中斷源是同一優(yōu)先級,則不能打斷前一中斷響應(yīng),等前一中斷響應(yīng)完成后再響應(yīng)后一次中斷請求”這句話?我的前提是“同一中斷源”,是同一中斷源請問就算在中斷服務(wù)中交出優(yōu)先權(quán)是否還會如你所說能被自己再次打斷???書的確是死的,但你活著看也不要把一匹死馬也被你看得活起來了,這樣的活看比死看更無意義。你說我說的對否。


網(wǎng)友評論:不能響應(yīng)第二次響應(yīng)?按照你的原話是:
我的前提是“同一中斷源”,是同一中斷源請問就算在中斷服務(wù)中交出優(yōu)先權(quán)是否還會如你所說能被自己再次打斷???
問題是越來越清楚了,答案就是:當(dāng)然可以。
不知道你知道否,有個系統(tǒng):就是分時系統(tǒng),它就利用時間將各個進(jìn)程給分割開,然后就是利用不同的狀態(tài)對各個進(jìn)程進(jìn)行連接,在表面看各個任務(wù)是獨立、并行完成,可實際就是時間割裂各進(jìn)程單獨完成的。

網(wǎng)友評論:我認(rèn)為,多任務(wù)系統(tǒng)的時分復(fù)用不屬于"自身嵌套"之列,它的分時復(fù)用時在一個中斷中執(zhí)行同一中斷也不能稱為是像通常那樣的是在中斷服務(wù)中執(zhí)行新的中斷請求,因為分時割裂進(jìn)程這種情況在實際上并不是被同一中斷源打斷
再編輯加一句話:歡迎LS繼續(xù)辯駁,這兩天有事不來上網(wǎng),過幾天再來聆聽高論!

網(wǎng)友評論:所以說:中斷是可以重復(fù)的,但不能是相同功能(自身)重復(fù)中斷。

網(wǎng)友評論:鄧喵的程序你到底仔細(xì)看了沒有?
我換種方式跟你解釋吧:
首先
ORG0023H;INTFORUART串口中斷入口,進(jìn)入后本級中斷優(yōu)先級被占用,也就是說不能響應(yīng)本級或更低的中斷了,對吧?(1)
....;中斷程序
....
....
INT_RET:RETI;執(zhí)行RETI,退出本中斷并釋放本級的中斷優(yōu)先級占用,這時就能再響應(yīng)本級優(yōu)先級的中斷了,對吧?(2)

好,那再看下面的代碼:
;當(dāng)前執(zhí)行的程序段B
...
...
...
...
ACALL標(biāo)號;執(zhí)行到這一句,程序會把下一條指令地址壓棧,并跳轉(zhuǎn)到標(biāo)號執(zhí)行程序段A,對吧?(3)
NEXT:
....
....

;放在別的地方的另外一段程序
標(biāo)號:;程序段A
....
....
RET;到這一句時,會把當(dāng)前堆棧的2字節(jié)(之前ACALL壓棧的2字節(jié))彈出到PC+1指針,下一條指令會接著執(zhí)行ACALL標(biāo)號的下一句(NEXT標(biāo)號處的指令)以及后面的程序,對吧?(4)

如果你覺得問題(1)(2)(3)(4)的答案都是對的,那么繼續(xù)往下看:
我們在上面的程序中加幾句代碼,如下:
ORG0023H;INTFORUART串口中斷入口,進(jìn)入后本級中斷優(yōu)先級被占用,也就是說不能響應(yīng)本級或更低的中斷了,對吧?(1)
SUB_TX:
....
ACALLINT_RET;執(zhí)行到這一句,程序會把下一條指令地址壓棧,并跳轉(zhuǎn)到INT_RET:,對吧?(3)
;好,那我們跳到后面的INT_RET標(biāo)號繼續(xù)跟蹤程序
NEXT:;ACALLINT_RET的下一句,為了好找我們做個記號
....;中斷程序
....
....
INT_RET:RETI;執(zhí)行RETI,退出本中斷并釋放本級的中斷優(yōu)先級占用,這時就能再響應(yīng)本級優(yōu)先級的中斷了,對吧?(2)
;INT_RET只有一句話:RETI,那這是會執(zhí)行RETI,對吧?
;執(zhí)行RETI的話,釋放本級的中斷優(yōu)先級占用,并執(zhí)行類似RET的功能把當(dāng)前堆棧的2字節(jié)(之前ACALL壓棧的2字節(jié))彈出到PC+1指針,下一條指令會接著執(zhí)行ACALLINT_RET的下一句(NEXT標(biāo)號處的指令)以及后面的程序,對吧?(4)
;這時原來的中斷程序是不是還能照樣執(zhí)行,一直到RETI呢?
;是的話,那么這時再發(fā)生本級優(yōu)先級的中斷請求,會不會響應(yīng)呢??
;這時如果再有串口中斷請求,那么會不會再次響應(yīng)呢?會不會再從ORG0023H;INTFORUART串口中斷入口進(jìn)入串口中斷呢???
;如果會的話那這時是否嵌套了呢???

;如果你非要說不是什么“自嵌套”,那好,我在NEXT號后面加一句SETBRI或SETBTI,那會發(fā)生什么事呢????
;那就會不停的進(jìn)中斷0023H,變成死循環(huán)了:-)當(dāng)然,這是不允許的了:-)

你有耐心的話一個一個的做判斷題吧,判斷完了也就會有答案了...


網(wǎng)友評論:不過我覺得已經(jīng)不是嵌套了.我想嵌套該是滿足FILO.否則何以稱"嵌套",頂多是重入.要想真正的嵌套需要找到其他途徑突破35樓說的硬件優(yōu)先級判斷.

此外,我很同意xwj的觀點--原則上根本不該有這樣的設(shè)計.我沒能想出需要這個的理由.

大家歇歇氣.

網(wǎng)友評論:xwj你是不是有點想當(dāng)然了?沒有發(fā)現(xiàn)你程序中RETI指令使用錯誤嗎?還正在暗自得意是吧?現(xiàn)在是深夜12:33我要睡覺了,明天一大早出去有事大后天才會回來,現(xiàn)在必須睡覺了所以對于你的錯誤我這里只提醒你就不詳細(xì)指出了,等大后天回來再給你細(xì)細(xì)道來.希望你自己能夠自己悟出并改正

網(wǎng)友評論:我也偷偷背了一遍.比起"前后臺"是有些優(yōu)勢,但還是屬于非典作風(fēng).

網(wǎng)友評論:我45樓的貼只是為了讓你便于理解,自然不能說得太復(fù)雜,照那樣寫一次中斷自然會執(zhí)行兩次RETI,真要實用自然是有辦法考慮到的,就不用你提醒了

中斷重入、如何可靠軟復(fù)位,這可以說是用的不能再用、討論的不想再討論的話題了,所以我前面都是一筆帶過了

你如果覺得這樣用RETI不正確,那么恭喜你,你是個很按規(guī)矩辦事的人!
但是,我也可以告訴你,我們公司十幾年前的程序中就有這樣的應(yīng)用,而且可以說這么多年來都是可靠運(yùn)行的。
而且,你去研究研究別人的OS代碼,你也會發(fā)現(xiàn)很多的這種應(yīng)用的


非典的設(shè)計能實現(xiàn)很多看似不能或想象不到的功能,但也要做好承受代價的準(zhǔn)備--稍有考慮不周就可能出些你意想不到的問題:-)
--雖然我很不贊成這種編程風(fēng)格,一般都盡量避免,但在必要時也不會拒絕這種寫法


PS:這些都是很基礎(chǔ)的問題,我不覺得有什么好得意的地方,也不知道我哪里讓你覺得我“自鳴得意”了,

而且,最近我現(xiàn)在也確實很忙,白天基本上都很少灌水了,這帖子都是半夜爬起來碼的字,所以很多問題都是三言兩語指出關(guān)鍵避免走入彎路就沒管了,相信有心學(xué)習(xí)、樂于思考的人自己能找出答案的。

我不是21ic的版主,但我回答的問題比很多版主都多得多,但一直有個基本原則:不懂的決不說,只說對的!

比起直接給出答案,我更覺得提供線索、方向,讓疑問者自己去思考出答案應(yīng)該能得到更多的收獲:-)


也只有碰到實在點不破的籠或可能誤導(dǎo)新人的問題,才會詳細(xì)解答



網(wǎng)友評論:不過新手要先研究通鄧苗同志的寫法后再應(yīng)用,否則可能要傷身體的~~~

網(wǎng)友評論:“中斷服務(wù)”在未結(jié)束前,降低自己的優(yōu)先級。
如不要嵌套可這樣寫:
ORG0023H
JBCRI,SUB_RX
JBCTI,SUB_TX
INT_RET:
IRET
NOP
;---------------------
ORG0050H
sub_rx:;不要嵌套的
MOVBUF_SBUF,SBUF
CLRES;停本中斷源,不要嵌套
ACALLINT_RET;降低自己的優(yōu)先級
;“中斷服務(wù)”還繼續(xù)。。。。。

XCHA,R1
ANLA,#1FH
ORLA,#60H;IN_BUF:60H-7FH
XCHA,R1
XCHA,BUF_SBUF
MOV@R1,A
INCR1
INCIN_LEN
MOVA,BUF_SBUF

SETBES;開本中斷源
;中斷相關(guān)指令,下一"ret"之前不會被中斷打斷,
RET;(在就是Intel的高明!!!)及時出棧
;------------------------------------------------------------
SUB_TX:;下面為嵌套的
ACALLINT_RET;降低自己的優(yōu)先級
XCHA,OUT_LEN
JZSUB_TX_EX
;--------------------------
XCHA,OUT_INDEX
ANLA,#1FH
ORLA,#40H;OUT_BUF:40HTO5FH
XCHA,R0
XCHA,@R0
MOVSBUF,A
MOVA,@R0
XCHA,R0
INCA
XCHA,OUT_INDEX
DECA
SUB_TX_EX:
XCHA,OUT_LEN
RET
;----------------------------






網(wǎng)友評論:自己能中斷自己嗎?都是用一個中斷啊,是同一個中斷優(yōu)先級,
我感覺不行
高手來說說,,看看能行不?//

網(wǎng)友評論:你的問題前面已經(jīng)說了答案了...

網(wǎng)友評論:ISR:PUSHNext的地址

RETI;實際就是跳轉(zhuǎn)到Next去運(yùn)行,并且把中斷標(biāo)志清了
Next:
;做你要作的事
RET

搞定。

網(wǎng)友評論:xwj是其中之一,干著急,人家還死命要他醒悟,難辦哦難辦

網(wǎng)友評論:reti后,我認(rèn)為中斷就已經(jīng)結(jié)束了。我想,這樣的看法符合一個完整中斷過程的定義。

所以不是降為平民,是偷偷退出了。
-----
這段時間我對降為平民比較敏感。哈哈!

網(wǎng)友評論:以后都叫你“白板”了

這個名字不錯吧?比你那個“高潮”好吧?
相關(guān)鏈接:http://www.21icbbs.com/club/bbs/list.asp?boardid=7&t=2536231&tp=%u4E3A%u4E86%u7EAA%u5FF521ic%u6709%u53F2%u4EE5%u6765%u6700%u767D%u7684%u6591%u7AF9%uFF0C%u6211%u51B3%u5B9A%u4EE5%u540E%u90FD%u53EB%u7248%u4E3B%u201C%u767D%u677F%u201D%u4E86

網(wǎng)友評論:利用堆棧操作的技巧,偷偷更換了返回地址。其實已經(jīng)返回了一次。

網(wǎng)友評論:應(yīng)該可以的啊,可以做實驗驗證一下

瀏覽:(5949)| 評論( 1 )
博文評論
Alba:2012/12/3 23:43:00
Im irmpessed by your writing. Are you a professional or just very knowledgeable?

  • 昵 稱:
  • 內(nèi) 容:10~250個字符
  • 驗證碼: 驗證碼看不清楚?請點擊刷新驗證碼
  •                      
  • 博文分類

    熱點博文

    最新博文

    最新評論

    IC電子元件查詢
    IC郵購網(wǎng)電子元件品質(zhì)保障

    主站蜘蛛池模板: 化德县| 竹溪县| 建昌县| 沛县| 刚察县| 壤塘县| 汾西县| 平湖市| 碌曲县| 忻州市| 余庆县| 高雄县| 宜州市| 西贡区| 安仁县| 昔阳县| 梁平县| 宜川县| 灌南县| 凯里市| 阿图什市| 当涂县| 定安县| 曲靖市| 英吉沙县| 克拉玛依市| 武平县| 哈巴河县| 简阳市| 长宁县| 芮城县| 青岛市| 盘锦市| 牟定县| 台州市| 大渡口区| 永州市| 邵阳县| 临湘市| 集贤县| 苍南县|