You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 00_before_we_start/README.ES.md
+16-12Lines changed: 16 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -5,12 +5,11 @@ puede ser encontrada al principio del archivo del código fuente
5
5
del núcleo (kernel) en cada tutorial. Esta describe la estructura
6
6
general del código fuente, e intenta transmitir la filosofía detrás
7
7
de cada respectivo acercamiento. Por favor leélo para familiarizarte
8
-
con lo que te vas a encontrar durante los tutoriales. Te ayudará a navegar el código de una mejor manera y entender la diferencias y
9
-
las adiciones entre los diferentes tutoriales.
8
+
con lo que te vas a encontrar durante los tutoriales. Te ayudará a navegar el código de una mejor manera y entender las diferencias y adiciones entre los diferentes tutoriales.
10
9
11
10
Por favor también nota que el siguiente texto va a referenciar
12
11
los archivos del código fuente (e.j. `**/memory.rs`) o funciones que
13
-
no van a existir aún en los primeros tutoriales. Serán agregadas
12
+
no van a existir aún en los primeros tutoriales. Estos archivos serán agregados
14
13
a medida que el tutorial avance.
15
14
16
15
¡Diviértanse!
@@ -39,7 +38,7 @@ mod arch_mmu;
39
38
```
40
39
41
40
En muchas ocasiones, los elementos de `arch_module` serán reexportados públicamente por el módulo principal.
42
-
De esta manera, cada módulo específico de la arquitectura puede proporcionar su implementación de un elemento, mientras que el caller no debe de preocuparse por la arquitectura que se ha compilado condicionalmente.
41
+
De esta manera, cada módulo específico de la arquitectura puede proporcionar su implementación de un elemento, mientras que el *caller* no debe de preocuparse por la arquitectura que se ha compilado condicionalmente.
43
42
44
43
## Código BSP
45
44
@@ -51,7 +50,7 @@ Justo como el código de la arquitectura del procesador, la estructura del módu
51
50
52
51
## La interfaz del núcleo (kernel)
53
52
54
-
`arch` y `bsp` contienen código que se compilará condicionalmente dependiendo del blanco y placa actual para la que el núcleo (kernel) es compilado.
53
+
El `arch` y el `bsp` contienen código que se compilará condicionalmente dependiendo del objetivo y placa actual para la que el núcleo (kernel) es compilado.
55
54
Por ejemplo, el hardware de `interrupt controller` de la `Raspberry Pi 3`
56
55
y la `Raspberry Pi 4` es diferente, pero nosotros queremos que el resto del código del kernel funcione correctamente con cualquiera de los dos sin mucha complicación.
57
56
@@ -78,16 +77,21 @@ Por ejemplo, habrá una *IRQ handling interface* común, el cual los dos diferen
78
77
Para un subsistema lógico del `núcleo (kernel)`, el código correspondiente puede ser distribuido sobre diferentes localizaciones físicas. Aquí un ejemplo para el subsistema de memoria:
79
78
80
79
-`src/memory.rs` y `src/memory/**/*`
80
+
81
81
- Código común que es independiente de la arquitectura del procesador de destino y las características de `BSP`.
82
82
- Ejemplo: Una función a un pedazo cero de memoria.
83
-
-Interfaces para el subsistema de la memoria que son implementados por código `arch` o `BSP`.
83
+
-Las interfaces para el subsistema de la memoria que son implementados por código `arch` o `BSP`.
84
84
- Ejemplo: Una interface `MMU` que define prototipos de función `MMU`.
85
-
-`src/bsp/__board_name__/memory.rs` y `src/bsp/__board_name__/memory/**/*`
86
-
- Código específico de `BSP`.
87
-
- Ejemplo: El mapa de memoria de la placa (direcciones físicas de DRAM y dispositivos MMIO).
88
-
-`src/_arch/__arch_name__/memory.rs` y `src/_arch/__arch_name__/memory/**/*`
89
-
- El código específico de la arquitectura del procesador.
90
-
- Ejemplo: Implementación de la interfaz `MMU` para la arquitectura `__arch_name__`.
85
+
86
+
-`src/bsp/__board_name__/memory.rs` y `src/bsp/__board_name__/memory/**/*`
87
+
88
+
- Código específico de `BSP`.
89
+
- Ejemplo: El mapa de memoria de la placa (direcciones físicas de DRAM y dispositivos MMIO).
90
+
91
+
-`src/_arch/__arch_name__/memory.rs` y `src/_arch/__arch_name__/memory/**/*`
92
+
93
+
- El código específico de la arquitectura del procesador.
94
+
- Ejemplo: Implementación de la interfaz `MMU` para la arquitectura `__arch_name__`.
91
95
92
96
Desde una perspectiva de *namespace*, el código del subsistema de **memoria** vive en:
Copy file name to clipboardExpand all lines: README.ES.md
+31-29Lines changed: 31 additions & 29 deletions
Original file line number
Diff line number
Diff line change
@@ -32,9 +32,9 @@ P.S.: Para otros lenguajes, por favor busquen los diferentes archivos README. Po
32
32
- Cada tutorial contiene un solo binario arrancable correspondiente al núcleo.
33
33
- Cada tutorial nuevo extiende el tutorial anterior.
34
34
- Cada tutorial tendrá un `README` y cada `README` tendrá un pequeña sección de [`tl;dr`](https://es.wikipedia.org/wiki/TL;DR) en donde se dará una pequeña perspectiva general de los cambios y se mostrará el código fuente `diff` del tutorial anterior para que se puedan inspeccionar los cambios/adiciones que han ocurrido.
35
-
- Algunos tutoriales además de tener un `tl;dr` también tendrán una sección en la que se dará una explicación con todo lujo de detalle.
36
-
El plan a largo plazo es que cada tutorial tenga una buena explicación además del `tl;dr` y el `diff`; pero por el momento los únicos tutoriales
37
-
que gozan de una son los tutoriales en los que creo que el `tl;dr` y el `diff` no son suficientes para comprender lo que está pasando.
35
+
- Algunos tutoriales además de tener un `tl;dr` también tendrán una sección en la que se dará una explicación con todo lujo de detalle.
36
+
El plan a largo plazo es que cada tutorial tenga una buena explicación además del `tl;dr` y el `diff`; pero por el momento los únicos tutoriales
37
+
que gozan de una son los tutoriales en los que creo que el `tl;dr` y el `diff` no son suficientes para comprender lo que está pasando.
38
38
- El código que se escribió en este tutorial soporta y corre en la **Raspberry Pi 3** y en la **Raspberry 4**
39
39
- Del tutorial 1 hasta el 5 son tutoriales "preparatorios", por lo que este código solo tendrá sentido ejecutarlo en [`QEMU`](https://www.qemu.org/).
40
40
- Cuando llegues al [tutorial 5](05_drivers_gpio_uart) podrás comenzar a cargar y a ejecutar el núcleo en una
@@ -61,28 +61,33 @@ Muchas de las cosas vistas aquí también funcionan en **macOS**, pero esto solo
61
61
### 🚀 La versión tl;dr
62
62
63
63
1.[Instala Docker Desktop][install_docker].
64
+
64
65
2. (**Solo para Linux**) Asegúrate de que la cuenta de tu usuario está en el [grupo `docker`][docker group].
66
+
65
67
3. Prepara la `Rust` toolchain. La mayor parte se hará automáticamente durante el primer uso del archivo [rust-toolchain](rust-toolchain).
66
68
Todo lo que nos queda hacer a nosotros es:
67
-
69
+
68
70
i. Si ya tienes una versión de Rust instalada:
69
-
```bash
70
-
cargo install cargo-binutils rustfilt
71
-
```
72
-
71
+
72
+
```bash
73
+
cargo install cargo-binutils rustfilt
74
+
```
75
+
73
76
ii. Si necesitas instalar Rust desde cero:
74
-
```bash
75
-
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
76
-
77
-
source$HOME/.cargo/env
78
-
cargo install cargo-binutils rustfilt
79
-
```
77
+
78
+
```bash
79
+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
80
+
81
+
source$HOME/.cargo/env
82
+
cargo install cargo-binutils rustfilt
83
+
```
80
84
81
85
4. En caso de que uses `Visual Studio Code`, recomiendo que instales la extensión [Rust Analyzer extension].
82
-
5. (**Solo para macOS**) Instala algunas `Ruby` gems.
83
86
87
+
5. (**Solo para macOS**) Instala algunas `Ruby` gems.
88
+
84
89
Ejecuta esto en la carpeta root del repositorio:
85
-
90
+
86
91
```bash
87
92
bundle install --path .vendor/bundle --without development
88
93
```
@@ -92,7 +97,7 @@ Muchas de las cosas vistas aquí también funcionan en **macOS**, pero esto solo
92
97
93
98
### 🧰 Más detalles: Eliminando Lios con Toolchains
94
99
95
-
Esta serie trata de enfocarse lo máximo posible en tener una experiencia agradable para el usario.
100
+
Esta serie trata de enfocarse lo máximo posible en tener una experiencia agradable para el usuario.
96
101
Por lo tanto, se han dirigido muchos esfuerzos a eliminar la parte más difícil del desarrollo de
97
102
los sistemas incorporados (embedded) tanto como se pudo.
98
103
@@ -102,7 +107,7 @@ con arquitectura `AArch64` será automáticamente instalado por `rustup`. Sin em
102
107
el compilador de Rust, también usaremos algunas otras herramientas, entre las cuales están:
103
108
104
109
-`QEMU` para emular nuestro núcleo en nuestra máquina principal.
105
-
- Una herramienta llamada `Minipush` para cargar el núcleo en una Raspberry Pi cuando queramos usando `UART`.
110
+
- Una herramienta llamada `Minipush` para cargar el núcleo en una Raspberry Pi cuando queramos usando `UART`.
106
111
-`OpenOCD` y `GDB` para hacer depuración ("debugging") en la máquina a instalar.
107
112
108
113
Hay muchas cosas que pueden salir mal mientras instalamos y/o compilamos las versiones correctas de cada
@@ -143,12 +148,12 @@ de [Zoltan Baldaszti](https://github.com/bztsrc). ¡Gracias por darme un punto d
143
148
144
149
### Traducciones de este repositorio
145
150
146
-
- **Chino:**
147
-
- [@colachg] y [@readlnh].
148
-
- Necesitan actualizaciones.
149
-
- **Español:**
150
-
- [@zanezhub].
151
-
- En el futuro habrán tutoriales traducidos al español.
151
+
-**Chino:**
152
+
-[@colachg] y [@readlnh].
153
+
- Necesitan actualizaciones.
154
+
-**Español:**
155
+
-[@zanezhub].
156
+
- En el futuro habrán tutoriales traducidos al español.
0 commit comments