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.