sdk-hwV1.3/external/eyesee-mpp/system/public/reboot_efex/reboot_efex.cpp

52 lines
1.1 KiB
C++
Executable File

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#define MISK_PARTITON_NAND "/dev/nandf"
#define MISK_PARTITON_NOR "/dev/mtdblock6"
int reboot_efex(void)
{
int flash_handle = 0;
int len = 0;
char command[32] = "efex";
memset(command, 0x00, sizeof(command));
strcpy(command, "efex");
if (access(MISK_PARTITON_NOR, F_OK) == 0) {
printf("[nor] reboot efex\n");
flash_handle = open(MISK_PARTITON_NOR, O_RDWR);
} else if (access(MISK_PARTITON_NAND, F_OK) == 0) {
printf("[nand] reboot efex\n");
flash_handle = open(MISK_PARTITON_NAND, O_RDWR);
} else {
printf("[nor] try nor reboot efex\n");
flash_handle = open(MISK_PARTITON_NOR, O_RDWR);
}
if (flash_handle < 0) {
fprintf(stderr,"%s:open fail,line=%d\n",__func__,__LINE__);
return -1;
}
len = write(flash_handle, &command[0], sizeof(command));
if (len < 0) {
fprintf(stderr,"%s:write fail,line=%d\n",__func__,__LINE__);
return -1;
}
sync();
close(flash_handle);
system("reboot");
return 0;
}
int main(int argc, char *argv[])
{
reboot_efex();
return 0;
}