Auto link multiple applications in kernel.

This commit is contained in:
Yifan Wu 2020-11-19 04:33:06 +08:00
parent 1943a50d0d
commit 220397e5a5
5 changed files with 64 additions and 9 deletions

View file

@ -20,13 +20,30 @@ fn insert_app_data() -> Result<()> {
})
.collect();
writeln!(f, r#"
.align 4
.section .data
.global _num_app
_num_app:
.quad {}
"#, apps.len())?;
for i in 0..apps.len() {
writeln!(f, r#"
.quad app_{}_start
"#, i)?;
}
writeln!(f, r#"
.quad app_{}_end
"#, apps.len() - 1)?;
for (idx, app_with_extension) in apps.iter().enumerate() {
writeln!(f, r#"
.section .data
.global app_{0}_start
.global app_{0}_end
app_{0}_start:
.incbin "{2}{1}"
.incbin "{2}{1}.bin"
app_{0}_end:
"#, idx, app_with_extension, TARGET_PATH)?;
}