如何为Cortex A8构建内核模块?

时间:2015-03-02 13:04:35

标签: arm beagleboneblack cortex-a8

我想编译这个代码,它通过目标上的Debian OS启用ARM Cortex A8上的循环计数器。我在/home中编写了这段代码并希望编译它。

  

我如何编译它以及我应该把输出文件放在哪里?

  • 我只是嵌入式系统的初学者,
  • 我试图关注一些链接,但都失败了
  • 我实际上并不知道这样做的步骤因为我不熟悉Linux

代码:

#include <linux/module.h>
#include <linux/kernel.h>

static int OldState;

int __init init_module(void)
{

  /* enable user-mode access */
  asm ("MCR p15, 0, %0, C9, C14, 0\n\t" :: "r"(1));

  /* disable counter overflow interrupts (just in case)*/
  asm ("MCR p15, 0, %0, C9, C14, 2\n\t" :: "r"(0x8000000f));

  printk(KERN_INFO "user-mode access to performance registers enabled\n");

  return 0;
}


void cleanup_module(void)
{
}

1 个答案:

答案 0 :(得分:1)

您需要ARM工具链(交叉编译器)。它将在x86机器上编译ARM体系结构的源代码。请参阅thisthis

安装ARM工具链后,向CROSS_COMPILE提供make环境变量(或者在运行export CROSS_COMPILE=arm-none-eabi-之前在shell中执行make之类的操作)。内核构建系统将使用此变量作为gccasld等工具的前缀。这样,您的模块将构建用于ARM体系结构。在模块文件(file)上使用.ko工具,确保它是为ARM构建的。