Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Egle Systems

Egle Systems

Desarrollo de Hardware y Software para ARM, Sistemas embebidos y Smart Devices

oshlumh

July 13, 2014
Tweet

Other Decks in Programming

Transcript

  1. Es335-SOM Cortex-A8™ 1000MHz 1024MB RAM GPU NAND + MMC 2xCAN-Bus,

    Ethernet, EtherCAT, PROFINET, PROFIBUS, 6xUART, USB 2xOTG
  2. Es6-SOM 4xCortex-A9™ 1200MHz 4096MB RAM GPU + VPU (4 pantallas)

    NAND + MMC + SATA + PCIe 2xCAN-Bus, Ethernet GBit, 5xUART, USB Host + OTG
  3. Sistemas operativos para Es6-SOM Linux embebido Ubuntu 12.04 LTS Android

    4.2 Todos usan bootloaders y kernels adaptados al hardware
  4. Linux embebido Sistema base con todo el soporte hardware y

    lo mínimo para arrancar. Sin sistema de gestión de software. Las bibliotecas adicionales se instalan en /opt/<nombre> SDK de desarrollo.
  5. Toolchain: Utilidades para crear un programa: gcc, ld, gdb, etc...

    Host: Máquina donde trabajamos. Target: Máquina que ejecutará el software. Compilador cruzado: Compilador que se ejecuta en el host y crea ejecutables para el target.
  6. El prefijo indica el tipo de binario que crea. No

    es standard. arm-fsl-linux-gnueabi-gcc
  7. Utilizando un compilador nativo: /usr/include para cabeceras /usr/lib bibliotecas compartidas

    (*.so) Compilación cruzada: <sysrootdir>/usr/include cabeceras <sysrootdir>/usr/lib bibliotecas compartidas (*.so)
  8. $ export SDKDIR=/opt/egle/es6/2013.10 $ export SYSROOT=${SDKDIR}/sysroot $ export TOOLCHAINDIR=${SDKDIR}/fsl-linaro-toolchain/bin $

    export PATH=${PATH}:${TOOLCHAINDIR} $ arm-fsl-linux-gnueabi-gcc \ -I${SYSROOT}/usr/include \ -I${SYSROOT}/opt/xenomai2/include \ -L${SYSROOT}/usr/lib \ -L${SYSROOT}/opt/xenomai2/lib \ -lxenomai -lnative \ -Wl,-rpath,/opt/xenomai2/lib \ rttest.c -o rttest
  9. El parámetro remote path para el linker: -Wl,-rpath,[libdir] permite incluir

    en el binario rutas adicionales de búsqueda de bibliotecas en runtime.
  10. $ file rttest rttest: ELF 32-bit LSB executable, ARM, EABI5

    version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, not stripped
  11. $ cd linux $ export SDKDIR=/opt/egle/es6/2013.10 $ export TOOLCHAINDIR=${SDKDIR}/fsl-linaro-toolchain/bin $

    export PATH=${PATH}:${TOOLCHAINDIR} $ export ARCH=arm $ export CROSS_COMPILE=arm-fsl-linux-gnueabi- $ make <target>
  12. $ scp rttest [email protected]:/root/rttest $ ssh [email protected] "gdbserver :5000 /root/rttest"

    $ gdb (gdb) target remote 192.168.1.110:5000 (gdb) b main (gdb) continue
  13. $ scp rttest [email protected]:/root/rttest $ gdb (gdb) target remote |

    ssh -T 192.168.1.110 gdbserver - /root/rttest (gdb) b main (gdb) continue
  14. IDEs: Eclipse CDT, qtcreator, Code::Blocks... La mayoria permite seleccionar el

    compilador, sysroot, etc... También suelen permitir sesiones de depuración remotas.
  15. FIN