wiring socket raspberry assembly arm raspberry-pi raspbian gpio

assembly - wiring - socket raspberry pi 3



Error de segmentación al acceder a la dirección gpio de frambuesa pi (1)

El ejemplo que está siguiendo es para el software independiente ("bare metal") que se ejecuta directamente en el hardware, y está intentando ejecutarlo en Linux. La gestión de la memoria kernel evita correctamente que intente acceder a algo que no está asignado al espacio de la memoria de proceso.

Si comprueba el valor de retorno de su comando sudo, encontrará que todavía devuelve 139 (error de segmentación).

Una forma de lograr lo que está intentando es escribir un controlador de kernel. Pero una más práctica podría ser hacer uso de una de las bibliotecas de software ya disponibles para Linux en el raspberry pi. Por ejemplo, algo así como (búsqueda aleatoria, no lo ha usado) WiringPi .

He estado siguiendo este tutorial http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/ok01.html y como quiero controlar gpio sin reemplazar el sistema operativo, quiero compilar el código de ensamblado, luego ejecútelo como un programa,

Y he cambiado el inicio del programa,

.global main .func main ldr r0,=0x20200000 mov r1,#1 lsl r1,#18 str r1,[r0,#4] mov r1,#1 lsl r1,#16 str r1,[r0,#40] loop: b loop

entonces haz esto en el Pi

as -o gpio.o main.s gcc -o gpio gpio.o

pero cuando lo hago

./gpio

Tengo un error de segmentación

y cuando lo hago

sudo ./gpio

No hay falla de segmentación, pero no hace nada, supongo que enciende el bucle led para siempre, por favor ayuda, apreciaré cualquier cosa relacionada con cómo acceder a gpio usando el ensamblado ARM sin reemplazar kernel.img.