Programa de ejemplo que imprime el mensaje Hello World!
, basado en la demo de FreeRTOS para QEMU.
Generar la imagen docker con:
docker build rtsg -t .
Importante: el script docker.make
espera que la imagen se llame rtsg
.
Para compilar el proyecto:
docker.make
Para ejecutar:
docker.make qemu
Es posible visualizar la salida gráfica de QEMU mediante VNC conectandose a :0
.
Clonar o descargar este repositorio. Luego, para importar el proyecto en Eclipse:
-
Seleccionar [File > New > Makefile Project with Existing Code].
-
En la nueva ventana:
- En [Existing Code Location] indicar el path en donde se descargó o clonó el repositorio (usar el botón [Browse...]).
- En [Toolchain for Indexer] seleccionar la opción ARM Cross GCC (¡importante!).
-
El proyecto debe aparecer ahora en la vista Project Explorer:
- Hacer clic derecho sobre el mismo, y seleccionar [Properties] en el menú contextual.
- En la nueva ventana, en la sección izquierda, seleccionar [C/C++ Build > Settings]. En la sección derecha de la ventana, hacer clic en la pestaña [Toolchains]. Verificar que el campo Name indique GNU MCU Eclipse ARM Embedded GCC (arm-none-eabi-gcc) o similar.
- Hacer clic en [Apply and Close].
Para compilarlo se puede:
- Hacer clic derecho sobre el proyecto en la vista Project Explorer y seleccionar [Build] en el menú contextual.
- Seleccionar en la barra de menúes de Eclipse [Project > Build Project].
- Hacer clic en el ícono Build (un martillo).
Si el proyecto compilo correctamente, en la vista [Console] debe indicarse que se generó correctamente el archivo build/main.elf
.
Primero configurar el perfil de debugging:
- Seleccionar [Run > Debug Configurations...] en el menú de Eclipse.
- En la nueva ventana, hacer doble clic sobre [GDB Hardware Debugging] en el menú izquierdo. Esto crea una nueva configuración basada en el perfil, con el nombre del proyecto activo.
- Seleccionar el nuevo perfil creado (lm3s6965evb-helloworld-makefile).
- En el panel derecho:
- En la pestaña [Main]:
- En el Project debe indicar el nombre del proyecto (lm3s6965evb-helloworld-makefile).
- En el campo C/C++ Application se debe indicar
build/main.elf
. - Seleccionar Use workspace settings.
- En la pestaña [Debugger]:
- El campo GDB Command debe decir
arm-none-eabi-gdb
. - Seleccionar Use remote target.
- En GDB Connection String completar
localhost:1234
.
- El campo GDB Command debe decir
- En la pestaña [Startup]:
- Desmarcar Reset and delay, Halt y Load image si estuvieran seleccionados.
- Seleccionar la opción Load symbols y Use project binary: main.elf.
- Seleccionar la opción Set breakpoint at: y en el campo adyacente indicar
main
. - Seleccionar la opción Resume.
- En la pestaña [Common], seleccionar la opción [Shared file:], indicando en el campo el nombre del proyecto. De esta manera la configuración para debugging es guardada en un archivo
*.launch
dentro del proyecto. - Hacer clic en el botón [Apply], no cerrar la ventana aún.
- En la pestaña [Main]:
A continuación, abrir una terminal y ejecutar el siguiente comando (utilizar el path correcto a main.elf
):
qemu-system-arm -kernel ./build/main.elf -S -s -machine lm3s6965evb
Como resultado, debe ejecutarse QEMU, presentando una ventana y quedando a la espera de que se conecte una sesión de debugging.
Luego, desde Eclipse hacemos clic en el botón [Debug], y cuando Eclipse nos pregunte si queremos cambiar a la perspectiva de Debugging le decimos que sí (switch).
Si todo funcionó correctamente, se alcanza el breakpoint en la función main()
y la ejecución queda detenida en ese punto. Seleccionar [Run > Resume] (o presionar F8) y en la ventana de QEMU debe aparecer el mensaje Hello World!
.