mirror of
http://180.163.74.83:13000/zhangzhenghao/AP05.git
synced 2025-12-13 07:14:30 +00:00
替换部分system执行,reboot前做同步,取消日志记录,来判断内核崩溃问题是否解决
This commit is contained in:
parent
d1a6d12878
commit
2f9147f5ff
@ -60,11 +60,13 @@ int debug_print(const char *__restrict format, ...)
|
||||
va_end(valist);
|
||||
|
||||
printf("%s", buffer);
|
||||
/*
|
||||
char opTime[16]={0};
|
||||
char logFileName[32]={0};
|
||||
getDayStr(opTime,16);
|
||||
sprintf(logFileName,"Log.%s",opTime);
|
||||
buffer_to_file(logFileName,buffer,strlen(buffer),"a");
|
||||
*/
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
134
main.c
134
main.c
@ -348,24 +348,84 @@ void otaAp(){
|
||||
}
|
||||
}
|
||||
|
||||
void enableWatchDog(){
|
||||
system("echo 1 > /sys/class/gpio/export");//watchdog enable pin SGM820
|
||||
system("echo 112 > /sys/class/gpio/export");//feed watchdog pin 112
|
||||
system("echo out > /sys/class/gpio/gpio1/direction");
|
||||
system("echo out > /sys/class/gpio/gpio112/direction");
|
||||
system("echo 1 > /sys/class/gpio/gpio1/value");
|
||||
void enableWatchDog() {
|
||||
int fd;
|
||||
char path[64];
|
||||
char value[2];
|
||||
|
||||
// Enable watchdog pin SGM820
|
||||
fd = open("/sys/class/gpio/export", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("Failed to open gpio export: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
write(fd, "1", 1);
|
||||
close(fd);
|
||||
|
||||
// Enable feed watchdog pin
|
||||
fd = open("/sys/class/gpio/export", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("Failed to open gpio export: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
write(fd, "112", 3);
|
||||
close(fd);
|
||||
|
||||
// Set gpio1 direction
|
||||
fd = open("/sys/class/gpio/gpio1/direction", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("Failed to open gpio1 direction: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
write(fd, "out", 3);
|
||||
close(fd);
|
||||
|
||||
// Set gpio112 direction
|
||||
fd = open("/sys/class/gpio/gpio112/direction", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("Failed to open gpio112 direction: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
write(fd, "out", 3);
|
||||
close(fd);
|
||||
|
||||
// Set gpio1 value
|
||||
fd = open("/sys/class/gpio/gpio1/value", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("Failed to open gpio1 value: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
write(fd, "1", 1);
|
||||
close(fd);
|
||||
|
||||
LOG_I("enable watchdog\n");
|
||||
system("echo 1 > /sys/class/gpio/gpio112/value");
|
||||
|
||||
// Set gpio112 value
|
||||
fd = open("/sys/class/gpio/gpio112/value", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("Failed to open gpio112 value: %s\n", strerror(errno));
|
||||
return;
|
||||
}
|
||||
write(fd, "1", 1);
|
||||
close(fd);
|
||||
}
|
||||
|
||||
void feedWatchDog(){
|
||||
while(1){
|
||||
//LOG_I("feed watchdog\n");
|
||||
system("echo 0 > /sys/class/gpio/gpio112/value");
|
||||
void feedWatchDog() {
|
||||
int fd = open("/sys/class/gpio/gpio112/value", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("can not open watchdog gpio112\n");
|
||||
return;
|
||||
}
|
||||
|
||||
while(1) {
|
||||
write(fd, "0", 1);
|
||||
usleep(100*1000);
|
||||
system("echo 1 > /sys/class/gpio/gpio112/value");
|
||||
write(fd, "1", 1);
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
close(fd);
|
||||
return;
|
||||
}
|
||||
|
||||
void rebootSystem(void){
|
||||
@ -375,7 +435,6 @@ void rebootSystem(void){
|
||||
time_t timep;
|
||||
time (&timep);
|
||||
result = localtime(&timep);
|
||||
//printf("%d:%d:%d\n",result->tm_hour, result->tm_min, result->tm_sec);
|
||||
if(result->tm_hour==0 && result->tm_min==0 && result->tm_sec==10){
|
||||
isTimeToReboot=true;
|
||||
LOG_I("prepare to reboot\n");
|
||||
@ -383,7 +442,7 @@ void rebootSystem(void){
|
||||
}
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
system("sync");
|
||||
system("reboot");
|
||||
}
|
||||
|
||||
@ -1765,7 +1824,7 @@ void *thread_mqtt_recv(void *arg){
|
||||
sleep(15);
|
||||
system("unzip ota/tx_ota.zip");
|
||||
system("mv tx_ota/* ota");
|
||||
system("rm -fr tx_ota");
|
||||
system("rm -fr tx_ota");
|
||||
system("mv ota/start.sh /root");
|
||||
system("sync");
|
||||
sleep(1);
|
||||
@ -2093,19 +2152,62 @@ int main(int argc, char *argv[])
|
||||
pthread_t timeout_thread; // 添加超时检测线程变量
|
||||
|
||||
LOG_I("version:%s\n",softwareVersion);
|
||||
#if 1
|
||||
system("insmod /system/lib/modules/wk2xxx_spi.ko");
|
||||
//system("busybox udhcpc -i eth0");
|
||||
|
||||
// 设置时区为 Asia/Shanghai,直接修改 /etc/localtime 软链接
|
||||
unlink("/etc/localtime");
|
||||
symlink("/usr/share/zoneinfo/Asia/Shanghai", "/etc/localtime");
|
||||
|
||||
// 导出 GPIO 63
|
||||
{
|
||||
int fd = open("/sys/class/gpio/export", O_WRONLY);
|
||||
if (fd >= 0) {
|
||||
write(fd, "63", 2);
|
||||
close(fd);
|
||||
}
|
||||
}
|
||||
// 设置 GPIO 63 方向为 in
|
||||
{
|
||||
int fd = open("/sys/class/gpio/gpio63/direction", O_WRONLY);
|
||||
if (fd >= 0) {
|
||||
write(fd, "in", 2);
|
||||
close(fd);
|
||||
}
|
||||
}
|
||||
// 导出 GPIO 113
|
||||
{
|
||||
int fd = open("/sys/class/gpio/export", O_WRONLY);
|
||||
if (fd >= 0) {
|
||||
write(fd, "113", 3);
|
||||
close(fd);
|
||||
}
|
||||
}
|
||||
// 设置 GPIO 113 方向为 out
|
||||
{
|
||||
int fd = open("/sys/class/gpio/gpio113/direction", O_WRONLY);
|
||||
if (fd >= 0) {
|
||||
write(fd, "out", 3);
|
||||
close(fd);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if 0
|
||||
system("insmod /system/lib/modules/wk2xxx_spi.ko");
|
||||
system("busybox udhcpc -i eth0");
|
||||
system("timedatectl set-timezone Asia/Shanghai");
|
||||
system("echo 63 > /sys/class/gpio/export");//reset key
|
||||
system("echo in > /sys/class/gpio/gpio63/direction");
|
||||
system("echo 113 > /sys/class/gpio/export");//pin 113 yellow
|
||||
system("echo out > /sys/class/gpio/gpio113/direction");
|
||||
#endif
|
||||
uart_open(&uartSend,"/dev/ttyS0");//GT U12 ttyS0,U14 ttyS4,U21 ttysWK0 U13 ttysWK1 U15 ttysWK2 U22 ttysWK3 U20 ttyS1
|
||||
uart_init(&uartSend,115200,8,1,'N',0);
|
||||
uart_open(&uartRecvData,"/dev/ttyS4");//DT
|
||||
uart_init(&uartRecvData,115200,8,1,'N',0);
|
||||
uart_open(&uartRecvBack,"/dev/ttysWK0");//HT
|
||||
uart_init(&uartRecvBack,115200,8,1,'N',0);
|
||||
|
||||
#if 0
|
||||
struct dma_config cfg = {
|
||||
.buf = malloc(256),
|
||||
|
||||
@ -192,7 +192,13 @@ json_error:
|
||||
}
|
||||
|
||||
void mqtt_net_failure(int *failure_times){
|
||||
system("echo 0 > /sys/class/gpio/gpio113/value");
|
||||
int fd = open("/sys/class/gpio/gpio113/value", O_WRONLY);
|
||||
if (fd < 0) {
|
||||
LOG_I("Failed to open gpio113 value: %s\n", strerror(errno));
|
||||
} else {
|
||||
write(fd, "0", 1);
|
||||
close(fd);
|
||||
}
|
||||
if(failure_times != NULL){
|
||||
(*failure_times)++;
|
||||
LOG_I("mqtt net failure_times = %d\n", *failure_times);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user