#include "usmart.h" #include "uart.h" ////////////////////////////////////////////////////////////////////////////////// //±¾³ÌÐòÖ»¹©Ñ§Ï°Ê¹Óã¬Î´¾­×÷ÕßÐí¿É£¬²»µÃÓÃÓÚÆäËüÈκÎÓÃ; //ALIENTEK STM32¿ª·¢°å //ÕýµãÔ­×Ó@ALIENTEK //¼¼ÊõÂÛ̳:www.openedv.com //°æ±¾£ºV3.1 //°æÈ¨ËùÓУ¬µÁ°æ±Ø¾¿¡£ //Copyright(C) ÕýµãÔ­×Ó 2011-2021 //All rights reserved //******************************************************************************** //Éý¼¶ËµÃ÷ //V1.4 //Ôö¼ÓÁ˶ԲÎÊýΪstringÀàÐ͵ĺ¯ÊýµÄÖ§³Ö.ÊÊÓ÷¶Î§´ó´óÌá¸ß. //ÓÅ»¯ÁËÄÚ´æÕ¼ÓÃ,¾²Ì¬ÄÚ´æÕ¼ÓÃΪ79¸ö×Ö½Ú@10¸ö²ÎÊý.¶¯Ì¬ÊÊÓ¦Êý×Ö¼°×Ö·û´®³¤¶È //V2.0 //1,ÐÞ¸ÄÁËlistÖ¸Áî,´òÓ¡º¯ÊýµÄÍêÕû±í´ïʽ. //2,Ôö¼ÓÁËidÖ¸Áî,´òӡÿ¸öº¯ÊýµÄÈë¿ÚµØÖ·. //3,ÐÞ¸ÄÁ˲ÎÊýÆ¥Åä,Ö§³Öº¯Êý²ÎÊýµÄµ÷ÓÃ(ÊäÈëÈë¿ÚµØÖ·). //4,Ôö¼ÓÁ˺¯ÊýÃû³¤¶Èºê¶¨Òå. //V2.1 20110707 //1,Ôö¼Ódec,hexÁ½¸öÖ¸Áî,ÓÃÓÚÉèÖòÎÊýÏÔʾ½øÖÆ,¼°Ö´ÐнøÖÆ×ª»». //×¢:µ±dec,hex²»´ø²ÎÊýµÄʱºò,¼´É趨ÏÔʾ²ÎÊý½øÖÆ.µ±ºó¸ú²ÎÊýµÄʱºò,¼´Ö´ÐнøÖÆ×ª»». //Èç:"dec 0XFF" Ôò»á½«0XFFתΪ255,ÓÉ´®¿Ú·µ»Ø. //Èç:"hex 100" Ôò»á½«100תΪ0X64,ÓÉ´®¿Ú·µ»Ø //2,ÐÂÔöusmart_get_cmdnameº¯Êý,ÓÃÓÚ»ñȡָÁîÃû×Ö. //V2.2 20110726 //1,ÐÞÕýÁËvoidÀàÐͲÎÊýµÄ²ÎÊýͳ¼Æ´íÎó. //2,ÐÞ¸ÄÊý¾ÝÏÔʾ¸ñʽĬÈÏΪ16½øÖÆ. //V2.3 20110815 //1,È¥µôÁ˺¯ÊýÃûºó±ØÐë¸ú"("µÄÏÞÖÆ. //2,ÐÞÕýÁË×Ö·û´®²ÎÊýÖв»ÄÜÓÐ"("µÄbug. //3,ÐÞ¸ÄÁ˺¯ÊýĬÈÏÏÔʾ²ÎÊý¸ñʽµÄÐ޸ķ½Ê½. //V2.4 20110905 //1,ÐÞ¸ÄÁËusmart_get_cmdnameº¯Êý,Ôö¼Ó×î´ó²ÎÊý³¤¶ÈÏÞÖÆ.±ÜÃâÁËÊäÈë´íÎó²ÎÊýʱµÄËÀ»úÏÖÏó. //2,Ôö¼ÓUSMART_ENTIM4_SCANºê¶¨Òå,ÓÃÓÚÅäÖÃÊÇ·ñʹÓÃTIM2¶¨Ê±Ö´ÐÐscanº¯Êý. //V2.5 20110930 //1,ÐÞ¸Äusmart_initº¯ÊýΪvoid usmart_init(u8 sysclk),¿ÉÒÔ¸ù¾ÝϵͳƵÂÊ×Ô¶¯É趨ɨÃèʱ¼ä.(¹Ì¶¨100ms) //2,È¥µôÁËusmart_initº¯ÊýÖеÄuart_initº¯Êý,´®¿Ú³õʼ»¯±ØÐëÔÚÍⲿ³õʼ»¯,·½±ãÓû§×ÔÐйÜÀí. //V2.6 20111009 //1,Ôö¼ÓÁËread_addrºÍwrite_addrÁ½¸öº¯Êý.¿ÉÒÔÀûÓÃÕâÁ½¸öº¯Êý¶ÁдÄÚ²¿ÈÎÒâµØÖ·(±ØÐëÊÇÓÐЧµØÖ·).¸ü¼Ó·½±ãµ÷ÊÔ. //2,read_addrºÍwrite_addrÁ½¸öº¯Êý¿ÉÒÔͨ¹ýÉèÖÃUSMART_USE_WRFUNSΪÀ´Ê¹Äܺ͹رÕ. //3,ÐÞ¸ÄÁËusmart_strcmp,ʹÆä¹æ·¶»¯. //V2.7 20111024 //1,ÐÞÕýÁË·µ»ØÖµ16½øÖÆÏÔʾʱ²»»»ÐеÄbug. //2,Ôö¼ÓÁ˺¯ÊýÊÇ·ñÓзµ»ØÖµµÄÅжÏ,Èç¹ûûÓзµ»ØÖµ,Ôò²»»áÏÔʾ.Óзµ»ØÖµÊ±²ÅÏÔʾÆä·µ»ØÖµ. //V2.8 20111116 //1,ÐÞÕýÁËlistµÈ²»´ø²ÎÊýµÄÖ¸Áî·¢Ëͺó¿ÉÄܵ¼ÖÂËÀ»úµÄbug. //V2.9 20120917 //1,ÐÞ¸ÄÁËÐÎÈ磺void*xxx(void)ÀàÐͺ¯Êý²»ÄÜʶ±ðµÄbug¡£ //V3.0 20130425 //1,ÐÂÔöÁË×Ö·û´®²ÎÊý¶ÔתÒå·ûµÄÖ§³Ö¡£ //V3.1 20131120 //1,Ôö¼ÓruntimeϵͳָÁî,¿ÉÒÔÓÃÓÚͳ¼Æº¯ÊýÖ´ÐÐʱ¼ä. //Ó÷¨: //·¢ËÍ:runtime 1 ,Ôò¿ªÆôº¯ÊýÖ´ÐÐʱ¼äͳ¼Æ¹¦ÄÜ //·¢ËÍ:runtime 0 ,Ôò¹Ø±Õº¯ÊýÖ´ÐÐʱ¼äͳ¼Æ¹¦ÄÜ ///runtimeͳ¼Æ¹¦ÄÜ,±ØÐëÉèÖÃ:USMART_ENTIMX_SCAN Ϊ1,²Å¿ÉÒÔʹÓÃ!! ///////////////////////////////////////////////////////////////////////////////////// //ϵͳÃüÁî u8 *sys_cmd_tab[]= { "?", "help", "list", "id", "hex", "dec", "runtime", }; //´¦ÀíϵͳָÁî //0,³É¹¦´¦Àí;ÆäËû,´íÎó´úÂë; u8 usmart_sys_cmd_exe(u8 *str) { u8 i; u8 sfname[MAX_FNAME_LEN];//´æ·Å±¾µØº¯ÊýÃû u8 pnum; u8 rval; u32 res; res=usmart_get_cmdname(str,sfname,&i,MAX_FNAME_LEN);//µÃµ½Ö¸Áî¼°Ö¸Á¶È if(res)return USMART_FUNCERR;//´íÎóµÄÖ¸Áî str+=i; for(i=0;irpnum)return USMART_PARMERR;//²ÎÊý´íÎó(ÊäÈë²ÎÊý±ÈÔ´º¯Êý²ÎÊýÉÙ) usmart_dev.id=i;//¼Ç¼º¯ÊýID. break;//Ìø³ö. } } if(i==usmart_dev.fnum)return USMART_NOFUNCFIND; //δÕÒµ½Æ¥ÅäµÄº¯Êý sta=usmart_get_fparam(str,&i); //µÃµ½º¯Êý²ÎÊý¸öÊý if(sta)return sta; //·µ»Ø´íÎó usmart_dev.pnum=i; //²ÎÊý¸öÊý¼Ç¼ return USMART_OK; } //usamrtÖ´Ðк¯Êý //¸Ãº¯ÊýÓÃÓÚ×îÖÕÖ´ÐдӴ®¿ÚÊÕµ½µÄÓÐЧº¯Êý. //×î¶àÖ§³Ö10¸ö²ÎÊýµÄº¯Êý,¸ü¶àµÄ²ÎÊýÖ§³ÖÒ²ºÜÈÝÒ×ʵÏÖ.²»¹ýÓõĺÜÉÙ.Ò»°ã5¸ö×óÓҵIJÎÊýµÄº¯ÊýÒѾ­ºÜÉÙ¼ûÁË. //¸Ãº¯Êý»áÔÚ´®¿Ú´òÓ¡Ö´ÐÐÇé¿ö.ÒÔ:"º¯ÊýÃû(²ÎÊý1£¬²ÎÊý2...²ÎÊýN)=·µ»ØÖµ".µÄÐÎʽ´òÓ¡. //µ±ËùÖ´Ðеĺ¯ÊýûÓзµ»ØÖµµÄʱºò,Ëù´òÓ¡µÄ·µ»ØÖµÊÇÒ»¸öÎÞÒâÒåµÄÊý¾Ý. void usmart_exe(void) { u8 id,i; u32 res; u32 temp[MAX_PARM];//²ÎÊýת»»,ʹ֧֮³ÖÁË×Ö·û´® u8 sfname[MAX_FNAME_LEN];//´æ·Å±¾µØº¯ÊýÃû u8 pnum,rval; id=usmart_dev.id; if(id>=usmart_dev.fnum)return;//²»Ö´ÐÐ. usmart_get_fname((u8*)usmart_dev.funs[id].name,sfname,&pnum,&rval);//µÃµ½±¾µØº¯ÊýÃû,¼°²ÎÊý¸öÊý printf("\r\n%s(",sfname);//Êä³öÕýÒªÖ´Ðеĺ¯ÊýÃû for(i=0;i