⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scmain.lst

📁 psoc_usb的代码,用来小卡测试的.没事下下来
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.06   SCMAIN                                                                01/31/2008 22:24:27 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE SCMAIN
OBJECT MODULE PLACED IN scmain.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE scmain.c OPTIMIZE(9,SPEED) MODDP2 INCDIR(C:\Cypress\USB\Targe
                    -t\Inc) DEFINE(__USE_USB__) DEBUG OBJECTEXTEND

line level    source

   1          //-----------------------------------------------------------------------------
   2          // File Name:           scmain program
   3          // Description:         use ezusb to test smallcard
   4          //
   5          // Copyright:           Inventec Electronics(Tianjin) Co., Ltd.
   6          // $Archive:        scmain.c
   7          // $Date:           2007-12-06
   8          // $Revision:       1.00
   9          //
  10          //-----------------------------------------------------------------------------
  11          // Copyright 2006, xsh.han@itc.inventec
  12          //-----------------------------------------------------------------------------
  13          #include <stdio.h>
  14          #include <stdlib.h>
  15          #include <string.h>
  16          #include <ctype.h>
  17          
  18          #include "scmain.h"
  19          #include "cmdlist.h"
  20          #include "serial.h"
  21          #include "boards.h"
  22          
  23          //------------------------------------------------------------------------------
  24          //function prototype
  25          //------------------------------------------------------------------------------
  26          int do_handshake(void);
  27          int do_select(void);
  28          char *get_current_cmd(char * buff);
  29          char *lookup_return_str(int ret_cmd);
  30          int lookup_return_val(struct command_param *pm, char *cmd_str);
  31          int (*lookup_command_func(struct command_name *pcmd,char *cmd_str))();
  32          
  33          //------------------------------------------------------------------------------
  34          //global variable
  35          //------------------------------------------------------------------------------
  36          //function pointer for blinking function
  37          int (*fp_blinking)(unsigned char) = (int(*)(unsigned char))NULL;
  38          //function pointer for select card entry
  39          int (*fp_card_selected)(char*) = (int(*)(char *))NULL;
  40          
  41          
  42          //------------------------------------------------------------------------------
  43          //extern funtion prototype
  44          //------------------------------------------------------------------------------
  45          extern int do_show_help();
  46          
  47          //------------------------------------------------------------------------------
  48          //command function param
  49          //------------------------------------------------------------------------------
  50          const struct command_name xdata cmd_main[] = {
  51                  {"HANDSHAKE", do_handshake},
  52                  {"SELECT",    do_select},
  53                  {0, 0}
  54          };
C51 COMPILER V8.06   SCMAIN                                                                01/31/2008 22:24:27 PAGE 2   

  55          
  56          const struct command_param xdata return_param[] = {
  57                  {"ERROR :", RET_ERROR}, 
  58                  {"OK :",    RET_OK}, 
  59                  {"DONE :",  RET_DONE}, 
  60                  {"PASS :",  RET_PASS}, 
  61                  {"FAIL :",  RET_FAIL}, 
  62                  {"ON :",    RET_ON}, 
  63                  {"OFF :",   RET_OFF}, 
  64                  {0, 0}
  65          };
  66          
  67          //------------------------------------------------------------------------------
  68          //extern variable & function
  69          //------------------------------------------------------------------------------
  70          extern BYTE xdata g_in_buffer[];
  71          extern WORD xdata g_in_buffer_len;
  72          extern struct command_list *g_cmdlist;
  73          extern struct command_list *g_retlist;
  74          
  75          extern struct command_list *add_to_cmdlist(char * cmd);
  76          extern void free_cmdlist();
  77          extern struct command_list *add_to_retlist(char * cmd);
  78          extern void free_retlist();
  79          
  80          
  81          //--------------------------------------------------------------------------------
  82          //strcmp function for no case
  83          //--------------------------------------------------------------------------------
  84          char mydef_toupper(char c)
  85          {
  86   1          if (c>='a' && c<='z') {
  87   2              return(c&0xDF);
  88   2          }
  89   1          
  90   1          return c;
  91   1      }
  92          
  93          //--------------------------------------------------------------------------------
  94          //strcmp function for no case
  95          //--------------------------------------------------------------------------------
  96          int mydef_strcasecmp(char *dst, char *src)
  97          {
  98   1          char f,l;
  99   1      
 100   1          do {
 101   2              f = mydef_toupper(*(dst++));
 102   2              l = mydef_toupper(*(src++));
 103   2              //f = *(dst++);
 104   2              //l = *(src++);
 105   2              //f = mydef_toupper(f);
 106   2              //l = mydef_toupper(l);
 107   2          } while ( f && l && (f == l));
 108   1          
 109   1          return (f-l);    
 110   1      }
 111          
 112          //--------------------------------------------------------------------------------
 113          //receive shakehands command,just return ok. 
 114          //--------------------------------------------------------------------------------
 115          int do_handshake()
 116          {
C51 COMPILER V8.06   SCMAIN                                                                01/31/2008 22:24:27 PAGE 3   

 117   1          //PDEBUG("do_handshake:\r\n");
 118   1          return RET_OK;
 119   1      }
 120          
 121          //--------------------------------------------------------------------------------
 122          //receive select card command 
 123          //--------------------------------------------------------------------------------
 124          int do_select()
 125          {
 126   1          char cmd[MAX_CMD_LENGTH];
 127   1          int ret=0;
 128   1          
 129   1          //PDEBUG("do_select:\r\n");
 130   1          memset (cmd, '\0', sizeof (cmd));
 131   1          if (get_current_cmd(cmd)!=NULL){
 132   2              fp_card_selected = lookup_command_func(cmd_card_entry,cmd);
 133   2              if (fp_card_selected != NULL) {
 134   3                  //so card select command
 135   3                  ret = (*fp_card_selected)("SELECT");
 136   3                  return(ret);            
 137   3              }
 138   2          }
 139   1          
 140   1          //clear select card
 141   1          fp_card_selected = (int(*)(char *))NULL;
 142   1          return RET_ERROR;
 143   1      }
 144          
 145          //--------------------------------------------------------------------------------
 146          //lookup command
 147          //--------------------------------------------------------------------------------
 148          int (*lookup_command_func(struct command_name *pcmd,char *cmd_str))()
 149          {
 150   1              struct command_name *bp;
 151   1              
 152   1              for (bp = pcmd; bp->command != NULL; bp++){
 153   2                      if (mydef_strcasecmp(bp->command, cmd_str) == 0){
 154   3                              return (bp->fn);
 155   3                              //return(bp->fn());
 156   3                      }
 157   2              }
 158   1              return ((int (*)()) NULL);
 159   1              //return (-1);
 160   1      }
 161          
 162          //--------------------------------------------------------------------------------
 163          //lookup param
 164          //--------------------------------------------------------------------------------
 165          char *lookup_return_str(int ret_cmd)
 166          {
 167   1              struct command_param  *rp;
 168   1      
 169   1              for (rp = return_param; rp->name; rp++){
 170   2                      if (rp->val==ret_cmd){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -