|
|||||||||||
| 技術(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 |
什么叫再入函數(shù)和非再入函數(shù) |
| 作者:big_water 欄目:嵌入式系統(tǒng) |
| 2樓: | >>參與討論 |
| 作者: gczh1006 于 2006/8/11 14:34:00 發(fā)布:
:) 可重入函數(shù) 和不可重入函數(shù)的區(qū)別是 可重入函數(shù)在程序執(zhí)行的時(shí)候,如果發(fā)生中斷等,再次進(jìn)入,不會(huì)影響到結(jié)果。大概意思就是這樣了, 你可以到網(wǎng)絡(luò)上搜索以下,很多這樣的實(shí)例。 |
|
| 3樓: | >>參與討論 |
| 作者: 平常人 于 2006/8/11 16:31:00 發(fā)布:
答:什么叫再入函數(shù)和非再入函數(shù) 再入函數(shù)和非再入函數(shù)又稱(chēng)“可重入函數(shù)”和“不可重入函數(shù)”。 可重入的概念是指:當(dāng)程序在這個(gè)函數(shù)中運(yùn)行還未退出時(shí),因?yàn)槟撤N原因這個(gè)函數(shù)是否可以被再次調(diào)用;一個(gè)函數(shù)再次被調(diào)用的方式通常是遞歸調(diào)用和中斷調(diào)用?梢员辉俅握{(diào)用的函數(shù)稱(chēng)為“可重入的”,否則就是“不可重入的”。 什么樣的函數(shù)應(yīng)該是可重入的呢?一般進(jìn)行算術(shù)運(yùn)算的函數(shù)應(yīng)是可重入的;如一個(gè)計(jì)算平方根的函數(shù),在計(jì)算還沒(méi)有完成時(shí),一個(gè)中斷處理程序中有可能也要調(diào)用這個(gè)平方根函數(shù)。還有就要根據(jù)自己程序的需要來(lái)定了。 |
|
| 4樓: | >>參與討論 |
| 作者: mxh0506 于 2006/8/11 21:58:00 發(fā)布:
一個(gè)函數(shù)是否是可重入的主要依賴(lài)于: 1 編譯器是否能產(chǎn)生可重入代碼; 2 只使用局部變量,即變量保存在CPU寄存器中或堆棧中; 3 如果使用全局變量,則要對(duì)全局變量予以保護(hù) 不滿(mǎn)足以上條件的自然就是不可重入的函數(shù)了 * - 本貼最后修改時(shí)間:2006-8-11 21:59:48 修改者:mxh0506 |
|
| 5樓: | >>參與討論 |
| 作者: yuanjian79 于 2006/8/11 22:22:00 發(fā)布:
所以:1、關(guān)開(kāi)中斷,2、保護(hù)現(xiàn)場(chǎng) 本質(zhì)上是保護(hù)函數(shù)所使用之資源(變量,寄存器等)不被意外中斷,或被意外中斷改變,或被意外中斷改變能在退出中斷后重入函數(shù)停止處前能被完全還原。 所以:1、關(guān)開(kāi)中斷 2、保護(hù)現(xiàn)場(chǎng) |
|
| 6樓: | >>參與討論 |
| 作者: 馬甲啊馬甲 于 2006/8/11 22:29:00 發(fā)布:
函數(shù)重入是指:當(dāng)函數(shù)正在執(zhí)行,還未返回時(shí),又調(diào)用該函數(shù)。 可重入的函數(shù)是指:在函數(shù)重入發(fā)生時(shí),能實(shí)現(xiàn)預(yù)期的結(jié)果。 例如keil的普通函數(shù),是不可重入的。因?yàn)闉榱斯?jié)省RAM,keil的普通函數(shù)將局部變量分配在固定的地址上,而不是在堆棧中。當(dāng)函數(shù)重入發(fā)生時(shí),第二次調(diào)用會(huì)將第一次調(diào)用時(shí)的臨時(shí)結(jié)果破壞,從而運(yùn)算結(jié)果出錯(cuò)。 |
|
| 7樓: | >>參與討論 |
| 作者: big_water 于 2006/8/13 16:09:00 發(fā)布:
再問(wèn)一下! 謝謝各位! 那么我還想問(wèn)的是,如果我定時(shí)器中斷程序正在執(zhí)行,由于代碼比較長(zhǎng),定時(shí)中斷又產(chǎn)生,那么是否再次調(diào)用中斷程序?此時(shí)會(huì)出現(xiàn)什么結(jié)果? |
|
| 8樓: | >>參與討論 |
| 作者: gbchang 于 2006/8/14 17:04:00 發(fā)布:
那本63頁(yè)的《單片機(jī)基礎(chǔ)》中說(shuō),中斷不會(huì)被同級(jí)別中斷打斷. 自己當(dāng)然更不能中斷自己啦?:) 但申請(qǐng)還是有的,一退出,執(zhí)行一條后,就會(huì)再進(jìn)中斷。 |
|
| 9樓: | >>參與討論 |
| 作者: win2000_li 于 2006/8/15 8:47:00 發(fā)布:
學(xué)習(xí)學(xué)習(xí)。! |
|
|
|
| 免費(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) |