亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cli.c

?? TDK 6521 SOC 芯片 DEMO程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************
 * This code and information is provided "as is" without warranty of any   *
 * kind, either expressed or implied, including but not limited to the     *
 * implied warranties of merchantability and/or fitness for a particular   *
 * purpose.                                                                *
 *                                                                         *
 * Copyright (C) 2005 Teridian Semiconductor Corp. All Rights Reserved.     *
 ***************************************************************************/
//*************************************************************************
//  DESCRIPTION: 71M652x POWER METER - Command Line Interface Routines.
// 
//  AUTHOR:  MTF
//
//  HISTORY: see below
//***************************************************************************
//  File: CLI.C
//       
#include "options.h"
#if CLI
#include <ctype.h>
#include "ce_dat.h"
#include "stm.h"
#include "main.h"
#include "batmodes.h"
#include "defaults.h"
#include "help.h"
#include "io.h"
#include "cli.h"

/*** Public variables declared within this module ***/
volatile uint8i_t cli_index;
         uint8i_t cli_result;

/*** Private functions declared within this module ***/
static void cmd_H (uint8_t c);          // '?'  Usage help
static void cmd_i (void);               // 'In' Information.
static void cmd_z (void);               // 'Z'  Reset.
static void send_version (void);

/*** Private variables declared within this module ***/
static int8r_t v1code_0[] = { ">" };
#if HELP
static int8r_t v1code_1[] = { "INVALID COMMAND.  TYPE \'??\' FOR HELP\r\n>" };
#else
static int8r_t v1code_1[] = { "INVALID COMMAND.\r\n>" };
#endif
static int8r_t v1code_2[] = { "PARITY ERROR.\r\n>" };
static int8r_t vlcode_3[] = { "NOTE: SESSION MAY HANG!  MATCH SERIAL RATE WITH NEW SETTINGS.\r\n"};
static int8r_t v1code_4[] = { "NO HELP AVAILABLE.\r\n"};
static int8r_t v1code_5[] = { "B>" };

static int8r_t * code v1_result[] = {
    v1code_0,         // CMD PROMPT
    v1code_1,         // ERROR.
    v1code_2,         // PARITY ERROR.
    vlcode_3,         // SERIAL RATE CHANGE WARNING
    v1code_4,         // No help available. 
    v1code_5          // BROWNOUT CMD PROMPT
};

// Exit control.
bool done (uint8d_t *c)
{
    uint8_t data d;

    *c = get_char_d (&d);
    if (*c == '\0')
       cli_index = d;                // Unget last character.

    return (*c == '\0' || *c == ';');
}

void cli (void)                      // Command Line Interpreter.
{
    uint8_t data d;

    set_result(OK_ID);
    
    while (cli_result == OK_ID && (!done (&d)) )
    {                                // Command processing.
       switch (toupper (d))
       {
          #if LOAD      
          case '@':                  // '@' Upload/Download record.
             cmd_download ();        
             break;
          #endif

          #if TRACE10 // in brownout, only 1 rate is ok
          case ' ':                  // Update Serial port bit rate.
             cmd_rate ();             
             break;
          #endif

          #if 0     // in the serial driver, parity and bits are static
          case '7':
             cmd_width_parity (7);    // '7' Serial port width, parity, stop bit controls.
             break;

          case '8':
             cmd_width_parity (8);    // '8' Serial port width, parity, stop bit controls.
             break;
          #endif
              
          #if TRACE10      
          case '!':                  // '!' CE Code Access.
             cmd_ce_code_access ();
             break;
          #endif

          case ']':                  // ']' CE Data Access.
             cmd_ce_data_access ();
             break;

          case ')':                  // ')' MPU Data Access.
             cmd_mpu_data_access ();
             break;

          #if BROWNOUT_BATMODE
          case 'B':
             cmd_batmode ();         // 'B' Battery modes.
             break;
          #endif

          case 'C':
             cmd_ce ();              // 'C' (C)ompute Engine controls.
             break;
                      
          #if 0  
          case 'D':
             cmd_lcd ();             // 'D' LC(D)isplay controls.
             break;
          #endif

          case 'E':                  
             switch(toupper( get_char_d (&d) ))
             {
             #if CLI_EEPROM   
             case 'E':
                 cmd_eeprom ();    // (EE)prom controls.
                 break;
             #endif
             #if ERROR_RECORDING  
             case 'R':
                 cmd_err_record ();    // error recording tests
                 break;
             #endif
             #if 0
             case 'I':
                 cmd_ext_ints ();  // 'EI' (E)xternal (I)terrupt controls.
                 break;
             default:
                 cli_index = d;       // Unget last character.
                 cmd_events ();    // 'E' (E)vent controls.
                 break;
             #else
             default:
                 break;
             #endif
             }
             break;

          #if FLASH
          case 'F':               
             cmd_flash ();           // 'F' (F)lash controls.
             break;
          #endif

          case 'I':               
             send_version ();
             break;

          #if LOAD
          case 'L':                  // 'L' (L)oad controls.
             cmd_load ();
             break;
          #endif

          case 'M':                  // 'M' (M)eter controls.
             cmd_meter ();
             break;

          case 'P':                  
             if ('S' == toupper (get_char_d (&d)))
                cmd_power_save ();    // 'PS' Power Save.
             #if PROFILE
             else
             { 
                cli_index = d;       // Unget last character.
                cmd_profile ();       // 'P' Meter Profile.
             }
             #endif
             break;

          case 'R':
             #if REAL_TIME_DATE
             if ('T' == toupper (get_char_d (&d)))
                cmd_rtc ();          // 'RT' (R)eal (T)ime Clock controls.
             else
             {
                cli_index = d;       // Unget last character.
                cmd_sfr ();          // 'R' Special Function (R)egisters.
             }
             #endif
             break;

          case 'S':                  // 'S' Serial controls.
             cmd_serial ();
             break;

          #if ENHANCED_TRIM
          case 'T':
             cmd_trim ();          
             break;
          #endif

          case 'W':
             send_a_result (OK_ID);  // Defaults to 'OK'.
             stm_wait ( milliseconds(300) ); // let the typing echo
             EA = 0;
             while (TRUE)            // watchdog reset
                 ;
             break;

          case 'Z':
             send_a_result (OK_ID);  // Defaults to 'OK'.
             stm_wait ( milliseconds(300) ); // let the typing echo
             switch (get_num ())
             {
             default:
             case 0:
                 main_soft_reset ();
                 break;
             case 1:
                 EA = 0;
                 while (TRUE)        // watchdog reset
                     ;
                 break;
             #if HARD_RESET_USABLE
             case 2:
                 USER1 += 1;         // assumes DIO_8 wired to reset
                 break;
             #endif
             }

          case '?':
             #if HELP
             if ('\0' == toupper (d = get_char ()))
                send_help (Usage);
             else
                cmd_H (d);
             #else
             set_result(NO_HELP_AVAIL_ID);
             #endif
             break;
                 
          case '~':
          default:
             set_result(ERROR_ID);
             break;
       } 
    }     

    cli_index = CLI_BASE;
    send_result ();
} // end cli

// Send passed result code to UART.
void send_a_result (uint8_t c)
{
    #if BROWNOUT_BATMODE
    if (c == OK_ID && batmode_is_brownout ())
        c = OK_BROWNOUT_ID; // display B>
    #endif
    start_tx_rslt (v1_result[ c - 1 ]);
}

// Looks up result code, primes pump for result codes.
void send_result (void)
{
    send_a_result(cli_result);
    if (cli_result != OK_ID)
        send_a_result (OK_ID);  // reprompt after an error
}

// Sends the copyright data
void send_copyright (void)
{
     start_tx_rslt (copyright1);

     #if ENHANCED_TRIM
     if (0 != Read_Trim (_TRIMBGB))
         start_tx_rslt("H");
     #endif

     start_tx_rslt("A");
     send_byte (VERSION);
     start_tx_rslt (copyright2);
     send_crlf ();
}

// Sends all the version data
void send_version (void)
{
     send_crlf ();
     start_tx_rslt (r_demo_version);       send_crlf ();
     start_tx_rslt ((uint8r_t *) &CeData[0] ); send_crlf ();
     send_copyright ();
}

#if HELP
void send_help (int8r_t * code *s)
{
    while (*s != NULL)
    {
        send_crlf ();
        start_tx_rslt (*s++);
    }

    send_crlf ();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利一区二区三区免费视频| 狠狠色综合日日| 波多野结衣中文字幕一区| 26uuu欧美| 激情综合亚洲精品| 日韩一区二区免费电影| 日本美女一区二区| 91麻豆精品国产91久久久久| 亚洲成av人片在线观看无码| 欧美日韩另类一区| 午夜成人免费电影| 欧美精三区欧美精三区| 亚洲第一综合色| 欧美精品 日韩| 日本aⅴ免费视频一区二区三区| 91精品综合久久久久久| 奇米精品一区二区三区在线观看一| 5月丁香婷婷综合| 日韩国产精品久久久久久亚洲| 欧美一区二区三区色| 日本大胆欧美人术艺术动态| 日韩欧美第一区| 韩国一区二区在线观看| 久久久国产综合精品女国产盗摄| 国产精品一级片| 韩国成人在线视频| 久久久久国产精品厨房| 成人美女在线视频| 亚洲视频在线观看一区| 欧美影视一区在线| 日本欧美加勒比视频| 精品欧美乱码久久久久久 | 午夜精品久久久久久久99水蜜桃 | 国产欧美视频一区二区三区| 国产九九视频一区二区三区| 国产欧美日韩另类一区| 91无套直看片红桃| 亚洲成人午夜影院| 精品美女在线播放| 成人一区二区三区| 亚洲精品高清视频在线观看| 欧美日韩在线播| 免费视频一区二区| 国产欧美一区二区三区鸳鸯浴| 91免费国产在线| 五月综合激情日本mⅴ| 精品久久久久一区二区国产| 成人听书哪个软件好| 亚洲综合自拍偷拍| 欧美大片顶级少妇| 成人成人成人在线视频| 亚洲国产成人tv| 久久久青草青青国产亚洲免观| eeuss鲁片一区二区三区| 91小视频在线观看| 丝袜诱惑亚洲看片| 久久久影院官网| 在线一区二区观看| 激情五月婷婷综合网| 中文字幕亚洲区| 欧美一个色资源| 99久久久久久| 老司机精品视频导航| 高清不卡一区二区在线| 亚洲欧美在线视频观看| 欧美日韩午夜在线| 国产福利一区二区三区视频 | 麻豆精品视频在线| 国产精品女上位| 7777精品久久久大香线蕉| 国产老妇另类xxxxx| 亚洲国产精品尤物yw在线观看| 亚洲精品一区二区三区福利| 91丨porny丨在线| 精品在线免费视频| 亚洲一区av在线| 中文字幕第一区第二区| 91精品在线一区二区| 99这里都是精品| 麻豆国产欧美日韩综合精品二区| 日韩码欧中文字| 精品国产麻豆免费人成网站| 色综合天天性综合| 国产盗摄精品一区二区三区在线| 亚洲成人动漫一区| 亚洲欧洲国产日本综合| 精品成人免费观看| 欧美日韩免费观看一区三区| av一本久道久久综合久久鬼色| 欧美性一区二区| 波波电影院一区二区三区| 久久99久久99| 亚洲123区在线观看| 色哟哟国产精品免费观看| 精品一区二区在线看| 亚洲综合激情小说| 国产午夜一区二区三区| 欧美一卡二卡三卡| 精品视频免费在线| 91小视频免费观看| 成人黄色在线视频| 久久激情五月激情| 日日摸夜夜添夜夜添精品视频| 亚洲欧美激情插| 国产精品欧美极品| 国产日韩欧美精品综合| 欧美一区二区三区四区五区| 在线观看日韩精品| 91老师片黄在线观看| 成人动漫一区二区三区| 国产精品99久久久久久似苏梦涵 | 日韩午夜av电影| 欧洲一区二区av| 色综合天天综合狠狠| 不卡的av电影| 成人在线视频首页| 国产成人一区二区精品非洲| 麻豆极品一区二区三区| 日韩av一区二区在线影视| 一区二区在线电影| 一区二区三区四区不卡在线| 亚洲色图20p| 一本在线高清不卡dvd| 亚洲日本电影在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品看片你懂得| 国产亚洲精品久| 国产亚洲一二三区| 国产午夜精品一区二区三区嫩草 | 国产精品自拍网站| 精品午夜久久福利影院| 久久超碰97中文字幕| 老司机午夜精品99久久| 毛片基地黄久久久久久天堂| 蜜臀a∨国产成人精品| 麻豆一区二区在线| 精品一区二区三区欧美| 极品少妇一区二区三区精品视频| 男女男精品视频| 久久99在线观看| 国产乱对白刺激视频不卡| 国产suv一区二区三区88区| 丰满亚洲少妇av| av一二三不卡影片| 91国产免费看| 欧美日韩国产色站一区二区三区| 91精品婷婷国产综合久久 | 欧美三级日韩三级国产三级| 欧美午夜免费电影| 51精品国自产在线| 欧美成人伊人久久综合网| 久久久噜噜噜久久人人看| 欧美国产日本视频| 国产欧美日韩三级| 国产午夜亚洲精品羞羞网站| 亚洲国产精华液网站w| 日韩理论在线观看| 亚洲国产一区二区在线播放| 爽好久久久欧美精品| 九色综合国产一区二区三区| 国产精品99久久久| 一本大道av伊人久久综合| 欧洲精品视频在线观看| 欧美一区二区三区小说| 国产日韩欧美综合一区| 亚洲乱码日产精品bd| 视频在线观看91| 国产精品一区二区果冻传媒| 99久久久国产精品免费蜜臀| 欧美三级在线播放| 精品久久99ma| 亚洲色图欧美偷拍| 日韩1区2区日韩1区2区| 国产精品综合在线视频| 日本电影欧美片| 欧美大度的电影原声| 国产精品国产三级国产aⅴ入口| 亚洲图片欧美视频| 激情综合网最新| 色一情一乱一乱一91av| 日韩西西人体444www| 国产精品三级电影| 婷婷综合久久一区二区三区| 国产精品 欧美精品| 日本电影欧美片| 久久久久久一级片| 色综合av在线| 日韩精品自拍偷拍| ●精品国产综合乱码久久久久| 亚洲成av人片在线| 成人一级片网址| 欧美丰满一区二区免费视频| 国产蜜臀av在线一区二区三区| 亚洲自拍偷拍网站| 国产精品小仙女| 欧美精品一级二级三级| 国产精品三级av| 中文字幕精品一区二区精品绿巨人| 一区二区免费看| 国产乱国产乱300精品|