Curso de Programación en C para Sistemas Embebidos
El lenguaje de programación C es quizás el lenguaje de programación más popular para programar sistemas embebidos.
Programa del Curso
Introducción
- Estándar ANSI
- Fundamentos de C
- Tipos de datos y constantes
- E/S simples y formateadas
- Uso de memoria
- Operadores y Expressiones
- Control de flujo
- Bucles
Funciones
- Rol de las funciones
- Pasar por valor / referencia
- Devolver valores de funciones
- Funciones recursivas
- Funciones de devolución de llamada
- Implicaciones en Stack
- Biblioteca Vs Función definida por el usuario
- Pasar un número variable de argumentos
Matrices
- Definición, inicialización y uso de matrices
- Matrices multidimensionales
- Matrices de caracteres y cadenas
- Matrices y punteros
- Pasar matrices a funciones
- Manejo de cadenas con y sin funciones de biblioteca
Clases de almacenamiento
- Alcance y vida
- Automático, Estático, Externo, Registro
- Memoria (CPU / RAM)
Estructuras y Sindicatos
- Para qué sirven las estructuras
- Declaración, inicialización
- Accessing como objetos
- Estructuras anidadas
- Matriz de estructuras
- Pasar estructuras a través de funciones
- Asignación de memoria y huecos
- Comparación de estructuras
- Funcionamiento de la broca de estructura
- Definición de tipo para la portabilidad
- Uniones
- Miembros superpuestos
Tipos de datos enumerados
- Enum, indexación, enum Vs #define
Operaciones de bits
- Y ( & ), O ( | ), XOR ( ^ )
- Cumplido ( ~ )
- Mayús a la izquierda ( << ), Mayús a la derecha ( >> )
- Enmascaramiento, ajuste, limpieza y prueba de bit / bits
Punteros
- El propósito de los punteros
- Definición de punteros
- Los operadores & y *
- Asignación de puntero
- Aritmética de puntero
- Múltiples direccionamientos indirectos
- Tipos de puntero avanzados
- Puntero genérico y nulo
- Punteros de función
- Punteros a matrices y cadenas
- Matriz de punteros
- Punteros a la estructura y la unión
- Punteros a la memoria dinámica
- Punteros lejanos, cercanos y enormes
- Fundición de tipo puntero
Asignación dinámica de memoria
- Farrego(), Calloc(), Realloc(), Free()
- Farmalloc(), Farcalloc()
Conceptos de manejo de archivos
- Concepto de un tipo de datos FILE
- Inodo, estructura FILE
- Puntero de archivo
- Rutinas de manejo de personajes
- Rutinas de datos formateadas
- Rutinas de datos sin procesar
- Aleatorio Access a ARCHIVO
Argumentos de la línea de comandos
- Argc, argv
- Entradas variables a la variable principal
Compilador en la práctica
- Directivas de preprocesador
- Compilador, ensamblador, enlazador
- Compilación condicional
- Compilación de archivos múltiples
- Técnicas de optimización de código
- Volátil, #pragma
Estructuras de datos
- Lineal y no lineal
- Homogéneo y no homogéneo
- Estático y dinámico
- Listas enlazadas simples, dobles y circulares
- Pilas y colas
- Árboles binarios
Técnicas de clasificación y Searching
- Inserción, Selección, Bubble, Fusionar, Rápido, Montón
Conceptos y exposición en tiempo real
- Herramientas de desarrollo y entorno
- Hacer utilidad
- Estándares de codificación de la industria
- Formato de archivo objeto / ejecutable
- Depurador
Los cursos de formación abiertos requieren más de 5 participantes.
Curso de Programación en C para Sistemas Embebidos - Booking
Curso de Programación en C para Sistemas Embebidos - Enquiry
Programación en C para Sistemas Embebidos - Consultas
Consultas
Testimonios (5)
Él responde a mis preguntas muy bien explicadas.
Khaled Almarzooqi - Beamtrail
Curso - Circuits and Electronics Fundamentals
Traducción Automática
Sean fue un ponente dinámico y los ejercicios prácticos fueron muy interesantes, puedo ver cómo serán realmente aplicables.
Temira Koenig - Yeshiva University
Curso - Raspberry Pi for Beginners
Traducción Automática
Que el formador se adapte a nuestras necesidades
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Curso - The Yocto Project - An Overview - hands-on
Traducción Automática
El entrenador fue muy amable y conocedor, haciendo un esfuerzo adicional para explicar cosas que no sabía
Felix - Microchip Technology Inc
Curso - Embedded C Application Design Principles for Automotive Professionals
Traducción Automática
La adquisición de conocimientos útiles y la clarificación de algunas cosas sobre las cuales no estaba seguro previamente.
Kenneth Mahoney - University of Glasgow
Curso - Arduino: Programming a Microcontroller for Beginners
Traducción Automática
Próximos cursos
Cursos Relacionados
Advanced Embedded Systems Development
35 HorasEsta capacitación en vivo dirigida por un instructor en Venezuela (en línea o presencial) está dirigida a ingenieros que desean aprender a usar C integrado para programar varios tipos de microcontroladores basados en diferentes arquitecturas de procesador (8051, ARM CORTEX M-3 y ARM9).
Arduino: Programando un Microcontrolador para Principiantes
21 HorasEn esta capacitación en vivo dirigida por un instructor en Venezuela, los participantes aprenderán a programar el Arduino para su uso en el mundo real, como controlar luces, motores y sensores de detección de movimiento. Este curso asume el uso de componentes de hardware reales en un entorno de laboratorio en vivo (no hardware simulado por software).
Al final de esta capacitación, los participantes serán capaces de:
- Programa Arduino para controlar luces, motores y otros dispositivos.
- Comprenda la arquitectura de Arduino, incluidas las entradas y los conectores para dispositivos complementarios.
- Agregue componentes de terceros como LCD, acelerómetros, giroscopios y rastreadores GPS para ampliar la funcionalidad de Arduino.
- Comprender las diversas opciones de los lenguajes de programación, desde C hasta los lenguajes de arrastrar y soltar.
- Pruebe, depure e implemente Arduino para resolver problemas del mundo real.
Buildroot: a Firmware Generator for Embedded Systems
7 HorasBuildroot es un proyecto de código abierto que contiene scripts que producen una cadena de herramientas de compilación cruzada, una imagen de sistema de archivos raíz personalizable y un kernel Linux para dispositivos integrados. Durante este curso práctico, los participantes aprenderán a utilizarlo:
- Cómo seleccionar el software que entra en el sistema de archivos raíz.
- Cómo agregar nuevos paquetes y modificar los existentes.
- Cómo agregar soporte para nuevas placas integradas.
Durante el curso, se producirán imágenes del sistema de archivos de arranque. Los cursos a distancia se imparten utilizando el emulador QEMU , mientras que en el aula es posible utilizar QEMU o tableros integrados reales a elección del formador.
Otros proyectos con objetivos similares incluyen el proyecto Yocto y OpenWRT. Utilice estas presentaciones para determinar cuál es la opción correcta para sus necesidades.
Circuits and Electronics Fundamentals
14 HorasEsta capacitación en vivo dirigida por un instructor en Venezuela (en línea o presencial) está dirigida a ingenieros e informáticos que desean aplicar los fundamentos de los circuitos y la electrónica para diseñar dispositivos y sistemas que utilizan las propiedades de los componentes eléctricos para el desarrollo de funcionalidades de hardware.
Al final de esta formación, los participantes serán capaces de:
- Instalar y configurar las herramientas y programas necesarios para el desarrollo de circuitos y placas de circuitos.
- Comprender los principios básicos detrás de la ingeniería de circuitos y electrónica.
- Utilizar los componentes electrónicos primarios en la construcción de tecnologías eficientes de hardware informático.
- Optimice los dispositivos electrónicos mediante la implementación de métodos de análisis de circuitos.
- Aplicar los fundamentos de la electrónica y los circuitos al desarrollo de aplicaciones empresariales.
Digital Signal Processing (DSP) Fundamentals
21 HorasEsta capacitación en vivo dirigida por un instructor en Venezuela (en línea o en el sitio) está dirigida a ingenieros y científicos que desean aprender y aplicar implementaciones de DSP para manejar de manera eficiente diferentes tipos de señales y obtener un mejor control sobre los sistemas electrónicos multicanal.
Al final de esta formación, los participantes serán capaces de:
- Instalar y configurar la plataforma de software y las herramientas necesarias para el procesamiento digital de señales.
- Comprender los conceptos y principios fundamentales de DSP y sus aplicaciones.
- Familiarizarse con los componentes DSP y emplearlos en sistemas electrónicos.
- Genere algoritmos y funciones operativas utilizando los resultados de DSP.
- Utilice las funciones básicas de las plataformas de software DSP y diseñe filtros de señal.
- Sintetice simulaciones de DSP e implemente varios tipos de filtros para DSP.
Principios de Diseño de Aplicaciones C Integrados para Profesionales de la Automoción
14 HorasUn curso de dos días que cubre todos los principios de diseño con ejemplos de código junto con tecnología industrial reciente; Muy útil para desarrolladores de software automotriz
Principios de Diseño de Aplicación Embedded C
14 HorasEsta capacitación en vivo dirigida por un instructor (en línea o presencial) está dirigida a desarrolladores de C que deseen aprender los principios del diseño de C integrado.
Al final de esta formación, los participantes serán capaces de:
- Comprender las consideraciones de diseño que hacen que los programas C integrados sean confiables
- Definir la funcionalidad de un sistema embebido
- Definir la lógica y la estructura del programa para obtener el resultado deseado
- Diseñe una aplicación integrada fiable y sin errores
- Obtenga un rendimiento óptimo del hardware de destino
Formato del curso:
- Conferencias y debates interactivos
- Ejercicios y práctica
- Implementación práctica en un entorno de laboratorio en vivo
Opciones de personalización del curso:
- Para solicitar una formación personalizada para este curso, póngase en contacto con nosotros para concertarlo.
Electronic Control Unit (ECU) - Practical Vector
28 HorasEste entrenamiento en vivo dirigido por instructores en Venezuela (en línea o en el sitio) está dirigido a ingenieros y técnicos automotrices de nivel intermedio que desean obtener experiencia práctica en la prueba, simulación y diagnóstico de ECUs utilizando herramientas Vector como CANoe y CANape.
Al final de esta capacitación, los participantes podrán:
- Entender el papel y la función de las ECUs en los sistemas automotrices.
- Configurar y configurar herramientas Vector como CANoe y CANape.
- Simular y probar la comunicación de ECU en redes CAN y LIN.
- Analizar datos y realizar diagnósticos en ECUs.
- Crear casos de prueba y automatizar flujos de trabajo de prueba.
- Calibrar y optimizar ECUs utilizando enfoques prácticos.
Electronic Control Unit (ECU) - Theoretical Vector
21 HorasEste entrenamiento en vivo dirigido por instructores en Venezuela (en línea o en el sitio) está dirigido a ingenieros automotrices y desarrolladores de sistemas integrados de nivel intermedio que desean comprender los aspectos teóricos de las ECU, centrándose en las herramientas y metodologías basadas en Vector utilizadas en el diseño y desarrollo automotriz.
Al final de esta capacitación, los participantes podrán:
- Entender la arquitectura y las funciones de las ECUs en vehículos modernos.
- Analizar los protocolos de comunicación utilizados en el desarrollo de ECUs.
- Explorar herramientas basadas en Vector y sus aplicaciones teóricas.
- Aplicar principios de desarrollo basado en modelos al diseño de ECU.
FreeRTOS: Programación de sistemas operativos en tiempo real
14 HorasEn esta capacitación en vivo dirigida por un instructor en Venezuela, los participantes aprenderán a codificar usando FreeRTOS a medida que avanzan en el desarrollo de un proyecto RTOS simple usando un microcontrolador.
Al final de esta formación, los participantes serán capaces de:
- Comprender los conceptos básicos de los sistemas operativos en tiempo real.
- Aprenda el entorno de FreeRTOS.
- Aprenda a codificar con FreeRTOS.
- Conecte una aplicación FreeRTOS a periféricos de hardware.
Learning Vivado
14 HorasEsta capacitación en vivo dirigida por un instructor en Venezuela (en línea o en el sitio) está dirigida a desarrolladores de FPGA que desean usar Vivado para diseñar, depurar e implementar soluciones de hardware.
Al final de esta formación, los participantes serán capaces de:
- Desarrollar sistemas HDL con código C y herramientas Vivado.
- Genere e implemente procesadores de software en Vivado.
- Pruebe y simule el código C con Vivado.
LEDE: configure un enrutador inalámbrico Linux
7 HorasEl Proyecto LEDE ( Linux Embedded Development Environment) es un Linux operativo Linux basado en OpenWrt . Es un reemplazo completo para el firmware suministrado por el proveedor de una amplia gama de enrutadores inalámbricos y dispositivos que no son de red.
En esta capacitación en vivo dirigida por un instructor, los participantes aprenderán cómo configurar un enrutador inalámbrico basado en LEDE.
Audiencia
- Administradores de red y técnicos
Formato del curso
- Conferencia parcial, discusión parcial, ejercicios y práctica práctica.
Raspberry Pi para Principiantes
14 HorasRaspberry Pi es una computadora muy pequeña, de una sola placa.
En esta capacitación en vivo dirigida por un instructor, los participantes aprenderán cómo configurar y programar el Raspberry Pi para que sirva como un sistema integrado interactivo y potente.
Al final de esta formación, los participantes serán capaces de:
- Configurar un IDE (entorno de desarrollo integrado) para obtener la máxima productividad en el desarrollo
- Programa Raspberry Pi para controlar dispositivos como sensores de movimiento, alarmas, servidores web e impresoras.
- Comprender la arquitectura de Raspberry Pi, incluidas las entradas y los conectores para dispositivos complementarios.
- Comprender las diversas opciones de los lenguajes de programación y los sistemas operativos.
- Pruebe, depure e implemente Raspberry Pi para resolver problemas del mundo real
Audiencia
- Desarrolladores
- Técnicos de hardware/software
- Personas técnicas en todas las industrias
- Aficionados
Formato del curso
- En parte conferencia, en parte discusión, ejercicios y práctica práctica intensa
Nota
- Raspberry Pi Soporta varios sistemas operativos y lenguajes de programación. Este curso utilizará Raspbian basado en Linux como sistema operativo y Python como lenguaje de programación. Para solicitar una configuración específica, póngase en contacto con nosotros para organizarla.
- Los participantes son responsables de comprar el hardware y los componentes Raspberry Pi.
Curso de Proyecto Yocto
28 HorasEn esta capacitación en vivo dirigida por un instructor en Venezuela, los participantes aprenderán cómo crear un sistema de compilación para Linux incrustado basado en Yocto Project.
Al final de esta formación, los participantes serán capaces de:
- Comprender los conceptos fundamentales detrás de un sistema de compilación Yocto Project, incluidas las recetas, los metadatos y las capas.
- Cree una imagen Linux y ejecútela bajo emulación.
- Ahorre tiempo y energía en la construcción de sistemas integrados Linux.
El Proyecto Yocto - Una Visión General - Práctico
28 HorasDescripción
Esta formación de cuatro días combina la teoría con ejercicios prácticos para introducir el Yocto Project.
Responde a preguntas frecuentes como:
- ¿Es realmente necesario usar otra versión de la cadena de herramientas/bibliotecas/paquetes para todos y cada uno de los proyectos GNU/Linux y una parte superior de eso para seguir un flujo de trabajo diferente?
- ¿Puede asegurarse de que el entorno de desarrollo sea idéntico para todos los desarrolladores/proveedores y que aún pueda producir compilaciones idénticas como hoy en 10+ años a partir de ahora?
- ¿Puede el YP ayudar a averiguar bajo qué licencias de software están licenciados los paquetes que utiliza?
Las sesiones prácticas se realizan en el hardware de destino (por ejemplo, Beagle Bone Black Rev. C - http://beagleboard.org/BLACK). Después de la formación, podrá descargar una imagen de Docker con Ubuntu 14.x y todas las dependencias preinstaladas, además de los ejemplos, para trabajar con el material del curso en sus propios laboratorios. Tenga en cuenta que este no es un curso introductorio a Embedded GNU/Linux. Ya debería saber cómo funciona Embedded GNU/Linux y cómo configurar/construir el kernel GNU/Linux y los controladores del kernel.
¿A quién va dirigido?
Ya utilizas GNU/Linux para tus proyectos y probablemente hayas oído hablar del Yocto Project, pero no te atreviste a examinarlo más de cerca, o tuviste dificultades para usarlo. No sabes si tu flujo de trabajo diario se puede acomodar en el YP y cómo lo puedes hacer y, en general, lo encuentras bastante complicado. ¿Por qué necesitamos todo esto si hasta ahora todo era (supuestamente) mucho más fácil? Después de la formación, deberías ser capaz de decidir si necesitas el YP o no. El taller está dirigido a ingenieros de software, desarrollo, sistemas, testers, administradores, ingenieros y otras partes interesadas en el YP, con un sólido conocimiento de GNU embebido/Linux.