?? usmart.h
字號:
#ifndef __USMART_H
#define __USMART_H
#include "usmart_str.h"
//////////////////////////////////////////////////////////////////////////////////
//本程序只供學習使用,未經作者許可,不得用于其它任何用途
//ALIENTEK STM32開發板
//正點原子@ALIENTEK
//技術論壇:www.openedv.com
//修改日期:2011/6/13
//版本:V2.0
//版權所有,盜版必究。
//Copyright(C) 正點原子 2011-2021
//All rights reserved
//********************************************************************************
//升級說明
//V1.4
//增加了對參數為string類型的函數的支持.適用范圍大大提高.
//優化了內存占用,靜態內存占用為79個字節@10個參數.動態適應數字及字符串長度
//V2.0,
//1,修改了list指令,打印函數的完整表達式.
//2,增加了id指令,打印每個函數的入口地址.
//3,修改了參數匹配,支持函數參數的調用(輸入入口地址).
//4,增加了函數名長度宏定義.
/////////////////////////////////////////////////////////////////////////////////////
//USMART資源占用情況@MDK 3.80A:
//FLASH:2492字節~3152字節(通過USMART_USE_HELP設置)
//SRAM:72字節(最少的情況下)
//SRAM計算公式: SRAM=PARM_LEN+72-4 其中PARM_LEN必須大于等于4.
//應該保證堆棧不小于100個字節.
////////////////////////////////////////////用戶配置參數////////////////////////////////////////////////////
#define MAX_FNAME_LEN 30 //函數名最大長度,應該設置為不小于最長函數名的長度。
#define MAX_PARM 10 //最大為10個參數 ,修改此參數,必須修改usmart_exe與之對應.
#define PARM_LEN 4 //所有參數之和的長度不超過PARM_LEN個字節,注意串口接收部分要與之對應(不小于PARM_LEN)
#define USMART_USE_HELP 1 //使用幫助,該值設為0,可以節省近700個字節,但是將導致無法顯示幫助信息。
///////////////////////////////////////////////END///////////////////////////////////////////////////////////
#define USMART_OK 0 //無錯誤
#define USMART_FUNCERR 1 //函數錯誤
#define USMART_PARMERR 2 //參數錯誤
#define USMART_PARMOVER 3 //參數溢出
#define USMART_NOFUNCFIND 4 //未找到匹配函數
//函數名列表 struct _m_usmart_nametab{ void* func; //函數指針 const u8* name; //函數名(查找串) };
//usmart控制管理器
struct _m_usmart_dev
{
struct _m_usmart_nametab *funs; //函數名指針
void (*init)(void); //初始化
u8 (*cmd_rec)(u8*str); //識別函數名及參數
void (*exe)(void); //執行
void (*scan)(void); //掃描
u8 fnum; //函數數量
u8 pnum; //參數數量
u8 id; //函數id
u16 parmtype; //參數的類型
u8 plentbl[MAX_PARM]; //每個參數的長度暫存表
u8 parm[PARM_LEN]; //函數的參數
};
extern struct _m_usmart_nametab usmart_nametab[]; //在usmart_config.c里面定義
extern struct _m_usmart_dev usmart_dev; //在usmart_config.c里面定義
void usmart_init(void); //初始化
u8 usmart_cmd_rec(u8*str); //識別
void usmart_exe(void); //執行
void usmart_scan(void); //掃描
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -