README.md 6.6 KB
Newer Older
M
mamingshuai 已提交
1 2 3 4 5 6
# LiteOS Cortex-A<a name="EN-US_TOPIC_0000001096612501"></a>

-   [Introduction](#section11660541593)
-   [Directory Structure](#section161941989596)
-   [Constraints](#section119744591305)
-   [Usage](#section741617511812)
Z
zhushengle 已提交
7 8 9 10
-   [Preparations](#section1579912573329)
-   [Source Code Acquisition](#section11443189655)
-   [Compilation and Building](#section2081013992812)
-   [Contribution](#section1371123476304)
M
mamingshuai 已提交
11 12 13 14
-   [Repositories Involved](#section1371113476307)

## Introduction<a name="section11660541593"></a>

L
l00517597 已提交
15
The 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.
M
mamingshuai 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29

**Figure  1**  Architecture of the OpenHarmony LiteOS Cortex-A kernel<a name="fig27311582210"></a>  
![](figures/architecture-of-the-openharmony-liteos-cortex-a-kernel.png "architecture-of-the-openharmony-liteos-cortex-a-kernel")

## Directory Structure<a name="section161941989596"></a>

```
/kernel/liteos_a
├── apps                   # User-space init and shell application programs
├── arch                   # System architecture, such as ARM
│   └── arm                # Code for ARM architecture
├── bsd                    # Code of the driver and adaptation layer module related to the FreeBSD, such as the USB module
├── compat                 # Kernel API compatibility
│   └── posix              # POSIX APIs
L
l00517597 已提交
30
├── drivers                # Kernel drivers
M
mamingshuai 已提交
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
│   └── char               # Character device
│       ├── mem            # Driver for accessing physical input/output (I/O) devices
│       ├── quickstart     # APIs for quick start of the system
│       ├── random         # Driver for random number generators
│       └── video          # Framework of the framebuffer driver
├── fs                     # File system module, which mainly derives from the NuttX open-source project
│   ├── fat                # FAT file system
│   ├── jffs2              # JFFS2 file system
│   ├── include            # Header files exposed externally
│   ├── nfs                # NFS file system
│   ├── proc               # proc file system
│   ├── ramfs              # RAMFS file system
│   └── vfs                # VFS layer
├── kernel                 # Kernel modules including the process, memory, and IPC modules
│   ├── base               # Basic kernel modules including the scheduling and memory modules
│   ├── common             # Common components used by the kernel
│   ├── extended           # Extended kernel modules including the dynamic loading, vDSO, and LiteIPC modules
│   ├── include            # Header files exposed externally
│   └── user               # Init process loading
├── lib                    # Kernel library
├── net                    # Network module, which mainly derives from the lwIP open-source project
├── platform               # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300
L
l00517597 已提交
53
│   ├── hw                 # Logic code related to clocks and interrupts
M
mamingshuai 已提交
54 55 56 57 58 59 60 61 62 63 64
│   ├── include            # Header files exposed externally
│   └── uart               # Logic code related to the serial port
├── platform               # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300
├── security               # Code related to security features, including process permission management and virtual ID mapping management
├── syscall                # System calling
└── tools                  # Building tools as well as related configuration and code
```

## Constraints<a name="section119744591305"></a>

-   Programming languages: C and C++
X
x_xiny 已提交
65 66
-   Applicable development boards: Hi3516D V300
-   Hi3516D V300 uses the FAT file system by default.
M
mamingshuai 已提交
67 68 69

## Usage<a name="section741617511812"></a>

Z
zhushengle 已提交
70
OpenHarmony LiteOS Cortex-A supports the  [Hi3516D V300](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-appendix-hi3516.md). You can develop and run your applications based on this development board.
M
mamingshuai 已提交
71 72 73

### Preparations<a name="section1579912573329"></a>

Z
zhushengle 已提交
74
You need to set up the compilation environment on Ubuntu.
M
mamingshuai 已提交
75

Z
zhushengle 已提交
76
-   [Setting Up Ubuntu Development Environment](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/Readme-EN.md)
M
mamingshuai 已提交
77 78 79

### Source Code Acquisition<a name="section11443189655"></a>

Z
zhushengle 已提交
80
Download and decompress a set of source code on a Ubuntu server to acquire the  [source code](https://gitee.com/openharmony/docs/blob/master/en/device-dev/get-code/sourcecode-acquire.md).
M
mamingshuai 已提交
81 82 83

### Compilation and Building<a name="section2081013992812"></a>

Z
zhushengle 已提交
84
For details about how to develop the first application, see: [Developing the First Example Program Running on Hi3516](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-pkg-3516-helloworld.md)
M
mamingshuai 已提交
85

Z
zhushengle 已提交
86
For compilation, please refer to the [compilation instructions](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-pkg-3516-build.md).
M
mamingshuai 已提交
87

88 89
## Contribution<a name="section1371123476304"></a>

Y
yinjiaming 已提交
90
[How to involve](https://gitee.com/openharmony/docs/blob/HEAD/en/contribute/contribution-guide.md)
91

Z
zhushengle 已提交
92 93 94 95 96
[Commit message spec](https://gitee.com/openharmony/kernel_liteos_a/wikis/Commit%20message%20%E8%A7%84%E8%8C%83)

[C&C++ Secure Coding Guide](https://gitee.com/openharmony/docs/blob/master/en/contribute/OpenHarmony-c-cpp-secure-coding-guide.md)

[LiteOS-A Kernel Coding Style Guide](https://gitee.com/openharmony/kernel_liteos_a/wikis/LiteOS-A%20%E5%86%85%E6%A0%B8%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83%E6%8C%87%E5%8D%97)
97

M
mamingshuai 已提交
98 99
## Repositories Involved<a name="section1371113476307"></a>

L
l00517597 已提交
100
[Kernel subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/kernel.md)
M
mamingshuai 已提交
101

L
l00517597 已提交
102 103
[drivers\_liteos](https://gitee.com/openharmony/drivers_liteos/blob/master/README.md)

Y
yinjiaming 已提交
104
[kernel\_liteos\_a](https://gitee.com/openharmony/kernel_liteos_a/blob/master/README.md)
M
mamingshuai 已提交
105