Skip to content

Commit 558b6e6

Browse files
authored
Update embox_quick_start_en.md
1 parent c42ba6f commit 558b6e6

File tree

1 file changed

+54
-34
lines changed

1 file changed

+54
-34
lines changed

en/embox_quick_start_en.md

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Clone git repository:
66
```
77
$ git clone https://github.com/embox/embox
88
```
9-
Or download as an archive [https://github.com/embox/embox/releases](https://github.com/embox/embox/releases).
9+
Or download as an archivefrom: [https://github.com/embox/embox/releases](https://github.com/embox/embox/releases)
1010

1111
## Work on Windows or MacOS
1212
### Please follow the next recommendations:
@@ -17,10 +17,9 @@ Download an actual version of PowerShell:
1717
Open PowerShell as an administrator and install WSL2 (please pay your attention to the demands on Windows version):
1818

1919
[How to install WSL2](https://learn.microsoft.com/en-us/windows/wsl/install-manual)
20-
```
21-
Before the next step upgrade WSL1 to WSL2 if you did'nt do this(the instruction is in a link above).
22-
In other way Embox won't run on Windows.
23-
```
20+
21+
**NOTE:** Before the next step upgrade WSL1 to WSL2 if you did'nt do this(the instruction is in a link above). In other way Embox won't run on Windows.
22+
2423

2524
### Download Ubuntu from Microsoft Store
2625
Check yout version of WSL the next way: insert the command below in PowerShell:
@@ -38,17 +37,17 @@ Run the commands below in command line of Ubuntu for installing necessary progra
3837
sudo apt-get install python3
3938
sudo apt-get install python-is-python3
4039
```
41-
Clone version of embox to yourself(use https or ssh):
40+
Clone version of embox to yourself (use https or ssh):
4241
```
4342
git clone <https://github.com/embox/embox.git>
4443
git clone <[email protected]:embox/embox.git>
4544
```
4645

47-
Open the directory of the embox project
46+
Open the directory of the embox project:
4847
```
4948
cd embox
5049
```
51-
Run the next three commands
50+
Run the next three commands:
5251
```
5352
make confload-x86/qemu
5453
make
@@ -61,8 +60,8 @@ If it's correct -- you can use the recommendations from the article(the link is
6160

6261

6362
## Enviroment Settings
64-
Minimal required packages: *make*, *gcc*, (cross-compiler for target platform. see "Cross-compiler installation").
65-
Optional packages, which are recomended to install at once: *build-essential*, *gcc-multilib*, *curl*, *libmpc-dev*, *python*.
63+
Minimal required packages: **make**, **gcc**, (cross-compiler for target platform. see "Cross-compiler installation").
64+
Optional packages, which are recomended to install at once: **build-essential**, **gcc-multilib**, **curl**, **libmpc-dev**, **python**.
6665

6766
For Debian/Ubuntu:
6867
```
@@ -87,7 +86,7 @@ Please note, it's required to install another packages if you already set up the
8786
```
8887
$ sudo apt install arm-none-eabi-gcc
8988
```
90-
or for Debian:
89+
***or for Debian***:
9190
```
9291
$ sudo apt install gcc-arm-none-eabi
9392
```
@@ -115,7 +114,7 @@ As the result ***ARCH-elf-toolchain.tar.bz2*** archive will be created. Than you
115114
## QEMU installation
116115
Supported CPU architectures: x86, ARM, MIPS, Sparc, PPC, Microblaze.
117116

118-
QEMU can be installed in the following way:
117+
***QEMU*** can be installed in the following way:
119118
```
120119
$ sudo apt-get install qemu-system-<ARCH>
121120
```
@@ -132,23 +131,24 @@ Set up default configuration for the desired platform:
132131
$ make confload-<ARCH>/qemu
133132
```
134133
where <ARCH>: x86, arm, mips, ppc, sparc, microblaze.
135-
Example for x86:
134+
135+
***Example for x86:***
136136
```
137137
make confload-x86/qemu
138138
```
139-
Build Embox:
139+
***Build Embox:***
140140
```
141141
$ make
142142
```
143-
or for parallel building with N parallel jobs:
143+
or for parallel building with **N** parallel jobs:
144144
```
145145
$ make -jN
146146
```
147147
Example of how to build with 4 parallel jobs:
148148
```
149149
$ make -j4
150150
```
151-
Now you are able to run Embox:
151+
***Now you are able to run Embox:***
152152
```
153153
$ ./scripts/qemu/auto_qemu
154154
```
@@ -161,37 +161,53 @@ Console output example:
161161
If all unit tests passed successfully and all modules loaded, then command prompt will appear.
162162
Now you can execute commands included in the configuration (`mods.conf`). You can start with ***help*** command which prints list of available commands.
163163

164-
Press ***ctrl+’A’*** and then `***x***` to exit from Qemu.
164+
Press ***ctrl+’A’*** and then `***x***` to exit from QEMU.
165165

166166
## Preliminaries to Mybuild build system
167-
Embox is modular and configurable. Declarative program language "Mybuild" has been developed for these features.
167+
***Embox*** is modular and configurable. Declarative program language ***Mybuild*** has been developed for these features.
168168
Mybuild allows to describe both single modules and whole target system.
169169

170-
A module is a base concept for build system. A module description contains: source files list, options which can be set for the module during configuration, and dependences list.
170+
***A module*** is a base concept for build system.
171+
**A module description** contains:
172+
* source files list
173+
* options, which can be set for the module during configuration
174+
* dependences list
171175

172-
The configuration is a particular description of the whole system. It contains list of required modules, modules options and build rules (cross-compiler, additional compiler flags, memory map etc.).
176+
***The configuration*** is a particular description of the whole system.
177+
It contains:
178+
* list of required modules
179+
* modules options
180+
* build rules (e. g. cross-compiler, additional compiler flags, memory map etc.)
173181

174182
Graph of the system will be based on the configuration and modules descriptions.
175-
Build system, that generates different build artifacts: linker scripts, makefiles, headers.
176-
It's not necesary to include all modules, they will be enabled using dependencies for each module included in the initial configuration list.
183+
184+
Build system, that generates different build artifacts: `linker scripts`, `makefiles`, `headers`.
185+
186+
It's not necesary to include all modules, they will be enabled, using dependencies.
177187

178188
Current configuration locates in ***conf/*** folder. It can be set up with:
179189
```
180190
$ make confload-<CONF_NAME>
181191
```
182-
For example, to set up demo configuration for qemu-arm you should do the following:
192+
For example, to set up demo configuration for ***qemu-system-arm*** you should do the following:
183193
```
184194
$ make confload-arm/qemu
185195
```
186-
Use:
196+
To get the list of all possible configurations, use:
187197
```
188198
$ make confload
189199
```
190-
to get the list of all possible configurations.
191200

192-
After you set up some configuration you can tune configuration due to your requirements.
193-
You can add ***include \<PACKAGE_NAME\>\<MODULE_NAME\>*** to your ***conf/mods.conf*** file to enable additional application.
194-
For example, add ***include embox.cmd.help*** to enable ***`help`*** command.
201+
After you set up some configuration you can customize it to your requirements.
202+
203+
To enable additional application, you can insert to your ***conf/mods.conf*** file the line below:
204+
```
205+
include \<PACKAGE_NAME\>\<MODULE_NAME\>
206+
```
207+
For example, to enable ***`help`*** command type the following:
208+
```
209+
include embox.cmd.help
210+
```
195211

196212
## "Hello world" application
197213
Embox application is an usual Embox module with special attributes. These attributes declare your module as an executable application.
@@ -234,7 +250,8 @@ To add your own simplest application "Hello world" you can do the following:
234250
```
235251
$ ./scripts/qemu/auto_qemu
236252
```
237-
* Type ***help*** in Embox console to check if there is ***hello_world*** in commands list. Execute ***hello_world*** command and you will see:
253+
* Type ***help*** in Embox console to check if there is ***hello_world*** in commands list.
254+
Execute ***hello_world*** command and you will see:
238255
```
239256
root@embox:/#hello_world
240257
Hello, world!
@@ -253,14 +270,16 @@ Let's look at the Mybuild file from "Hello world" example in more details:
253270
}
254271
```
255272
The first line contains package name ***embox.cmd***. In Embox all modules are organized into packages.
256-
Full module name consist of the corresponding package name appended with module name. Module name is defined in string ***module hello_world***.
273+
Full module name consists of the corresponding package name appended with module name.
274+
Module name is defined in string ***module hello_world***.
257275

258276
## Debugging
259-
You can use the same script with *-s -S -no-kvm* flags for debugging:
277+
You can use the same script with `-s`, `-S`, `-no-kvm` flags for debugging:
260278
```
261279
$ sudo ./scripts/qemu/auto_qemu -s -S -no-kvm
262280
```
263-
After running that QEMU waits for a connection from a gdb-client. Run gdb in the other terminal:
281+
After running that QEMU waits for a connection from a gdb-client.
282+
Run gdb in the other terminal:
264283
```
265284
$ gdb ./build/base/bin/embox
266285
...
@@ -269,10 +288,11 @@ After running that QEMU waits for a connection from a gdb-client. Run gdb in the
269288
```
270289
The system starts to load.
271290

272-
At any moment in gdb terminal you can type <kbd>ctrl + C</kbd> and see the stack of the current thread (`backtrace`) or set breakpoints (`break <function name>`, `break <file name>:<line number>`).
291+
At any moment in gdb terminal you can type `ctrl + C` and see the stack of the current thread (`backtrace`) or set breakpoints (`break <function name>`, `break <file name>:<line number>`).
273292

274293
## Connection of external repository
275-
Embox allows to connect external repo to modules and templates. It's enough to specify root directory of repository for this purpose:
294+
Embox allows to connect external repo to modules and templates.
295+
It's enough to specify root directory of repository for this purpose:
276296
```
277297
make ext_conf EXT_PROJECT_PATH=<your projects path>
278298
```

0 commit comments

Comments
 (0)