USMART V3.4
   USMART是由ALIENTEK开发的一个灵巧的串口调试互交组件,通过 它,你可以通过串口助手调用程
序里面的任何函数,并执行.因此,你可以随意更改函数的输入参数(支持数字(10/16进制,支持负数)
、字符串、函数入口地址等作为参数),单个函数最多支持10个输入参数,并支持函数返 回值显示.
V2.1版本以后新增hex和dec两个指令.他们可以用于设置函数参数的显示格式.也可以用于数据的进
制转换,例如:
输入"hex 100"  会在串口调试助手上看到 HEX 0X64.
输入"dec 0X64" 会在串口调试助手上看到 DEC 100.

升级说明
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_ENTIM2_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,才可以使用!!

V3.2 20140828
1,修改usmart_get_aparm函数,加入+/-符号的支持
2,修改usmart_str2num函数,支持负数转换

V3.3 20160506
修正usmart_exe函数在USMART_ENTIMX_SCAN为0的时候，报错的bug

V3.4 20200324
修改变量命名方式为: uint8_t, uint16_t, uint32_t,不再使用u8,u16,u32,但是还是支持
以u8,u16,u32的命名函数调用.

							正点原子@ALIENTEK
							技术论坛:www.openedv.com
							修改日期:2014/08/28
							Copyright(C) ALIENTEK 2011-2021



















