• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

249
Vistas
Escribir en NVRAM a través de unsigned char* y unsigned int*

Estoy desarrollando bajo una placa integrada de Linux. Tengo una NVRAM donde almacena todos mis datos sensibles. Logré acceder a él a través de mmap /dev/mem, ahora el problema es escribir, a través de un puntero char * sin firmar no hay problema, pero necesito escribir una estructura completa, por ejemplo:

 struct t_game_data { int energy; int bet; int coin; };

después de mapear mi memoria con:

 unsigned char* mem_ptr = (unsigned char*)mmap((void *)0x0, 512*1024, PROT_READ | PROT_WRITE,MAP_SHARED, fd, 0x90600000);

Puedo escribir en NVRAM sin problemas a través de mem_ptr:

 *mem_ptr++ = 1; *mem_ptr++ = 2; *mem_ptr++ = 3; mem_ptr++; *mem_ptr++ = 4; // What i get reading NVRAM is(NVRAM is filled with 255 by default) 1 2 3 255 4

Pero si trato de hacer algo como esto:

 t_game_data* data = (t_game_data*)mmap((void *)0x0,512*1024, PROT_READ |PROT_WRITE, MAP_SHARED, fd, 0x90600000);

Cuando trato de usar datos para escribir, no puedo escribir en NVRAM correctamente, así que traté de usar un int * sin firmar solo para entender el problema y obtuve algo realmente extraño:

 unsigned int* mem_ptr_int = (unsigned int*)mmap((void *)0x0, 512*1024, PROT_READ | PROT_WRITE,MAP_SHARED, fd, 0x90600000); *mem_ptr_int++ = 1; *mem_ptr_int++ = 2; *mem_ptr_int++ = 3; mem_ptr_int++; *mem_ptr_int++ = 4; // What i get reading NVRAM is(NVRAM is filled with 255 by default) 0 255 255 255 0 255 255 255 0 255 255 255 255 255 255 255 0

Tal vez haya algún problema con el direccionamiento. Espero que no sea un límite físico de hw;

Gracias de antemano.

about 3 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda