2012-11-17 29 views
0

我有一個ARM三星Chromebook運行Ubuntu(chrUbuntu 12.04)。ARM Ubuntu:如何在特權模式下運行代碼?

在ARM「特權」狀態下運行某些代碼的最簡單方法是什麼?我不是在尋找sudo,我正在尋找Supervisor,IRQ,FIQ等ARM處理器模式。我可以探測/修改協處理器寄存器。

進入priv模式非常簡單:只需進行SVC呼叫即可。問題是,將自己的代碼插入操作系統的最簡單方法是什麼,以便在某個特定的SVC調用中調用它?

我不是一個Linux黑客。大多數情況下,我正在尋找最簡單的總體方向的一般指針(重建內核?獲取一些驅動程序源並掛鉤修改的驅動程序?一些簡單的命令行選項來運行某些特權?),然後我將從那裏開始。


如果我上面的方法是沒有意義的,並有一個更簡單的方法,我的總體目標是:

  • 寫一些低級彙編程序
  • 看到他們與各種硬件配置如何執行在Cortex-A15核心的

由於提前,

Paul

+0

最簡單的方法是完全忘掉Chromebook並在模擬器中運行它。 – Flexo

+1

我正在嘗試專門爲Cortex-A15處理器優化代碼。模擬器不會幫助,因爲它將*方式*太慢,並且不能正確表示Cortex-A15行爲。 – pmeyer

回答

1

訪問協處理器寄存器的最簡單方法是,如果它們不允許來自用戶land,那麼在內核啓動序列中運行一些初始化代碼(如board-init)或編寫內核模塊以執行所需操作。請參閱answer。另外如果感興趣,請撥打question

+0

非常有幫助。我將追求內核模塊方法。謝謝! – pmeyer

1

對於第二個版本的問題: 聲音對我來說,你想要的PERF的工具,而不是試圖去實現自己的性能測試:https://perf.wiki.kernel.org/index.php/Tutorial

的另一種方法是通過實施一個可加載的內核模塊。如果創建模塊,作爲驅動程序或通過/ proc或/ sys訪問某個模塊,則該模塊將以超級用戶模式執行。

+0

兩個答案: 1)一般的perf工具可以,但在A15中獲得一些原始性能指標會更好。我不需要可移植性。 2)我也希望能夠操縱一些硬件參數(較慢的二級緩存,調整硬件預取等)。爲此,我需要內核模式。因此,我正在追求內核模塊(可能只是一個塊設備驅動程序)。 我現在的問題是:我正在運行ChrUbuntu,它抓住了原始的ChromeOS內核。我沒有/ lib/modules/build。仍在探索選項。 – pmeyer

+1

1)您希望自己編寫這些代碼而不是通過perf來訪問相同的計數器會帶來什麼好處? 2)這種類型的修改通常在啓動時更容易執行一次(最好在高速緩存/ MMU啓用之前)。 查看http://www.chromium.org/chromium-os/developer-guide#TOC-Get-the-Source瞭解有關訪問內核源的信息。 – unixsmurf

+0

將perf計數器置於用戶模式下:沒有優勢。我可能會使用perf。對於其他(修改L2延遲,預取配置,寫入流等),我的目標是測試我在不同配置下編寫的代碼。我正在努力爲源代碼的chromebook構建我自己的內核。一旦我這樣做,我應該很好去。感謝指針! – pmeyer

相關問題