145e9a0d274e19bac88646873945c801e068cc96
Using wild match init_array* to include global array init ctor Before: 10 .ctors 00000040 ffff0000001e6b80 00000000401e6b80 DATA 11 .dtors 00000000 ffff0000001e6bc0 00000000401e6bc0 DATA 12 .got 00000060 ffff0000001e6bc0 00000000401e6bc0 DATA 13 .init_array.1 00000470 ffff0000001e6c20 00000000401e6c20 14 .fini_array.1 00000470 ffff0000001e7090 00000000401e7090 15 .dummy_post_data 00000000 ffff0000001e7500 00000000401e7500 DATA 16 .bss 00009460 ffff0000001e8000 00000000401e8000 BSS After: 10 .ctors 000004b0 ffff0000001e6b80 00000000401e6b80 DATA 11 .dtors 00000470 ffff0000001e7030 00000000401e7030 12 .got 00000060 ffff0000001e74a0 00000000401e74a0 DATA 13 .dummy_post_data 00000000 ffff0000001e7500 00000000401e7500 DATA 14 .bss 00009460 ffff0000001e8000 00000000401e8000 BSS Signed-off-by: Lei Wen <leiwen@asrmicro.com>
The Little Kernel Embedded Operating System
The LK kernel is an SMP-aware kernel designed for small systems ported to a variety of platforms and cpu architectures.
It is used in a variety of open source and closed source projects, notably the bootloader for a lot of Android phones of various make.
See https://github.com/littlekernel/lk for the latest version.
For comprehensive documentation, see Index.
High Level Features
- Fully-reentrant multi-threaded preemptive kernel
- Portable to many 32 and 64 bit architectures
- Support for wide variety of embedded and larger platforms
- Powerful modular build system
- Large number of utility components selectable at build time
Supported architectures
- ARM32
- Cortex-M class cores (armv6m - armv8m)
- ARMv7+ Cortex-A class cores
- ARM64
- ARMv8 and ARMv9 cores
- RISC-V 32 and 64bit bit in machine and supervisor mode
- x86-32 and x86-64
- Motorola 68000
- Microblaze
- MIPS
- OpenRISC 1000
- VAX (experimental)
Languages
C
80.6%
C++
10.8%
Assembly
3.6%
Makefile
3.4%
Python
1%
Other
0.6%