我想编译这段代码,它允许通过Debian在目标上通过ARM Cortex A8上的循环计数器。我用/home编写了这段代码,并希望编译它。
如何编译它,应该将输出文件放在哪里?
代码:
#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)
{
}发布于 2015-04-19 21:32:55
为此,您需要ARM工具链(交叉编译器)。它将为您的x86机器上的ARM体系结构编译源代码。见这和这。
一旦安装了ARM工具链,就向make提供CROSS_COMPILE环境变量(或者在运行make之前在shell中执行类似export CROSS_COMPILE=arm-none-eabi-的操作)。内核构建系统将使用这个变量作为gcc、as、ld等工具的前缀。这样,您的模块将被构建为ARM体系结构。使用模块文件( file )上的.ko工具确保它是为ARM构建的。
https://stackoverflow.com/questions/28810508
复制相似问题