zoukankan      html  css  js  c++  java
  • learning uboot auto switch to stanbdy system in qca4531 cpu

    design:

       when uboot load kerne failed,we can switch to stanbdy system;

    how to realize:

      when boot fail, we can let uboot env bootKenrelFailCount++, then save to uboot_env partiton.

        watchdog timeout will trigger cpu reset, when bootKernelFailCount bigger than a fixed number

      we can realize switch to stanbdy system

    reference code:

    void bootKernelFailProcess(){

            char buf[100]=0;

            char *s;

            int bootKernelFailCount =0;

            s=getenv("bootKernelFailCount");

            bootKernelFailCount =++atoi(s);

            sprintf(buf,"setenv bootKernelFailCount %d", bootKernelFailCount);

            run_command(buf,0);

            run_command("saveenv",0);

    }

    void changeBootslotFunction(){

            char buf[100]=0;

            int bootslot=0;

            s=getenv("bootslot");

            bootslot=atoi(s)^1;

            sprintf(buf,"setenv bootslot %d",bootslot);

            run_command(buf,0);

            run_command("saveenv",0);

    }

    void bootKernelFailCountDetect(){

            if( atoi(getenv("bootKernelfailCount ")) > 2 ){

                    run_command("setenv bootKernelFailCount  0",0);

                    changeBootslotFunction();

            }

    }

  • 相关阅读:
    Java 类加载、调用构造器、执行方法的过程
    flink定义各类source
    flink个人基础笔记
    flink任务提交流程
    Flink 命令
    Flink开发环境搭建(idea2019)
    Flink集群部署
    canal开启状态,但是不能生产数据到kafka,问题解决
    Cannal单节点部署
    kafka单节点部署
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/10245576.html
Copyright © 2011-2022 走看看