一种嵌入式开发学习自动纠错方法及系统的制作方法_2

文档序号:8339516阅读:来源:国知局
硬件资源使用情况信息等),并将采集的开发板信息提交给服务器。
[0018]步骤3、将服务器接收的代码、开发板信息及编译信息或调试信息进行保存,并与后台数据进行对比,同时使用分类器进行分类,且若归为正确类型,则生成一正确信息;若归为错误类型,则生成一对应的错误信息及解决方案。
[0019]在构造所述分类器时,需事先收集一定数量的正确操作信息或者错误操作信息,并根据收集的信息来构造分类器,分类器分类的结果中均标记有正确与错误的类型,以作为检索列表的关键字,且在列表中保留有每种错误类型的解决方案;同时还要定期对分类器进行更新,以增加分类器的功能。
[0020]步骤4、将生成的正确信息或者错误信息及解决方案下发到开发界面,并提示用户进入新的提示流程或者对已编写的代码进行修改,该步骤具体为:将生成的正确信息或者错误信息及解决方案下发到开发界面,若所述交互区显示的是正确信息,则进入下一个提示流程,直到N个提示流程都处理完后才停止;若所述交互区显示的是错误信息及解决方案,则根据解决方案对已编写的代码进行修改。
[0021]一种嵌入式开发学习自动纠错系统,具体包括:
开发模块,用于在开发界面中选择存储于案例库的案例,并将选择的案例分解成提示流程,同时根据提示流程进行代码编写及编译或调试,并将代码及得到的编译信息或调试信息提交给服务器;该模块具体包括:
创建单元,用于创建开发界面和案例库,所述开发界面包括一案例选择区,用于案例的选择;一编写区,用于代码的编写;以及一交互区,用于信息的交互和显示;所述案例库中存储有大量用于参考的案例,且所述案例库可以包括基础案例库和发散思维案例库,其中,基础案例库用于存储较为简单的案例,发散思维案例库用于存储较为复杂的案例;
分解单元,用于打开开发界面,该开发界面的存在形式可以是网页、专用软件、IDE插件等。在所述案例选择区中选择一存储于所述案例库中的案例,通过所述交互区将选择的案例分解成N个具有先后顺序的提示流程,N为非零自然数,并在所述交互区按先后顺序逐个进行显示,且每显示一个提示流程,就进入一次编辑单元;
编辑单元,用于根据显示的提示流程,在所述编写区进行代码编写及编译或调试,其中,编译和调试可以通过设置的编译按钮和调试按钮来实现,并将用户编写的代码及得到的编译信息或调试信息提交给服务器,之后进入监控模块。
[0022]监控模块,用于监控并采集嵌入式开发板信息(包括硬件接口信息、软硬件资源使用情况信息等),并将采集的开发板信息提交给服务器。
[0023]对比模块,用于将服务器接收的代码、开发板信息及编译信息或调试信息进行保存,并与后台数据进行对比,同时使用分类器进行分类,且若归为正确类型,则生成一正确信息;若归为错误类型,则生成一对应的错误信息及解决方案。
[0024]在构造所述分类器时,需事先收集一定数量的正确操作信息或者错误操作信息,并根据收集的信息来构造分类器,分类器分类的结果中均标记有正确与错误的类型,以作为检索列表的关键字,且在列表中保留有每种错误类型的解决方案;同时还要定期对分类器进行更新,以增加分类器的功能。
[0025]反馈模块,用于将生成的正确信息或者错误信息及解决方案下发到开发界面,并提示用户进入新的提示流程或者对已编写的代码进行修改,该模块具体为:将生成的正确信息或者错误信息及解决方案下发到开发界面,若所述交互区显示的是正确信息,则进入下一个提示流程,直到N个提示流程都处理完后才停止;若所述交互区显示的是错误信息及解决方案,则根据解决方案对已编写的代码进行修改。
[0026]下面通过具体实施例对本发明做进一步分析:
具体实施例一:
本实施例主要借助基础案例并结合NFS文件系统制作对系统功能进行阐述,具体如下:
1、打开创建的开发界面,在案例选择区中选择基础案例库,并在下拉菜单中选择:选择NFS文件系统制作;此时交互区就会对该基础案例进行分解,并给出第一阶段的目标:编译内核,即将网卡驱动、NFSR00T文件支持等选项编译进入内核;同时交互区将给出相关的提不流程:①通过 make ARCH=arm CR0SS_C0MPILE=arm-linux- menuconf ig 进入内核配置选项;②进入Device Drivers - >Network Device support选择网卡驱动;③在File Systems—>Network File Systems 选择 NFS 支持;④通过 make ARCH=arm CROSS_COMPILE=arm-linux- ulmage编译内核镜像;学习者只需根据提示流程在编写区输入代码即可。操作完以上提示流程后,就通过编译按钮对内核进行编译,并采集代码及编译信息;待编译完成后,就对采集的代码及编译信息进行编码,编码的目的是为了更有效地传输数据和保障数据安全,并通过网络传输的方式将代码及编译信息提交给服务器。
[0027]2、监控并采集嵌入式开发板信息,并将采集的开发板信息进行编码,之后提交给服务器。
[0028]3、这里假设由于缺少mkimage工具而导致内核编译出错,在服务器将代码及编译信息和开发板信息解码后就先进行保存,并与后台数据进行对比,同时使用贝叶斯分类器对代码及编码信息和开发板信息进行归类,根据上述出错特征,代码及编码信息将被归类至类型I (这里假设类型I为缺少mkimage的分类),并通过哈希函数Hash (I)检索到解决方案:“缺少mkimage工具,可以通过apt-get install mkimage进行安装”,同时将该方案通过网络传输下发至开发界面,并通过交互区反馈给用户;当然,在此之前要保证有足够的样本集训练,分为正确与错误两类,训练所采用的分类器为贝叶斯分类器,该分类器通过对信息进行训练(包括文本预处理,特征选择,文本向量等),从而建立起文本分类器。在分类器分类的结果中,需要标记正确与错误的类型,作为哈希函数Hash检索的关键字,且对应Hash列表中保留有每种错误的解决方案。
[0029]4、学习者根据交互区显示的错误信息及解决方案完成修改后,便继续编译内核,继续对代码及编码信息进行分类,直到贝叶斯分类器归为正确类O时,才进入下一阶段:NFSR00T文件系统制作,同时根据给出的提示流程进行代码编写、编译,以及进行代码及编译信息分类和开发板信息分类,待贝叶斯分类器归为正确类O时,又进入下一阶段,如此执行下去,直到执行完该基础案例后才停止。
[0030]具体实施例二:
本实施例主要借助发散思维案例并结合PWM模块(基于Cortex-M3)对系统功能进行阐述,具体如下:
1、打开开发界面,在案例选择区选择发散思维案例库,并在下拉菜单中选择:PWMO输出占空比为50%的IKHz方波;此时交互区就会对该发散思维案例进行分解,并在交互区给出提示流程,用户只需在编写区进行代码输入即可。待完成代码输入后,就通过编译按钮对代码进行编译,并将代码及编译信息编码后提交给服务器。
2、使用J-1ink监控并采集开发板的PWM管脚信息,并将PWM管脚信息编码后提交给服务器。
[0031]3、将服务器接收的代码及编译信息和PWM管脚信息解码后进行保存,并与后台数据进行对比,同时使用分类器进行分类,若发现与预期不符(例如PWMO未输出波形);这里假设由于学习者操作不慎,在对PWMO进行周期、占空比等信息配置时,未对PWMO进行使能,从而导致PWMO无波形输出;这时出错的潜在原因有:①PWM_GEN_0宏定义出错;② PWMGenEnable (PWM_BASE, PWM_GEN_0)未输入
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1