Inicio > Foro > obsoleto > SlimLine (Linux) > Cómo escribir mi primer programa "HelloWorld"
- Este tema tiene 6 respuestas, 3 participantes y se actualizó por última vez 11 años, hace 6 meses da Sergio Bertana.
-
autorPublicación
-
Abril 21, 2012 en 8: 02 am #35204Sergio BertanaAdministrador del foro
el módulo CPU SlimLine Linux se basa en un módulo Computer on Modules (CoMs) producido por Karo. Lo suministramos con el sistema operativo ya preinstalado. Linux integrado - kernel 2.6.31 karo-axel con busybox, bash y varias aplicaciones y sin administrador gráfico linux. En el arranque, el sistema ejecuta el cargador de arranque. RedBoot que instala el kernel de Linux.
Conecte un programa de emulación de terminal serie (ejemplo Toolly en Windows o Putty en Linux), configuró un 115200, e, 8, 1 al puerto serie COM0 del módulo de la CPU SlimLine. Cuando el módulo está encendido en el terminal, es posible tener un informe de las operaciones realizadas durante la puesta en marcha. Verás algo como:
RedBoot> fis load linux
..
Uncompressing Linux………………………………………………………………………………………………………. done, booting the kernel.
Linux version 2.6.31 (gcc version 4.4.1 (GCC) ) #7 PREEMPT Wed Nov 30 10:48:25 CET 2011
CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177
…Si la tarjeta está conectada a la red ethernet y hay un servidor DHCP presente en la red, el módulo solicitará la cesión de una dirección IP del servidor y se configurará con la IP asignada. Para conocer la IP es necesario ver toda la información devuelta desde el puerto serie y buscar las que se refieren a DHCP. Tendremos algo como:
dhcpcd[1150]: eth0: broadcasting for a lease
dhcpcd[1150]: eth0: offered 192.168.0.86 from 192.168.0.1
dhcpcd[1150]: eth0: acknowledged 192.168.0.86 from 192.168.0.1
dhcpcd[1150]: eth0: checking for 192.168.0.86
dhcpcd[1150]: eth0: leased 192.168.0.86 for 86400 secondsEntonces, en este punto podemos abandonar la conexión serial y llegar a nuestro módulo desde la red ethernet en la dirección asignada (en el ejemplo es 192.168.0.86). En todos los encendidos posteriores, el módulo siempre recibirá la misma dirección IP del servidor DHCP.
Abril 21, 2012 en 8: 41 am #37226Sergio BertanaAdministrador del foroPara el desarrollo de los programas es necesario utilizar una PC Linux (máquina virtual VMware proporcionada por Elsist) o cualquier PC con Linux con todas las aplicaciones necesarias instaladas. Desde un shell de comandos es posible conectarse en Telnet con la tarjeta simplemente escribiendo Telnet seguido de la IP, se conectará a la interfaz de comando de la tarjeta (Captura de pantalla). Con comamdi ls puede ejecutar la lista del directorio actual y con el comando fecha de cd puedes ir al directorio datos donde se transferirá nuestro primer programa.
Para la implementación del programa que usamos CodeLite, un IDE multiplataforma de código abierto para C / C ++. El programa es la clásica impresión de cuerdas. hola mundo. Proporcionamos un proyecto CodeLite con los archivos fuente, simplemente compílelo para tener el archivo en el directorio Debug holamundo para ser transferido a la CPU SlimLine (Descarga del proyecto).
Para la transferencia es necesario utilizar cualquier cliente FTP (Ejemplo FileZilla), pero en nuestro proyecto de ejemplo configuramos CodeLite para realizar la transferencia a través de Ftp al final de la compilación del proyecto. Al hacer clic derecho en el nombre del proyecto y seleccionar Configuración, se abrirá la ventana con la configuración, en el comando Post-Build se invoca el comando Ftp del archivo ejecutable en la CPU en la dirección IP definida en el directorio de datos (Captura de pantalla).
Abril 21, 2012 en 9: 18 am #37227Sergio BertanaAdministrador del foroCompletada la transferencia del proyecto a la CPU SlimLine desde Telnet es posible verificar que el archivo ejecutable realmente ha sido transferido al directorio de datos del sistema y tiene todos los atributos de ejecución necesarios para ser ejecutado. Con el comando ls -l puede ver los atributos del archivo, y posiblemente con el comando chmod 777 HelloWorld puede asignar atributos de ejecución.
En este punto, escribiendo ./HelloWorld seguido de regreso el programa se ejecuta y se escribe hello world devuelto del sistema (Captura de pantalla).
Junio 13, 2012 en 7: 59 am #37370StefanopartícipeOk, hastaholamundo me parece claro ... Entonces, ¿dónde puedo encontrar documentación / tutoriales / manuales específicos relacionados con la programación en "C" para el módulo ARM9? No me refiero tanto a la programación en "C" sino a las librerías que se utilizarán para operar con entradas / salidas.
¿Es posible probar algo con algún emulador o necesariamente tengo que tener el módulo de cpu físico para hacer algunos experimentos? Lo estaba evaluando para su uso en domótica (mi casa) y aunque estoy bastante familiarizado con Linux / Redes / ... PLCs recuerdo algo sobre LADDER y eso es todo y por lo tanto me incliné más hacia la solución “Abierta”.
Agosto 10, 2012 en 1: 56 pm #37371Sergio BertanaAdministrador del foroEstamos procediendo con la redacción de la biblioteca de soporte del sistema. SlimLine, la biblioteca que se llama "eSLLinuxLib”Actualmente está disponible en versión beta. Creé un proyecto simple con CodeLite para generar un ejecutable, que usando la biblioteca (suministrada con el proyecto) le permite administrar las E / S lógicas en el bus de expansión.
El ejemplo con un menú simple de comandos de telnet permite leer las entradas lógicas, activar las salidas lógicas y activar un hilo para gestionar el parpadeo de una salida lógica (Descargar el programa fuente).
Desafortunadamente, no hay un emulador de hardware, por lo que necesita el módulo de la CPU para probar el programa SlimLine ARM9 (Linux Open).
Octubre 10, 2012 en 10: 53 am #37441AnonimoinactivoMe gustaría saber si hay una biblioteca para administrar RTU y TCP modbus. Vi que existe la definición de la función que calcula el CRC de los paquetes modbus, pero no he encontrado documentación sobre cómo establecer un diálogo modbus.
También me gustaría saber si está prevista la implementación de la gestión de E / S analógicas.
Octubre 10, 2012 en 2: 12 pm #37442Sergio BertanaAdministrador del foroHay una biblioteca de utilidades ElSLUtility (Código SFR069 ****) donde puedes encontrar la clase CModbus para la gestión del servidor modbus, la clase admite modbus Ascii, modbus RTU y modbus OverIP.
En cuanto a la gestión analógica en la biblioteca ElSLLinux (Código SFR064 ****) puede encontrar las funciones apropiadas para la gestión de módulos analógicos.
-
autorPublicación
- Debe iniciar sesión para responder a este tema.