6414dd13b0921b577993721e352f0c9cd59aa43a
Currently, the compilation rules are mostly duplicated for normal vs float vs ARM source files. This fix deduplicates the compilation logic for these different "mode" of source files by using make's Target-specific variable functionality. https://www.gnu.org/software/make/manual/make.html#Target_002dspecific This change was tested by using [`bear`](https://github.com/rizsotto/Bear) to generate a compile_commands.json file. The file was generated both before and after the change and the json diff'd to ensure the generated compile commands were not changed. Change-Id: Id472045cc2e65bf542dfbf0ff52089be224c9d13
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.
See https://github.com/littlekernel/lk for the latest version.
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
- RISC-V 32 and 64bit bit in machine and supervisor mode
- x86-32 and x86-64 386 up through modern cores
- microblaze
- MIPS
- OpenRISC 1000
TODO
To build and test for ARM on linux
- install or build qemu. v2.4 and above is recommended.
- install gcc for embedded arm (see note 1)
- run scripts/do-qemuarm (from the lk directory)
- you should see 'welcome to lk/MP'
This will get you a interactive prompt into LK which is running in qemu arm machine 'virt' emulation. type 'help' for commands.
Note: for ubuntu x86-64: sudo apt-get install gcc-arm-none-eabi or fetch a prebuilt toolchain from https://newos.org/toolchains/x86_64-elf-10.2.0-Linux-x86_64.tar.xz
Languages
C
80.6%
C++
10.8%
Assembly
3.6%
Makefile
3.4%
Python
1%
Other
0.6%