Параметры загрузки в qemu - PullRequest
       17

Параметры загрузки в qemu

0 голосов
/ 23 февраля 2012

Я новичок в программировании ядра и пытаюсь сделать пример "Hello World".Я добавил следующий код в init / main.c в start_kernel ()

#ifdef HELLO
   printk("Hello World");
#endif

Теперь к моему вопросу.Как определить HELLO в параметрах загрузки, используя qemu?

1 Ответ

1 голос
/ 23 февраля 2012

Вам нужно определить HELLO во время компиляции (либо с -DHELLO в качестве флага компилятора, либо с #define HELLO где-нибудь), в противном случае компилятор никогда даже не увидит вызов printk и никакой код для него не будет выдан.

Невозможно перезапустить компилятор C во время начальной загрузки на основе параметров загрузки, что вам и нужно сделать, чтобы изменить HELLO там.

Ядро ничем не отличается от любой другой программы на C в этом отношении - директивы препроцессора обрабатываются очень рано при компиляции.

Вы можете настроить параметры с помощью этого вспомогательного макроса , которые являются обычной переменной, которую можно установить при загрузке и протестировать во время выполнения (не во время компиляции) с помощью простого старого оператора if.

...