1.一种跨平台的mcu调试装置,其特征在于,包括mcu(2),mcu(2)包括cpu(2),调试功能模块(22),通信模块(24),存储模块(23),封装解包模块(25),cpu(22)分别与调试功能模块(22)、通信模块(24)、存储模块(23)、封装解包模块(25)相连接;
cpu(21),被配置为用于负责系统各模块之间的调用以及运算;
调试功能模块(22),被配置为根据接收到的调试指令启动相应的特定功能模块对mcu(2)进行调试,调试功能模块能够根据调试需求进行增加或者减少调试功能;
存储模块(23),被配置为用于存储调试过程中所需要用到的数据、产生的数据以及调试功能程序或者缓存数据;
通信模块(24),被配置为用于mcu(2)与外部设备进行通信;
封装解包模块(25),被配置为用于根据解包指令或封装指令进行相应的解包或封装。
2.根据权利要求1所述的一种跨平台的mcu调试装置,其特征在于,还包括上位机(1),上位机(1)至少包括cpu(11),存储模块(12),调试指令模块(13),通信模块(14),封装解包模块(15),cpu(11)分别与存储模块(12)、调试指令模块(13)、通信模块(14)、封装解包模块(15)进行电连接;
所述上位机(1)的通信模块(14)与mcu(2)中的通信模块(24)电连接,其中,通信模块(14)与通信模块(24)都可以采用无线通信或有线通信方式进行通信连接;
cpu(11),被配置为用于负责系统各模块之间的调用以及运算;
存储模块(12),被配置为用于存储调试过程中所需要用到的数据以及调试指令程序;
调试指令模块(13),被配置为于根据调试需求调用相应的调试指令程序对mcu(2)进行调试;
封装解包模块(15),被配置为用于根据解包指令或封装指令进行相应的解包或封装;
通信模块(14),被配置为用于上位机(1)与外部设备进行通信。
3.根据权利要求1所述的一种跨平台的mcu调试装置,其特征在于,所述调试功能模块(22)至少包括日志打印模块、日志等级过滤模块、进程交互模块、固件获取模块、内容写入模块、内容读取模块、在线升级模块、工具自适应识别模块、应用层功能定制模块中的一种或多种;
所述调试指令模块(13)至少包括日志打印指令模块、日志等级过滤指令模块、进程交互指令模块、固件获取指令模块、内容写入指令模块、内容读取指令模块、在线升级指令模块、工具自适应识别指令模块、应用层指令模块中的一种或多种;
日志打印模块,被配置为实现日志打印,其根据日志打印指令模块的指令将日志消息进行打印输出,用来告知开发人员程序的运行状态;日志等级过滤模块,被配置为实现日志等级过滤,其根据日志等级过滤指令模块的指令,有选择的实现动态过滤不同等级的日志能力;进程交互模块,被配置为实时记录多个任务之间的信息传递,其根据进程交互指令启动多个任务之间的信息传递记录;固件获取模块,被配置为获取固件的信息,其根据固件获取指令获取固件信息;内容写入模块,被配置为对接收到需要写入存储器的信息进行写入,其根据内容写入指令将相应的数据写入mcu(2)的存储器中;内容读取模块,被配置为对需要读取的信息进行读取,其根据内容读取指令对相应的内容进行读取;在线升级模块,被配置为对mcu(2)进行升级,其根据接收到来自上位机(1)的升级指令对mcu(2)进行升级;工具自适应识别模块,被配置为根据上位机(1)的工具自适应识别指令对上位机(1)是否具有配套的串口工具进行识别;应用层功能定制模块,被配置为根据上位机(1)的应用层指令对应用程序的功能进行定制。
4.根据权利要求2所述的一种跨平台的mcu调试装置,其特征在于,
日志打印指令模块,被配置为根据调试需求启动日志打印指令并下发给mcu(2)中的日志打印模块;日志等级过滤指令模块,被配置为根据调试需求启动日志等级过滤指令并下发给mcu(2)中的日志等级过滤模块;进程交互指令模块,被配置为根据调试需求启动各个进程之间的进程交互指令并下发给mcu(2)的进程交互模块;固件获取指令模块,被配置为根据调试需求启动获取固件的指令下发给mcu(2)中的固件获取模块;内容写入指令模块,被配置为根据调试需求启动内容写入的指令下发给mcu(2)中的内容写入模块;内容读取指令模块,被配置为根据调试需求启动内容读取的指令下发给mcu(2)中的内容读取模块;在线升级指令模块,被配置为根据调试需求启动在线升级的指令下发给mcu(2)中的在线升级模块;工具自适应识别指令模块,被配置为根据需求启动工具自适应指令并下发给mcu(2)中的工具自适应识别模块;应用层指令模块,被配置为根据需求启动应用层指令下发给mcu(2)中的应用层定制功能模块。
5.根据权利要求2所述的一种跨平台的mcu调试装置,其特征在于,所述封装解包模块(15)用于根据解包指令或封装指令进行相应的解包或封装,所述封装包括以下步骤:
步骤s701,获取需要封包的有效载荷并从中获取有效载荷的地址、长度、数据包类型;
步骤s702,判断地址是否有效,若地址无效,则执行步骤s707,结束封包过程;若地址有效,则执行步骤s703;
步骤s703,判断有效载荷命令类型,若有效载荷的命令类型有效,则执行步骤s704,若有效载荷的命令类型无效,则执行步骤s707,结束封包过程;
步骤s704,判断有效载荷的数据长度是否有效,若数据长度无效,则执行步骤s707,结束封包过程,若数据长度有效,则执行步骤s705;
步骤s705,给有效载荷进行赋值;
步骤s706,步骤s706,将封包好的数据存入待发送的数据区;
所述解包包括以下步骤:
步骤s800,检测帧字头是否为包含高字节,若含有高字节,则执行步骤s801,若没有高字节,回到步骤s800,对下一帧进行检测;
步骤s801,检测帧字头是否包含低字节,若包含低字节,则执行步骤s802;若不包含低字节,则回到步骤s800,对下一帧数据进行检测;
步骤s802,获取数据包的长度;
步骤s803,解析包类型,判断数据包是属于哪一类;
步骤s804,获取解包后有效载荷。
6.根据权利要求3所述的一种跨平台的mcu调试装置,其特征在于,
日志打印模块用于对调试过程中产生日志进行打印,日志打印包括以下步骤:
步骤s901,判断日志等级是否匹配,若匹配,则执行步骤s902,若不匹配,则执行步骤s912;
步骤s902,读取需要打印调试数据包中的字符串首地址的字符;
步骤s903,判断该地址的首字符是否是“结束符”,若是地址首字符是结束符,则结束该过程;若首字符不是结束符,则继续下一步动作;
步骤s904,判断字符是否为‘%’,若字符不是‘%’,则执行步骤s910,保存该字符;若字符是‘%’,则获取下一个字符;
步骤s905,判断下一个字符是否为x或d,若为d,则执行步骤s906,若为x,则执行步骤s908;
步骤s906,获取下一个参数;
步骤s907,将获取的参数转化为十进制字符并执行步骤s910;
步骤s908,获取下一个参数;
步骤s909,将获取的参数转为十六进制字符并执行步骤s910;
步骤s910,保存该字符;
步骤s911,指向下一个字节,跳转重复步骤s903,直至所有的字符打印结束;
或所述日志等级过滤模块用于实现打印日志等级过滤,日志等级过滤包括以下步骤:
步骤s601,接收上位机(1)端的数据;
步骤s602,检验数据包的完整性,若数据包是完整的,则执行步骤s603,若数据包不完整时,则结束该过程;
步骤s603,对数据包的类型进行解析并将数据包依据类型放入相应的等级内;
步骤s604,对需要显示的日志选on,不需要显示的日志选择off,然后进行打印。
7.根据权利要求1所述的一种跨平台的mcu调试装置,其特征在于,所述mcu(2)还包括至少一个外设接口(26),外设接口(26)被配置为用于mcu(2)与外部测设备进行通信连接,所述外设接口类型包括spi接口、usb接口,i2c接口、can接口、doip接口、rs232接口、uart接口中的一种或多种。
8.根据权利要求1所述的一种跨平台的mcu调试装置,其特征在于,在对mcu(2)调试过程中,将需要输出的数据暂存于存储模块(24)中,等待系统空闲时候对外输出。
9.根据权利要求1所述的一种跨平台的mcu调试装置,其特征在于,当发现mcu(2)中的调试功能模块(22)没有内置预设的功能模块或根据调试需求,需要增加额外的调试功能时,通过配套的上位机(1)直接将含有所需的特定功能模块写入mcu(2)中。
10.根据权利要求3所述的一种跨平台的mcu调试装置,其特征在于,所述日志等级至少包括debug日志、info日志、osmsg日志、warn日志、error日志、fatal日志中的任意二种;
debug日志:用来记录系统调试过程中命令状态;
info日志:用来记录当前系统的一个运行状态;
osmsg日志:用来记录进程之间的一个交互过程,只要是进程发出去的消息队列,都被打上osmsg的标签,对外输出,能够根据源进程,目标进程,命令类型来过滤出关注的消息;
warn日志:用来警告开发人员,有可能发生了错误,或者进行了非法操作;
error日志:告知开发人员程序运行过程中遇到了错误,但是这类错误在程序中已经做了相关的处理,对于功能可能失效了,但是系统运行不会受到影响;
fatal日志:用来告知开发人员,系统遇到了严重的错误,导致的结果是程序崩溃,软件重启。