0

デフォルトでアクセスできない状態にあるARMCortex-A8ボードのいくつかのレジスタにアクセスしたいと思います。Ubuntu9.10はこのボード上で動作します。したがって、それらにアクセスするには、最初に他の1つのレジスタ設定(Allow-access-register)を順番に変更する必要があります。このAllow-access-registerを変更するには、カーネルモードでのみ実行する必要があり、ユーザーモードでは変更しない必要があることがわかりました。

そこで、カーネルモードでのプログラミング方法を紹介し、このすばらしいチュートリアルにたどり着きました。この小さなhelloworldプログラムとmakeファイルを作成しました。このプログラムはまだx86デスクトップ(Ubutnu 10.04)で実行されており、ARMプロセッサではまだ実行されていないことに注意してください。カーネルレベルのプログラミングにこだわるまでは。

これらのエラーが発生します。ここで何が問題になっていますか?

ヘルプ!


i.MX515ボードで発生するエラー

ubuntu@ubuntu-desktop:~/Documents/Kernel_Programming$ make
make -C /lib/modules/2.6.31-203-gee1fdae/build M=/home/ubuntu/Documents/Kernel_Programming modules
make[1]: Entering directory `/usr/src/linux'
make[1]: *** No rule to make target `modules'.  Stop.
make[1]: Leaving directory `/usr/src/linux'
make: *** [all] Error 2

私が得るエラー

ubuntu@ubuntu-desktop:~/Documents$ make
make -C /lib/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-23-generic'
make[2]: *** No rule to make target `/home/ubuntu/Documents/hello-1.c', 
needed by `/home/ubuntu/Documents/hello-1.o'.  Stop.
make[1]: *** [_module_/home/ubuntu/Documents] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-23-generic'
make: *** [all] Error 2

プログラム

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

int init_module(void)
{
    printk(KERN_INFO "\nHello World! I'm programming in Kernel Mode\n");

    return 0;
}

void cleanup_module(void)
{
    printk(KERN_INFO "\nBye Bye blue bird\n");
}

makefile

obj-m +=hello-1.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
4

2 に答える 2

0

投稿のフォーマットだけかどうかはわかりませんが、カーネルビルドスクリプトが「Makefile」を探しており、「makefile」があります(大文字と小文字が異なります)。それは本当に問題でしょうか?さらに、あなたのユーザー名は「ubuntu」ですか?

于 2010-07-16T06:48:26.857 に答える
0

make コマンドに次のようなタイプミスがあります。

そのはず:

make -C /lib/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules   

いいえ

make -C /lb/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules   
于 2010-07-16T06:35:03.000 に答える