中斷是嵌入式系統中重要組成部分,很多編譯器開發商都讓標準c支援中斷,並引入關鍵字_interrupt.但是:
1、isr不能有返回值;
2、isr不能傳遞引數;
3、isr應該是短而高效的,在isr中做浮點運算是不明智的;
4、isr中不應該有重入和效能上的問題,因此不應該使用pintf()函式。
**csdn
1.isr 不能有返回值。為什麼?
2.isr 不能傳遞引數。為什麼?
裸奔的系統: 硬體中斷響應程式的執行插入時機是隨機的,程式中不存在這樣的呼叫語句:「value=interrupter( )」, 所以,即使有返回值也不知返回給誰。 同理,如果中斷函式有形參,但因沒有呼叫者,也就沒有實參對形參賦值。所以,不可能有引數傳遞。
裸奔系統中,中斷程式由硬體觸發執行。這意味著中斷函式沒有具體的呼叫者,所以,中斷函式無法將值返回給任何物件
非裸奔系統: 作業系統需要進行各種排程安排,所以接管了中斷的入、出口;另外,還增加了許多軟體中斷。這些中斷函式的執行插入時機已經不再是隨機了。乙個中斷申請發生後,其執行時機取決於作業系統的確定安排和呼叫。也就是說,有了呼叫者,所以可以有返回值和引數傳遞。
嵌入式面試
的別人,還不錯 預處理器 preprocessor 1.用預處理指令 define 宣告乙個常數,用以表明1年中有多少秒 忽略閏年問題 我在這想看到幾件事情 1 define 語法的基本知識 例如 不能以分號結束,括號的使用,等等 2 懂得預處理器將為你計算常數表示式的值,因此,直接寫出你是如何計算...
嵌入式面試題
15 typedef 在c語言中頻繁用以宣告乙個已經存在的資料型別的同義字。也可以用預處理器做類似的事。例如,思考一下下面的例子 define dps struct s typedef struct s tps 以上兩種情況的意圖都是要定義dps 和 tps 作為乙個指向結構s指標。哪種方法更好呢?...
嵌入式技術面試指南
僱傭合適的人對於fog creek軟體公司來說是非常關鍵的。在我們這個領域,有三類人可以挑選。在乙個極端,是哪些混進來的,甚至缺乏最基本的工作技巧.只要問這類人兩三個簡單的問題,再讀一下他們的簡歷,就可以輕易地剔除他們。另乙個極端的型別是 才華橫溢的超級明星這些人僅僅為了好玩就用組合語言為palm ...