ARM Ubuntu:如何在特权模式下运行代码?

ARM Ubuntu:如何在特权模式下运行代码?,ubuntu,arm,elevated-privileges,Ubuntu,Arm,Elevated Privileges,我有一个ARM三星Chromebook运行Ubuntu(Chrubuntu12.04) 在ARM“特权”状态下运行某些代码的最简单方法是什么?我不是在寻找sudo,我是在寻找ARM处理器模式的Supervisor、IRQ、FIQ等。我可以在某个地方探测/修改协处理器寄存器 进入priv模式很容易:只需执行SVC调用。问题是,将我自己的一些代码插入操作系统,以便在某个SVC调用中调用它,最简单的方法是什么 我不是什么Linux黑客。大多数情况下,我都在寻找最简单的一般方向上的一般指针(重建内核?获

我有一个ARM三星Chromebook运行Ubuntu(Chrubuntu12.04)

在ARM“特权”状态下运行某些代码的最简单方法是什么?我不是在寻找sudo,我是在寻找ARM处理器模式的Supervisor、IRQ、FIQ等。我可以在某个地方探测/修改协处理器寄存器

进入priv模式很容易:只需执行SVC调用。问题是,将我自己的一些代码插入操作系统,以便在某个SVC调用中调用它,最简单的方法是什么

我不是什么Linux黑客。大多数情况下,我都在寻找最简单的一般方向上的一般指针(重建内核?获取一些驱动程序源代码并挂接修改后的驱动程序?一些简单的命令行选项来运行priv?),然后我将从那里开始


如果我的上述方法毫无意义,并且有更简单的方法,我的总体目标是:

  • 编写一些低级汇编例程
  • 了解它们在Cortex-A15内核的各种硬件配置中的性能
提前感谢,


Paul

访问协处理器寄存器的最简单方法是在内核启动序列中运行一些初始化代码,如board init或编写内核模块来执行您想要的操作,以防它们不被用户许可。看这个。另外,如果有兴趣,请参阅。

,了解您问题的第二个版本: 在我看来,您似乎想要性能工具,而不是尝试实施您自己的性能度量:


另一种方法是通过实现可加载的内核模块。如果您创建一个模块,作为驱动程序或通过/proc或/sys访问的对象,该模块将在主管模式下执行。

最简单的方法是完全忘记chrome book,并在模拟器中运行它。我正在尝试优化专门用于Cortex-A15处理器的代码。模拟器不会有帮助,因为它会太慢,不能正确地表示Cortex-A15行为。非常有用。我将采用内核模块方法。谢谢两个答案:1)通用性能工具可以,但使用A15中的一些原始性能计数器会更好。我不需要便携性。2) 我还希望能够操作一些硬件参数(较慢的二级缓存、调整硬件预取等)。为此,我需要内核模式。因此,我正在研究内核模块(可能只是一个块设备驱动程序)。我现在的问题是:我正在运行ChrUbuntu,它刚刚获取了原始的ChromeOS内核。我没有/lib/modules/build。仍在探索选项。1)您希望自己编写此代码而不是通过perf访问完全相同的计数器有什么好处?2) 这种类型的修改通常在引导时(最好在启用缓存/MMU之前)更容易进行一次。查看有关访问内核源代码的信息。将性能计数器置于用户模式:没有优势。我可能会使用perf。对于其余部分(修改L2延迟、预取配置、写流等等),我的目标是测试我在不同配置中编写的代码。我现在正在为chromebook从源代码构建自己的内核。一旦我这么做了,我就可以走了。谢谢你的指点!