annotate kernel/kernel.c3 @ 407:9eb1fc6aad6c

Minor improvements
author Windel Bouwman
date Fri, 20 Feb 2015 15:47:54 +0100
parents 0fb6633c42f6
children ad6be5454067
rev   line source
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
1 module kernel;
292
534b94b40aa8 Fixup reorganize
Windel Bouwman
parents: 283
diff changeset
2
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
3 import memory;
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
4 import process;
292
534b94b40aa8 Fixup reorganize
Windel Bouwman
parents: 283
diff changeset
5 import scheduler;
534b94b40aa8 Fixup reorganize
Windel Bouwman
parents: 283
diff changeset
6 import arch;
355
c2ddc8a36f5e Enabled optimization
Windel Bouwman
parents: 354
diff changeset
7 import io;
402
0fb6633c42f6 Moved several files to logical locations
Windel Bouwman
parents: 393
diff changeset
8 import debug;
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
9
381
6df89163e114 Fix section and ldr pseudo instruction
Windel Bouwman
parents: 367
diff changeset
10
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
11 // Main entry point of the kernel:
293
6aa721e7b10b Try to improve build sequence
Windel Bouwman
parents: 292
diff changeset
12 function void start()
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
13 {
381
6df89163e114 Fix section and ldr pseudo instruction
Windel Bouwman
parents: 367
diff changeset
14 io.println("Welcome to lcfos!");
353
b8ad45b3a573 Started with strings
Windel Bouwman
parents: 352
diff changeset
15 arch.init();
362
c05ab629976a Added CPUID for arm
Windel Bouwman
parents: 360
diff changeset
16
407
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
17 memory.init();
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 381
diff changeset
18 process.init();
407
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
19 load_init_process();
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 381
diff changeset
20
381
6df89163e114 Fix section and ldr pseudo instruction
Windel Bouwman
parents: 367
diff changeset
21 io.println("Kernel finished");
393
6ae782a085e0 Added init program
Windel Bouwman
parents: 381
diff changeset
22 panic();
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
23 }
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
24
367
577ed7fb3fe4 Try to make thumb work again
Windel Bouwman
parents: 365
diff changeset
25 // Called in total stress:
293
6aa721e7b10b Try to improve build sequence
Windel Bouwman
parents: 292
diff changeset
26 function void panic()
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
27 {
407
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
28 io.println("Kernel panic!");
308
2e7f55319858 Merged analyse into codegenerator
Windel Bouwman
parents: 301
diff changeset
29 arch.halt();
283
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
30 }
c9781c73e7e2 Added first kernel files
Windel Bouwman
parents:
diff changeset
31
407
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
32 function void load_init_process()
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
33 {
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
34 var process.process_t* init_proc;
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
35 init_proc = process.create();
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
36 process.enqueue(init_proc);
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
37
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
38 io.print2("init address ", cast<int>(init_proc));
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
39 }
9eb1fc6aad6c Minor improvements
Windel Bouwman
parents: 402
diff changeset
40