Я хочу получить доступ к некоторым регистрам моей платы ARM Cortex-A8, которые по умолчанию находятся в недоступном состоянии. На этой плате работает Ubuntu 9.10. Итак, чтобы получить к ним доступ, я должен, в свою очередь, сначала изменить еще 1 параметр реестра (Allow-access-register). Чтобы изменить этот регистр разрешения-доступа, я обнаружил, что должен делать это только в режиме ядра, а не в пользовательском режиме.
Итак, я упомянул, как программировать в режиме ядра, и перешел к этому замечательному руководству < / а>. Я написал эту небольшую программу hello world и 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");
}
файл сборки
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