mirror of
https://github.com/saymrwulf/xous-core.git
synced 2026-11-12 07:44:18 +00:00
`app-loader' can now successfully download apps from the app server and run them! I have also improved the UI by adding a progressbar when an app is loading so that you know when it is done and also replacing some panics with notifications that way the whole machine doesn't shut down if the server has some problems. The remaining UI work is to make sure that the menu pops back up when you for example set the server. I also need to add locales, a README, etc. |
||
|---|---|---|
| .. | ||
| src | ||
| build.rs | ||
| Cargo.toml | ||
| link.x | ||
| README.md | ||
Spawn a process
This crate represents an initial program that will run when a process starts up. It will listen on a Server and take orders from the parent process to finish setting itself up.
Initialization
The process starts with a stack and a text section but no heap, BSS, or data section. The entrypoint looks like this:
pub extern "C" init(a1: u32, a2: u32, a3: u32, a4: u32) -> ! {
let sid = xous::SID::from_u32(a1, a2, a3, a4);
loop {}
}
This process is responsible for performing its own bootstrapping (i.e. allocating/initializing .data and .bss), after which it should accept messages on the connection and copy data as necessary.
API
The following messages are supported:
| Mnemonic | Opcode | Type | Description |
|---|---|---|---|
| WriteMemory | 1 | M | Write memory into an area of memory. The Offset field is used to determine where the block will start. |
| WriteArgs | 2 | M | Reserved |
| WriteEnvironment | 3 | M | Reserved |
| FinishSetup | 255 | * | Terminate the loop, shutdown the server, and start the program. |