problemas de asignación de memoria en tarjetas ARM

0

¿El uso de la API de asignación de memoria como calloc / malloc causa problemas en tableros basados en ARM? Recientemente enfrenté un problema en el que usé calloc (1024 bytes) y este búfer se usó en muchas funciones en un solo archivo fuente. Observé que la salida de una función en particular variaba aleatoriamente cuando se usaba el calloc, pero cuando cambié a una matriz fija, el problema nunca apareció. Por lo tanto, me pregunto si calloc tiene alguna limitación en una pequeña placa de huella de memoria.

    
pregunta Abhijit K Rao

2 respuestas

2

Suponiendo que no obtiene un error de devolución del calloc / malloc, las probabilidades son aproximadamente de 9999 a una en que tiene un error, ya sea por el mal uso del malloc, el mal uso del espacio asignado, las secciones de memoria incorrectas o la ubicación porque los búferes fijos y mal ubicados tendrán direcciones diferentes.

    
respondido por el Martin James
1

Esto depende de su biblioteca de C, que a su vez depende de su compilador y el dispositivo ARM elegido.

Si está usando Linux incorporado en ARM con glibc / uclibc, entonces no debería tener problemas con malloc.

Si está programando "en el metal" con un libc limitado, debe consultar la documentación para ver qué tan bien es compatible con malloc. Es posible que deba configurar el montón en el código de inicio de C.

    
respondido por el Toby Jaffey

Lea otras preguntas en las etiquetas