|
3 | 3 | use crate::filesystem::fat::FAT;
|
4 | 4 | use crate::syscalls::print::PRINTER;
|
5 | 5 | use crate::multitasking::task::Task;
|
| 6 | +use crate::multitasking::task::CPUState; |
6 | 7 | use crate::multitasking::task::TASK_MANAGER;
|
7 | 8 |
|
8 | 9 | const APP_TARGET: u32 = 0x0050_0000;
|
9 | 10 | const APP_SIGNATURE: u32 = 0xB16B00B5;
|
10 | 11 |
|
| 12 | +static mut TASK_A: Task = Task { |
| 13 | + stack: [0; 4096], |
| 14 | + cpu_state: 0 as *mut CPUState, |
| 15 | + running: false, |
| 16 | +}; |
| 17 | + |
| 18 | +static mut TASK_B: Task = Task { |
| 19 | + stack: [0; 4096], |
| 20 | + cpu_state: 0 as *mut CPUState, |
| 21 | + running: false, |
| 22 | +}; |
| 23 | + |
| 24 | +static mut TASK_C: Task = Task { |
| 25 | + stack: [0; 4096], |
| 26 | + cpu_state: 0 as *mut CPUState, |
| 27 | + running: false, |
| 28 | +}; |
| 29 | + |
11 | 30 | const HELP: &'static str = "Available commands:
|
12 | 31 | ls - lists root directory entries
|
13 | 32 | cat <file> - displays content of a file
|
@@ -125,16 +144,16 @@ impl Shell {
|
125 | 144 |
|
126 | 145 | match a {
|
127 | 146 | 'a' => {
|
128 |
| - let mut task1 = Task::new(task_a as u32); |
129 |
| - TASK_MANAGER.add_task(&mut task1 as *mut Task); |
| 147 | + TASK_A = Task::new(task_a as u32); |
| 148 | + TASK_MANAGER.add_task(&mut TASK_A as *mut Task); |
130 | 149 | }
|
131 | 150 | 'b' => {
|
132 |
| - let mut task1 = Task::new(task_b as u32); |
133 |
| - TASK_MANAGER.add_task(&mut task1 as *mut Task); |
| 151 | + TASK_B = Task::new(task_b as u32); |
| 152 | + TASK_MANAGER.add_task(&mut TASK_B as *mut Task); |
134 | 153 | }
|
135 | 154 | 'c' => {
|
136 |
| - let mut task1 = Task::new(task_c as u32); |
137 |
| - TASK_MANAGER.add_task(&mut task1 as *mut Task); |
| 155 | + TASK_C = Task::new(task_c as u32); |
| 156 | + TASK_MANAGER.add_task(&mut TASK_C as *mut Task); |
138 | 157 | }
|
139 | 158 | _ => {
|
140 | 159 | libfelix::println!("Specify test a, b, or c!");
|
|
0 commit comments