Red de conocimiento informático - Conocimiento de Internet de las cosas - Dirección integrada y dirección de desarrollo de software.

Dirección integrada y dirección de desarrollo de software.

1. Hablemos de ello antes

El "desarrollo de software integrado" incluye "desarrollo de aplicaciones integradas" y "desarrollo de controladores integrados". El contenido de desarrollo integrado en el que se centra principalmente este sitio es. "Desarrollo de controladores integrados", la dirección que continúa perfeccionándose es "desarrollo de controladores integrados de Linux". Primero podemos comprender los puntos de conocimiento a partir de las palabras clave del nombre de la dirección: integrado, Linux, controlador.

"Integrado" representa el tipo de producto, que es relativo a la PC. El concepto específico se ha explicado muy claramente en este sitio, por lo que no entraré en detalles aquí. Para obtener más información, consulte las publicaciones sobre planificación profesional de la serie "Enfoque en los recién llegados".

"Linux" representa el sistema operativo de software utilizado en productos integrados, lo que significa que elegimos el sistema operativo Linux como principal objeto de aprendizaje. Puede entenderlo como relativo al sistema operativo Windows en una PC.

“Driver” representa “desarrollo de controladores”, una dirección en el desarrollo del sistema operativo Linux, lo que significa que actualmente nos estamos centrando en el desarrollo de controladores de Linux, no en el desarrollo de aplicaciones de Linux. Puede entenderlo en comparación con los controladores del sistema operativo Windows en las PC. Cuando usamos computadoras PC, a veces es necesario instalar ciertos controladores usted mismo, eso es lo que significa.

En resumen, el contenido de desarrollo en el que nos centramos ahora es, en última instancia, el desarrollo de "controladores", pero este controlador es el controlador del sistema operativo "Linux", y este sistema operativo "linux" es principalmente para ejecutar.

Sobre productos "integrados". Por lo tanto, los principales puntos de conocimiento que desarrollamos se centran en los dos conceptos de "controlador Linux" y

"embebido". Después de conocer las causas y consecuencias del concepto de puntos de conocimiento, comenzamos a refinar aún más los detalles del desarrollo de estos dos puntos de conocimiento.

El llamado desarrollo "integrado":

Sabemos que conceptualmente es relativo al desarrollo de PC. Por la descripción anterior, sabemos que el sistema operativo que utilizamos es Linux, por lo que. Mi pregunta es: si la PC también ejecuta el sistema operativo Linux, las ideas básicas de desarrollo del desarrollo de Linux basado en PC y el desarrollo de Linux basado en sistemas integrados son en realidad las mismas, excepto que la compilación durante el proceso de desarrollo,

grabación Existen diferencias en los métodos de grabación. Hablemos de las similitudes y diferencias entre estos dos métodos de desarrollo, porque la PC no es ajena a nosotros, por lo que todos deberían haber hecho esto antes de instalar un sistema Ubuntu en una PC. Dado que

los dos métodos de desarrollo solo difieren en la compilación y la grabación, es fácil para nosotros comprender rápidamente el desarrollo de sistemas Linux integrados instalando ubuntu en una PC.

Desarrollo PC Linux:

Si tienes un PC e instalas ubuntu, supongamos que tenemos un controlador de tarjeta SD en el PC, pero linux en ubuntu no tiene este modelo. entonces, si queremos desarrollar un controlador de tarjeta SD para una PC, podemos desarrollarlo siguiendo los siguientes pasos:

(1) Descargue la versión correspondiente de Ubuntu del código fuente del kernel de Linux a esta PC.

(2) Si no hay un controlador para el modelo de tarjeta SD en el código de Linux, entonces necesitamos escribir un controlador de tarjeta SD basado en Linux para el modelo de tarjeta SD. Este paso es nuestro "controlador" principal. "tareas de desarrollo.

(3) Para el kernel de Linux, haga menuconfig directamente en la máquina local, configure y seleccione el soporte del controlador SD de este modelo, siempre que haya desarrollado el controlador de la tarjeta SD.

(4) Utilice el compilador GCC en ubuntu nativo para compilar directamente el kernel: make.

(5) Grabe el kernel: realice directamente module_install, realice la instalación en la máquina local. Esta acción copiará el controlador correspondiente al directorio de inicio de ubuntu y el controlador de la tarjeta SD entrará en vigor al reiniciar. .

Desarrollo de Linux con sistema integrado:

Si tiene una placa de desarrollo s3c6410, 2410 o cualquier placa de desarrollo de brazo integrado y tiene Linux instalado, asumiendo que tenemos una tarjeta SD. controlador, pero el Linux que utilizamos no admite este modelo de controlador de tarjeta SD. Entonces, si queremos desarrollar un controlador de tarjeta SD basado en la placa de desarrollo, podemos desarrollarlo en los siguientes pasos:

( 1) Obtenga la versión correspondiente del código fuente del kernel de Linux y colóquela en la PC de desarrollo.

(2) Si no hay un controlador para el modelo de tarjeta SD en el código de Linux, entonces necesitamos escribir un controlador de tarjeta SD basado en Linux para el modelo de tarjeta SD. Este paso es nuestro "controlador" principal. "tareas de desarrollo.

(3) Para el kernel de Linux, cree menuconfig ARCH=arm directamente en la máquina de desarrollo y configure y seleccione la compatibilidad con el controlador SD de este modelo. La premisa es que usted ha desarrollado el controlador de la tarjeta SD.

(4) Utilice el compilador arm-linux-GCC ya instalado en ubuntu en la PC de desarrollo para compilar directamente el kernel para la placa de desarrollo: haga ARCH=arm.

(5) Grabe el kernel: descargue el archivo del kernel compilado a través del puerto serie, descarga USB, tftp, etc. a la placa de desarrollo de destino, reinicie la placa de desarrollo y compruebe que el controlador de la tarjeta SD toma efecto.

Puedes ver que el desarrollo del "controlador" entre los dos puntos de conocimiento que nos preocupan, principalmente el punto (2), es básicamente el mismo en PC e integrado. Otro punto de conocimiento "integrado" es diferente del de la PC. La principal diferencia es: los métodos de compilación y grabación.

Por lo tanto, nuestro resumen de puntos de conocimiento para el desarrollo del "controlador Linux integrado" se centra principalmente en el desarrollo del "controlador" Linux y el método de grabación y compilación del sistema "integrado".

2. Resumen de puntos de conocimiento

Puntos de conocimiento de grabación y compilación de sistemas integrados:

(1) Preparación del servidor de PC e instalación del sistema ubuntu

p>

p>

(2) Método de instalación y compilación del compilador cruzado.

(3) Descarga a la placa de destino, grabación en puerto serie, descarga y grabación de USB, grabación en red tftp.

Lea atentamente la serie de publicaciones "Aprenda de mí" en este sitio. Después de leerla, creo que domina completamente este punto de conocimiento de "incrustado".

/thread-8166-1-1.html

Puntos de conocimiento sobre el desarrollo de controladores de Linux:

(1) Conceptos básicos del lenguaje C: puntos de conocimiento básicos

(2) Teoría básica del sistema operativo: puntos de conocimiento básico

(3) Operación simple de comandos de Linux: puntos de conocimiento básico ¿Alguna vez has jugado con Ubuntu u otras distribuciones? ¿Alguna vez has usado la línea de comando para hacer algo?

(4) Nodo de archivo del dispositivo: punto de conocimiento esencial, el significado del nodo en /dev/, mknod crea el nodo de archivo dev.

(5) Escritura y carga de módulos de controladores simples: puntos de conocimiento esenciales, el significado de los comandos insmod, modprobe, rmmod y paso de parámetros para módulos.

(6) Escritura del controlador de caracteres: puntos de conocimiento esenciales

(7) Métodos básicos de depuración del controlador: puntos de conocimiento esenciales, printk imprime información del controlador, dmesg imprime información del kernel, proc, el significado del directorio sys.

(8) Mecanismo de sincronización de recursos compartidos: puntos de conocimiento esenciales, el concepto de sección crítica de recursos, bloqueo de giro, semáforo y el uso de cola de espera.

(9) Acceso IO de hardware: puntos de conocimiento esenciales, ioremap, mapa de memoria, escritura, lectura y escritura de interfaces.

(10) Asignación de solicitudes de interrupción y números de interrupción: puntos de conocimiento esenciales.

(11) PCI, conocimiento del bus AMBA: puntos de conocimiento esenciales.

(12) Gestión del tiempo: puntos de conocimiento esenciales, udelay, mdelay, retraso largo y retraso corto, santiamén, principio del temporizador del sistema operativo.

(13) Controlador de dispositivo de bloque de escritura: puntos de conocimiento esenciales.

(14) Kconfig y Makefile, agregar controladores al kernel: puntos de conocimiento esenciales.

(15) Aprender un controlador relativamente grande: seleccione puntos de conocimiento y elija cualquier controlador relativamente grande, como eMMC, SD, USB, etc., para aprender.

3. Curso intensivo sobre puntos de conocimiento

osboy está clasificando los puntos de conocimiento. En la actualidad, el curso intensivo se ha compilado y la inscripción para el curso intensivo está en progreso. . . Para obtener más detalles, consulte: /thread-9692-1-1.html, o puede comunicarse con osboy al QQ 82475491 para consultas y comunicación.