• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# LiteOS Cortex-A<a name="EN-US_TOPIC_0000001096612501"></a>
2
3-   [Introduction](#section11660541593)
4-   [Directory Structure](#section161941989596)
5-   [Constraints](#section119744591305)
6-   [Usage](#section741617511812)
7    -   [Preparations](#section1579912573329)
8    -   [Source Code Acquisition](#section11443189655)
9    -   [Compilation and Building](#section2081013992812)
10
11-   [Repositories Involved](#section1371113476307)
12
13## Introduction<a name="section11660541593"></a>
14
15The OpenHarmony LiteOS Cortex-A is a new-generation kernel developed based on the Huawei LiteOS kernel. Huawei LiteOS is a lightweight operating system \(OS\) built for the Internet of Things \(IoT\) field. With the rapid development of the IoT industry, OpenHarmony LiteOS Cortex-A brings small-sized, low-power, and high-performance experience and builds a unified and open ecosystem for developers. In addition, it provides rich kernel mechanisms, more comprehensive Portable Operating System Interface \(POSIX\), and a unified driver framework, Hardware Driver Foundation \(HDF\), which offers unified access for device developers and friendly development experience for application developers.  [Figure 1](#fig27311582210)  shows the architecture of the OpenHarmony LiteOS Cortex-A kernel.
16
17**Figure  1**  Architecture of the OpenHarmony LiteOS Cortex-A kernel<a name="fig27311582210"></a>
18![](figures/architecture-of-the-openharmony-liteos-cortex-a-kernel.png "architecture-of-the-openharmony-liteos-cortex-a-kernel")
19
20## Directory Structure<a name="section161941989596"></a>
21
22```
23/kernel/liteos_a
24├── apps                   # User-space init and shell application programs
25├── arch                   # System architecture, such as ARM
26│   └── arm                # Code for ARM architecture
27├── bsd                    # Code of the driver and adaptation layer module related to the FreeBSD, such as the USB module
28├── compat                 # Kernel API compatibility
29│   └── posix              # POSIX APIs
30├── drivers                # Kernel drivers
31│   └── char               # Character device
32│       ├── mem            # Driver for accessing physical input/output (I/O) devices
33│       ├── quickstart     # APIs for quick start of the system
34│       ├── random         # Driver for random number generators
35│       └── video          # Framework of the framebuffer driver
36├── fs                     # File system module, which mainly derives from the NuttX open-source project
37│   ├── fat                # FAT file system
38│   ├── jffs2              # JFFS2 file system
39│   ├── include            # Header files exposed externally
40│   ├── nfs                # NFS file system
41│   ├── proc               # proc file system
42│   ├── ramfs              # RAMFS file system
43│   └── vfs                # VFS layer
44├── kernel                 # Kernel modules including the process, memory, and IPC modules
45│   ├── base               # Basic kernel modules including the scheduling and memory modules
46│   ├── common             # Common components used by the kernel
47│   ├── extended           # Extended kernel modules including the dynamic loading, vDSO, and LiteIPC modules
48│   ├── include            # Header files exposed externally
49│   └── user               # Init process loading
50├── lib                    # Kernel library
51├── net                    # Network module, which mainly derives from the lwIP open-source project
52├── platform               # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300
53│   ├── hw                 # Logic code related to clocks and interrupts
54│   ├── include            # Header files exposed externally
55│   └── uart               # Logic code related to the serial port
56├── platform               # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300
57├── security               # Code related to security features, including process permission management and virtual ID mapping management
58├── syscall                # System calling
59└── tools                  # Building tools as well as related configuration and code
60```
61
62## Constraints<a name="section119744591305"></a>
63
64-   Programming languages: C and C++
65-   Applicable development boards: Hi3516D V300
66-   Hi3516D V300 uses the FAT file system by default.
67
68## Usage<a name="section741617511812"></a>
69
70OpenHarmony LiteOS Cortex-A supports the  [Hi3516D V300](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-introduction-hi3516.md). You can develop and run your applications based on this development board.
71
72### Preparations<a name="section1579912573329"></a>
73
74You need to set up the compilation environment on Linux.
75
76-   [Setting Up Ubuntu Development Environment](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-env-setup.md)
77-   For Hi3516D V300, see  [Setting Up the Hi3516 Development Environment](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-steps-hi3516-setting.md).
78
79### Source Code Acquisition<a name="section11443189655"></a>
80
81Download and decompress a set of source code on a Linux server to acquire the  [source code](https://gitee.com/openharmony/docs/blob/master/en/device-dev/get-code/sourcecode-acquire.md).
82
83### Compilation and Building<a name="section2081013992812"></a>
84
85For details about how to develop the first application, see:
86
87-   [Developing the First Example Program Running on Hi3516](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md)
88
89## Repositories Involved<a name="section1371113476307"></a>
90
91[Kernel subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/kernel.md)
92
93[drivers\_liteos](https://gitee.com/openharmony/drivers_liteos/blob/master/README.md)
94
95[kernel\_liteos\_a](https://gitee.com/openharmony/kernel_liteos_a/blob/master/README.md)
96
97