|
4 | 4 | void dump_regs();
|
5 | 5 | int idle_thread()
|
6 | 6 | {
|
| 7 | +// set_stack_top(get_current()->usr_stack_top); |
| 8 | + __asm__ __volatile__("mov sp, %0"::"r"(get_usr_stack())); |
7 | 9 | printk("In idle thread: %d\n", get_pid());
|
8 |
| - int i=0; |
| 10 | + int i=100; |
| 11 | + int stop; |
9 | 12 | while (1) {
|
10 | 13 | sleep(1000, get_pid());
|
11 |
| - log_info_str("Running %s: %d", get_task_name(), i++); |
12 |
| - dump_regs(); |
| 14 | + __asm__ __volatile("mov %0, sp" :"=r"(stop)::); |
| 15 | + log_info_str("Running %s: %d, stop = %x", get_task_name(), i++, stop); |
| 16 | + // dump_regs(); |
13 | 17 | }
|
14 | 18 | return 0;
|
15 | 19 | }
|
16 | 20 | int normal_thread()
|
17 | 21 | {
|
18 | 22 | printk("Normal thread %d\n", get_pid());
|
19 |
| - int i = 0; |
| 23 | + int i = 20; |
| 24 | + int stop = 0; |
20 | 25 | while (1) {
|
21 | 26 | sleep(1000, get_pid());
|
22 |
| - dump_regs(); |
23 |
| - log_info_str("Running %s: pid = %d,%d", get_task_name(), get_pid(), i++); |
| 27 | + // dump_regs(); |
| 28 | + __asm__ __volatile("mov %0, sp" :"=r"(stop)::); |
| 29 | + log_info_str("Running %s: pid = %d,%d, stop = %x", get_task_name(), get_pid(), i++, stop); |
24 | 30 | __asm__ __volatile__("swi #20"::);
|
25 |
| - log_info_str("back to user space id = %d\n", get_pid()); |
26 |
| - dump_regs(); |
| 31 | + log_info_str("back to user space %s: pid = %d,%d, stop = %x", get_task_name(), get_pid(), i++, stop); |
| 32 | + // dump_regs(); |
| 33 | + } |
| 34 | + return 0; |
| 35 | +} |
| 36 | + |
| 37 | +int normal_thread1() |
| 38 | +{ |
| 39 | + printk("Normal thread1 %d\n", get_pid()); |
| 40 | + int i = 200; |
| 41 | + int stop = 0; |
| 42 | + while (1) { |
| 43 | + __asm__ __volatile("mov %0, sp" :"=r"(stop)::); |
| 44 | + log_info_str("before schedule %s: pid = %d,%d, stop = %x", get_task_name(), get_pid(), i++, stop); |
| 45 | + schedule(); |
| 46 | + log_info_str("after schedule %s: pid = %d,%d, stop = %x", get_task_name(), get_pid(), i++, stop); |
| 47 | + // dump_regs(); |
27 | 48 | }
|
28 | 49 | return 0;
|
29 | 50 | }
|
|
0 commit comments