elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Violación de segmento de código en c++ (sin punteros)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Violación de segmento de código en c++ (sin punteros)  (Leído 892 veces)
juligarc10

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Violación de segmento de código en c++ (sin punteros)
« en: 10 Noviembre 2018, 19:15 pm »

Buenas tardes a todos. Me estoy iniciando en el mundo de la programación y me he propuesto encender un led con una Raspberry Pi. He diseñado el código ayudándome de algún libro y de internet, pero a pesar de que el código compila, una vez intento ejecutarlo me da un error que dice: Violación de segmento. Aquí os dejo el código, aunque yo no consigo ver el error.

#include <wiringPi.h>

#include <iostream>

int main(void){
wiringPiSetup();
pinMode(12, OUTPUT);
int i=0;
for(i=0;i<10;i++){
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay (500);
}
return (0);
}

PD: La librería wiringPi ya la he instalado, creo que el fallo no se debe a eso.

Un saludo, gracias.


En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.564



Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #1 en: 11 Noviembre 2018, 01:21 am »

Saludos,

- De donde sale ese 12? existe? debes utilizar ese número o quizá algún otro? quizá uno menor ...


En línea

juligarc10

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #2 en: 11 Noviembre 2018, 14:41 pm »

Saludos,

- De donde sale ese 12? existe? debes utilizar ese número o quizá algún otro? quizá uno menor ...

Hola,

Si no me equivoco es el pin positivo de la raspberry, al que conecto el led. No se si trabajaron alguna vez con la Raspberry, pero cada pin tiene asignado un número. Lo que no se es si lo he planteado bien, pero el 12 viene de que el pin nº 12 es el que ofrecerá una corriente positiva a mi led. Si buscan en google imagenes "Pines raspberry pi 3" podrán ver el esquema de la raspberry.

Gracias. Saludos.
En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #3 en: 11 Noviembre 2018, 15:49 pm »

Sugerencias:

- Escribe aqui el error completo que te aparece, no solo una parte. Tal vez el error completo da más indicios del problema y al recortarlo haces mas difícil adivinar que problema tienes.
- pon el comando que usas para ejecutar tu programa. Lo escondido de esta sugerencia es que leí que tiene que ejecutarse con sudo, y tal vez no lo has hecho así.
En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.564



Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #4 en: 11 Noviembre 2018, 17:18 pm »

- Lo digo porque la Violación de Segmento se da normalmente porque se está haciendo referencia a un lugar que no existe, no se tiene permiso, está fuera del alcance.

- Con el código que has dado, me da a entender de que ese 12 está fuera del alcance. Pero no soy experto ni he tocado un Raspberry  :xD. Solo es lo que me da a entender.
En línea

juligarc10

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #5 en: 11 Noviembre 2018, 17:48 pm »

Sugerencias:

- Escribe aqui el error completo que te aparece, no solo una parte. Tal vez el error completo da más indicios del problema y al recortarlo haces mas difícil adivinar que problema tienes.
- pon el comando que usas para ejecutar tu programa. Lo escondido de esta sugerencia es que leí que tiene que ejecutarse con sudo, y tal vez no lo has hecho así.

Hola,

Estoy ejecutando el programa desde el cmd de raspbian (el sistema operativo que tiene instalado la RPi. Cuando creo el código, lo creo en un "bloc de notas" cuya extensión final es .cpp.
A continuación, cuando quiero compilar el código desde cmd escribo "g++ -Wall -o led led.cpp -lwiringPi" (led es el nombre del archivo bloc de notas". El archivo compila perfectamente, pero cuando lo ejecuto escribiendo en cmd "sudo ./led", la única respuesta que el cmd me da es "Violación de segmento", nada más. No se si así te puedo orientar algo más...

Un saludo y gracias.
En línea

juligarc10

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #6 en: 11 Noviembre 2018, 17:55 pm »

- Lo digo porque la Violación de Segmento se da normalmente porque se está haciendo referencia a un lugar que no existe, no se tiene permiso, está fuera del alcance.

- Con el código que has dado, me da a entender de que ese 12 está fuera del alcance. Pero no soy experto ni he tocado un Raspberry  :xD. Solo es lo que me da a entender.

Hola,

Te entiendo, pero normalmente cuando tu especificas un lugar concreto en memoria, estás usando punteros. Yo aquí no los uso. El 12 ese en teoría no tiene nada que ver con la memoria, es simplemente el número que tiene asociado ese determinado pin de la Raspberry, y por el cual le indico a mi programa que ese pin será el que vaya a "emitir" corriente positiva y no cualquier otro, ya que el 12 será al que tendré conectado mi led.
No se si me he explicado o es que soy yo quien no te entiende a ti.  :laugh:

De todas formas muchas gracias.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.479



Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #7 en: 11 Noviembre 2018, 19:30 pm »

¿Y si wiringPiSetup falla?
La función, según cuentan aquí (http://wiringpi.com/reference/setup/) devuelve un valor de retorno indicando si hay error. Deberías usar eso antes de continuar con tu programa.
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
juligarc10

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #8 en: 11 Noviembre 2018, 21:36 pm »

¿Y si wiringPiSetup falla?
La función, según cuentan aquí (http://wiringpi.com/reference/setup/) devuelve un valor de retorno indicando si hay error. Deberías usar eso antes de continuar con tu programa.

Hola,

Perdona, no entiendo a que te refieres con "usar eso antes de continuar con tu programa" :o.

En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.479



Ver Perfil
Re: Violación de segmento de código en c++ (sin punteros)
« Respuesta #9 en: 11 Noviembre 2018, 21:42 pm »

En que mires si se ha producido un error durante el setup. Sí ocurre detener el programa o hacer algo. Igual que cuando pides memoria con malloc o new y te devuelven NULL.
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con violación de segmento « 1 2 »
Programación C/C++
Triper0 17 13,119 Último mensaje 8 Noviembre 2015, 21:34 pm
por alesurf1989
ayuda violacion de segmento?
Programación General
nightcode 7 2,330 Último mensaje 31 Diciembre 2013, 18:32 pm
por nightcode
Violación de Segmento
Programación C/C++
Jaquieline_JJ 1 970 Último mensaje 24 Abril 2014, 04:11 am
por engel lex
Violacion segmento en C Linux
Programación C/C++
Xin_J.D 2 956 Último mensaje 31 Marzo 2018, 00:33 am
por BloodSharp
Violación de segmento en sockets « 1 2 »
Programación C/C++
e 10 1,675 Último mensaje 17 Julio 2018, 20:50 pm
por e
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines