Skip to content
Prev Previous commit
Next Next commit
README.ES.md -> 01_wait_forever
  • Loading branch information
zanezhub committed Mar 29, 2022
commit ac93ef59ac65707556229cc5b65b883affe430dc
55 changes: 55 additions & 0 deletions 01_wait_forever/README.ES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Tutorial 01 - Esperar para siempre
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Tutorial 01 - Esperar para siempre
# Tutorial 01 - Esperar infinitamente

## tl;dr

* Se configura la estructura que tendrá el proyecto.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Se configura la estructura que tendrá el proyecto.
* Se configura la estructura que tiene el proyecto.

* Se ejecuta una pequeño código hecho en ensamblador que tiene como función detener todos los núcleos del procesador que están ejecutando el kernel.

## Compilar

* El archivo `Makefile` selecciona:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* El archivo `Makefile` selecciona:
* El archivo `Makefile` permite ejecutar:

* `doc`: Genera la documentación.

* `qemu`: Ejecutar el kernel en QEMU.

* `clippy`

* `clean`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `clippy`
* `clean`
* `clippy`: Analiza el código y sugiere mejoras.
* `clean`: Elimina todos los archivos generados durante la compilación, etc.

* `readelf`: Inspeccionar la salida de `ELF`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `readelf`: Inspeccionar la salida de `ELF`.
* `readelf`: Inspecciona el archivo `ELF` de salida.

* `objdump`: Inspecciona el ensamblador.

* `nm`: Inspecciona los símbolos.

## Código a revisar

* El script enlazador específico de `BSP` llamado `link.ld`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* El script enlazador específico de `BSP` llamado `link.ld`.
* El script para enlazado específico para la `BSP` llamado `link.ld`.

* Carga la dirección en `0x8_0000`.

* Solo la sección `.text`.

* `main.rs`: [Atributos internos](https://doc.rust-lang.org/reference/attributes.html) importantes:

* `#![no_std]`, `#![no_main]`.

* `boot.s`: La función de ensamblador `__start()` que inicia `wfe` (Wait For Event / Esperar Por Un Evento), detiene todos los núcleos del procesador que están ejecutando `_start()`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `boot.s`: La función de ensamblador `__start()` que inicia `wfe` (Wait For Event / Esperar Por Un Evento), detiene todos los núcleos del procesador que están ejecutando `_start()`.
* `boot.s`: La función de ensamblador `_start()` que inicia `wfe` (Wait For Event / Esperar Hasta Un Evento), detiene todos los núcleos del procesador que están ejecutando `_start()`.

* Tenemos que definir una función `#[panic_handler]` para que el compilador no nos cause problemas.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Tenemos que definir una función `#[panic_handler]` para que el compilador no nos cause problemas.
* Tenemos que definir una función que funcione como `#[panic_handler]` (manejador de pánico) para que el compilador no nos cause problemas.

* Hazla una `unimplemented!()` porque se eliminará ya que no está siendo usada.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Hazla una `unimplemented!()` porque se eliminará ya que no está siendo usada.
* Hazla `unimplemented!()` porque se eliminará ya que no está siendo usada.

## Pruébalo

Dentro de la carpeta del proyecto, ejecuta a QEMU y mira el núcleo del procesador hilado en `wfe`:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Dentro de la carpeta del proyecto, ejecuta a QEMU y mira el núcleo del procesador hilado en `wfe`:
Dentro de la carpeta del proyecto, ejecuta a QEMU y mira el núcleo del procesador ejecutando `wfe` en bucle:

```
$ make qemu
[...]
IN:
0x00080000: d503205f wfe
0x00080004: 17ffffff b #0x80000
```