| Crates.io | axplat-aarch64-rk3588j |
| lib.rs | axplat-aarch64-rk3588j |
| version | 0.1.0 |
| created_at | 2025-07-28 06:53:57.267114+00 |
| updated_at | 2025-07-28 06:53:57.267114+00 |
| description | Implementation of `axplat` hardware abstraction layer for Rockchip RK3588J SoC. |
| homepage | |
| repository | https://github.com/buhenxihuan/axplat_crates |
| max_upload_size | |
| id | 1770786 |
| size | 54,141 |
Implementation of axplat hardware abstraction layer for Rockchip RK3588J SoC.
cargo +nightly add axplat axplat-aarch64-rk3588j
#[axplat::main]
fn kernel_main(cpu_id: usize, arg: usize) -> ! {
// Initialize trap, console, time.
axplat::init::init_early(cpu_id, arg);
// Initialize platform peripherals (not used in this example).
axplat::init::init_later(cpu_id, arg);
// Write your kernel code here.
axplat::console_println!("Hello, ArceOS!");
// Power off the system.
axplat::power::system_off();
}
// Can be located at any dependency crate.
extern crate axplat_aarch64_rk3588j;
ENTRY(_start)
SECTIONS
{
. = 0xffff000081000000;
.text : ALIGN(4K) {
*(.text.boot) /* This section is required */
*(.text .text.*)
}
.rodata : ALIGN(4K) {
*(.rodata .rodata.*)
}
.data : ALIGN(4K) {
*(.data .data.*)
}
.bss : ALIGN(4K) {
*(.bss.stack) /* This section is required */
. = ALIGN(4K);
*(.bss .bss.*)
*(COMMON)
}
_ekernel = .; /* Symbol `_ekernel` is required */
/DISCARD/ : {
*(.comment)
}
}
Some symbols and sections are required to be defined in the linker script, listed as below:
_ekernel: End of kernel image..text.boot: Kernel boot code..bss.stack: Stack for kernel booting.hello-kernel is a complete example of a minimal kernel implemented using axplat and related platform packages.