diff --git a/03_hacky_hello_world/README.ES.md b/03_hacky_hello_world/README.ES.md index f43fbc68..f52b226e 100644 --- a/03_hacky_hello_world/README.ES.md +++ b/03_hacky_hello_world/README.ES.md @@ -2,16 +2,16 @@ ## tl;dr -* Introduciendo la macro global `print!()` para habilitar "printf debugging" lo más pronto posible. -* Para mantener una duración razonable en este tutorial, imprimir funciones por el momento "abusa" una propiedad de QEMU que nos permite hacer uso del `UART` de la Raspberry sin haberla configurado apropiadamente. -* Usar el hardware real de `UART` se habilitará paso por paso en los siguientes tutoriales. +* Se añade la macro global `print!()` para habilitar la "depuración basada en printf" ("printf debugging") lo más pronto posible. +* Para mantener una duración razonable en este tutorial, las funciones de impresión por el momento "abusan" una propiedad de QEMU que nos permite hacer uso del `UART` de la Raspberry sin haberla configurado apropiadamente. +* El uso del hardware real de `UART` se habilitará paso por paso en los siguientes tutoriales. ## Adiciones notables -* `src/console.rs` introduce la interfaz `Traits` para comandos de consola. +* `src/console.rs` introduce una interfaz con `Trait`s para comandos de consola. * `src/bsp/raspberrypi/console.rs` implementa la interfaz para que QEMU pueda crear una emulación de UART. -* El *panic handler* (manipulador de pánico) hace uso de la nueva macro `print!()` para mostrar mensajes de error del usuario. -* Hay un nuevo objetivo Makefile, `make test`, destinado a la automatización de pruebas. Este comando inicia el kernel (núcleo) compilado en `QEMU`, y busca una cadena específica que ha sido producida por el kernel (núcleo). +* El *panic handler* (manejador de pánico) hace uso de la nueva macro `print!()` para mostrar mensajes de error del usuario. +* Hay un nuevo objetivo en el Makefile: `make test`, destinado a la automatización de pruebas. Este comando inicia el kernel (núcleo) compilado en `QEMU`, y busca una cadena de texto específica en la salida que ha sido producida por el kernel (núcleo). * En este tutorial, se buscará la cadena `Stopping here`, que es creada por la macro `panic!()` al final del archivo `main.rs`. ## Pruébalo @@ -29,8 +29,11 @@ Kernel panic: Stopping here. ### Diccionario * *Hacky:* Solución torpe o poco elegante para un problema. + * *Debugging:* Proceso para identificar y corregir errores de programación. - * *printf debugging:* Usado para describir el trabajo de *debugging* poniendo comandos que dan una salida en consola, como el de "printf", en diferentes lugares del programa; observando la información y tratando de deducir qué está mal en el programa basandose en la información que nos da nuestros comandos. + + * *printf debugging:* Usado para describir el trabajo de depuración (*debugging*) poniendo comandos que dan una salida en consola, como el de "printf", en diferentes lugares del programa; observando la información y tratando de deducir qué está mal en el programa basándose en la información que nos dan nuestros comandos. + * *Traits:* Un *trait* le hace saber al compilador de Rust acerca de una funcionalidad que tiene un tipo de dato particular y que puede compartir con otros tipos de datos. > NOTA: Los *traits* son similares a una característica que se le conoce comúnmente como *interfaces* en otros lenguajes, aunque con algunas diferencias. diff --git a/03_hacky_hello_world/README.md b/03_hacky_hello_world/README.md index 1e764e65..527757dd 100644 --- a/03_hacky_hello_world/README.md +++ b/03_hacky_hello_world/README.md @@ -14,8 +14,8 @@ - The panic handler makes use of the new `print!()` to display user error messages. - There is a new Makefile target, `make test`, intended for automated testing. It boots the compiled kernel in `QEMU`, and checks for an expected output string produced by the kernel. - - In this tutorial, it checks for the string `Stopping here`, which is emitted by the `panic!()` - at the end of `main.rs`. + - In this tutorial, it checks for the string `Stopping here`, which is emitted by the `panic!()` + at the end of `main.rs`. ## Test it @@ -35,8 +35,8 @@ Stopping here. ``` ## Diff to previous -```diff +```diff diff -uNr 02_runtime_init/Cargo.toml 03_hacky_hello_world/Cargo.toml --- 02_runtime_init/Cargo.toml +++ 03_hacky_hello_world/Cargo.toml @@ -97,7 +97,7 @@ diff -uNr 02_runtime_init/Makefile 03_hacky_hello_world/Makefile @@ -169,3 +172,28 @@ ##------------------------------------------------------------------------------ check: - @RUSTFLAGS="$(RUSTFLAGS)" $(CHECK_CMD) --message-format=json + @RUSTFLAGS="$(RUSTFLAGS)" $(CHECK_CMD) --message-format=json + + + @@ -109,7 +109,7 @@ diff -uNr 02_runtime_init/Makefile 03_hacky_hello_world/Makefile +ifeq ($(QEMU_MACHINE_TYPE),) # QEMU is not supported for the board. + +test_boot test : -+ $(call colorecho, "\n$(QEMU_MISSING_STRING)") ++ $(call colorecho, "\n$(QEMU_MISSING_STRING)") + +else # QEMU is supported. + @@ -117,8 +117,8 @@ diff -uNr 02_runtime_init/Makefile 03_hacky_hello_world/Makefile +## Run boot test +##------------------------------------------------------------------------------ +test_boot: $(KERNEL_BIN) -+ $(call colorecho, "\nBoot test - $(BSP)") -+ @$(DOCKER_TEST) $(EXEC_TEST_DISPATCH) $(EXEC_QEMU) $(QEMU_RELEASE_ARGS) -kernel $(KERNEL_BIN) ++ $(call colorecho, "\nBoot test - $(BSP)") ++ @$(DOCKER_TEST) $(EXEC_TEST_DISPATCH) $(EXEC_QEMU) $(QEMU_RELEASE_ARGS) -kernel $(KERNEL_BIN) + +test: test_boot + @@ -358,5 +358,4 @@ diff -uNr 02_runtime_init/tests/boot_test_string.rb 03_hacky_hello_world/tests/b +# frozen_string_literal: true + +EXPECTED_PRINT = 'Stopping here' - ```