簡體   English   中英

如何在linux中的C程序中禁用中斷

[英]How to disable interrupt in a C program in linux

我正在使用A13處理器在Linux(A13-OLinuXino-MICRO)上用c編寫一個簡單的代碼。 我正在使用gcc編譯器,如果這很重要的話。 假設我有一個簡單的循環,只是從1到100計數,我希望在這個循環中盡可能少地中斷。 我假設我能做的最好是禁用中斷(如果可能的話,甚至是定時器中斷)並在循環后啟用它。 我的程序中有多個位置需要強制執行此操作。 任何人都可以幫我一個簡單的C代碼,保護循環免受中斷...我可以在我的平台上編譯和運行的東西?

編輯:內核線程可能是一個答案。 如何運行具有內核權限的東西? 我看到人們談論disable_local_interrupt()但我不知道如何使用它。

編輯:這是我試圖解決的實際問題。 我需要在無中斷環境中運行我的應用程序。

編輯:是的我確信Linux是我需要使用的,我知道中斷對操作系統很重要,這就是為什么我不想永遠禁用它們。 我只想在運行此操作系統時在操作系統上強制執行無中斷。 此外,我不需要解決主要問題,這是我需要解決的“問題”,所以不要再問我為什么要這樣做了。

用戶空間無法禁用或啟用中斷。

根據ARM.com http://infocenter.arm.com/help/index.jsp?topic=%2Fcom.arm.doc.ddi0344k%2FBeidabib.html這個CPU確實有不同的操作模式,這表明你可能' t禁用用戶進程的中斷。

我認為@doron是對的,你不能在用戶模式下禁用/啟用中斷,但你有一個解決方法。 您可以編寫一個在接口中封裝“循環”代碼的驅動程序,並且可以在驅動程序中啟用/禁用中斷。 您的應用程序只需要調用該接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM