一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于无操作系统的shell终端实现方法、装置和介质与流程

2023-02-19 09:15:35 来源:中国专利 TAG:


1.本技术涉及工业控制技术领域,特别是涉及一种基于无操作系统的shell终端实现方法、装置和计算机可读存储介质。


背景技术:

2.在工业控制领域,如电机控制、电能变换等,被用来做实时控制的芯片通常运行的是不带操作系统的裸机程序。对于这类软件,通常是连接仿真器进行在线调试,如单步运行、观察变量等。连接仿真器是一种侵入式的调试方法,它不能还原现场工况。例如,当芯片上电和外界握手通过后正常运行,此时,连接仿真器调试的话,该程序需要从头执行,可能将导致某些流程环节卡滞,无法正常继续往下。
3.连接仿真器的调试方法在很多场合和工况下并不适用。例如现场调试时,机柜充斥高压,无法开柜门连接仿真器。再者,连仿真器让程序二次运行,并不能匹配当时工况。如果能够不依赖操作系统实现shell终端的功能,则对于shell终端的程序调试则无需连接仿真器,从而可以满足于更多的场景需求。
4.可见,如何不依赖操作系统实现shell终端的功能,是本领域技术人员需要解决的问题。


技术实现要素:

5.本技术实施例的目的是提供一种基于无操作系统的shell终端实现方法、装置和计算机可读存储介质,可以不依赖操作系统实现shell终端的功能。
6.为解决上述技术问题,本技术实施例提供一种基于无操作系统的shell终端实现方法,包括:
7.基于shell终端功能构建功能组件;其中,所述功能组件包括实现shell终端功能所需的函数,以及各函数对应的函数名和特征字符串;
8.根据芯片编译器类型以及通信接口对所述功能组件进行适配;
9.将所述功能组件对应的初始化函数和循环扫描函数与原程序进行适配,并通过编译得到目标码;
10.将所述目标码写入芯片中运行,以实现shell终端功能。
11.可选地,还包括:
12.接收到自定义函数时,将所述自定义函数按照函数、函数名和特征字符串的对应方式记录至所述功能组件的命令列表中。
13.可选地,在所述将所述自定义函数按照函数、函数名和特征字符串的对应方式记录至所述功能组件的命令列表之前还包括:
14.判断所述自定义函数是否为无限循环的函数;
15.若所述自定义函数不为无限循环的函数,判断所述自定义函数的传入参数或者返回值是否为设定的bit类型;
16.若所述自定义函数的传入参数或者返回值为设定的bit类型,则执行所述将所述自定义函数按照函数、函数名和特征字符串的对应方式记录至所述功能组件的命令列表的步骤。
17.可选地,还包括:
18.若所述自定义函数的传入参数或者返回值不为设定的bit类型,则展示自定义函数不符合规范的提示信息。
19.可选地,还包括:
20.建立所述芯片与上位机的连接;
21.对所述上位机传输的命令进行解析,得到特征参数;
22.从所述目标码中查询与所述特征参数匹配的目标特征字符串;
23.执行所述目标特征字符串对应的函数,以完成所述命令对应的操作。
24.可选地,所述将所述功能组件对应的初始化函数和循环扫描函数与原程序进行适配包括:
25.将所述功能组件对应的初始化函数放入原程序的初始化位置;将所述功能组件对应的循环扫描函数放入while(1)中循环运行。
26.可选地,所述根据芯片编译器类型以及通信接口对所述功能组件进行适配包括:
27.基于所述通信接口确定所述功能组件的数据来源;
28.将所述芯片编译器类型重定义为所述功能组件设定的bit类型。
29.本技术实施例还提供了一种基于无操作系统的shell终端实现装置,包括构建单元、第一适配单元、第二适配单元和写入单元;
30.所述构建单元,用于基于shell终端功能构建功能组件;其中,所述功能组件包括实现shell终端功能所需的函数,以及各函数对应的函数名和特征字符串;
31.所述第一适配单元,用于根据芯片编译器类型以及通信接口对所述功能组件进行适配;
32.所述第二适配单元,用于将所述功能组件对应的初始化函数和循环扫描函数与原程序进行适配,并通过编译得到目标码;
33.所述写入单元,用于将所述目标码写入芯片中运行,以实现shell终端功能。
34.可选地,还包括记录单元;
35.所述记录单元,用于接收到自定义函数时,将所述自定义函数按照函数、函数名和特征字符串的对应方式记录至所述功能组件的命令列表中。
36.可选地,还包括第一判断单元和第二判断单元
37.所述第一判断单元,用于判断所述自定义函数是否为无限循环的函数;
38.所述第二判断单元,用于若所述自定义函数不为无限循环的函数,判断所述自定义函数的传入参数或者返回值是否为设定的bit类型;
39.若所述自定义函数的传入参数或者返回值为设定的bit类型,则触发所述记录单元执行所述将所述自定义函数按照函数、函数名和特征字符串的对应方式记录至所述功能组件的命令列表的步骤。
40.可选地,还包括展示单元;
41.所述展示单元,用于若所述自定义函数的传入参数或者返回值不为设定的bit类
型,则展示自定义函数不符合规范的提示信息。
42.可选地,还包括建立单元、解析单元、查询单元和执行单元;
43.所述建立单元,用于建立所述芯片与上位机的连接;
44.所述解析单元,用于对所述上位机传输的命令进行解析,得到特征参数;
45.所述查询单元,用于从所述目标码中查询与所述特征参数匹配的目标特征字符串;
46.所述执行单元,用于执行所述目标特征字符串对应的函数,以完成所述命令对应的操作。
47.可选地,所述第一适配单元用于将所述功能组件对应的初始化函数放入原程序的初始化位置;将所述功能组件对应的循环扫描函数放入while(1)中循环运行。
48.可选地,所述第二适配单元用于基于所述通信接口确定所述功能组件的数据来源;将所述芯片编译器类型重定义为所述功能组件设定的bit类型。
49.本技术实施例还提供了一种基于无操作系统的shell终端实现装置,包括:
50.存储器,用于存储计算机程序;
51.处理器,用于执行所述计算机程序以实现如上述任意一项所述基于无操作系统的shell终端实现方法的步骤。
52.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述基于无操作系统的shell终端实现方法的步骤。
53.由上述技术方案可以看出,基于shell终端功能构建功能组件;其中,功能组件包括实现shell终端功能所需的函数,以及各函数对应的函数名和特征字符串;根据芯片编译器类型以及通信接口对功能组件进行适配,从而可以顺利的将功能组件移植到当前的项目中;将功能组件对应的初始化函数和循环扫描函数与原程序进行适配,并通过编译得到目标码;将目标码写入芯片中运行,以实现shell终端功能。功能组件初始化完成后通过循环扫描函数执行所需实现的功能,无需依赖于操作系统便可以实现shell终端的功能。该功能组件所有的代码都没有用到中断函数,不会影响原程序的时序。
附图说明
54.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
55.图1为本技术实施例提供的一种基于无操作系统的shell终端实现方法的流程图;
56.图2a为现有技术提供的一种操作系统下的shell实现流程示意图;
57.图2b为本技术实施例提供的一种无操作系统下的shell实现流程示意图;
58.图3为本技术实施例提供的一种基于无操作系统的shell终端实现装置的结构示意图;
59.图4为本技术实施例提供的另一种基于无操作系统的shell终端实现装置的结构示意图。
具体实施方式
60.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
61.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
62.接下来,详细介绍本技术实施例所提供的一种基于无操作系统的shell终端实现方法。图1为本技术实施例提供的一种基于无操作系统的shell终端实现方法的流程图,该方法包括:
63.s101:基于shell终端功能构建功能组件。
64.其中,功能组件包括实现shell终端功能所需的函数,以及各函数对应的函数名和特征字符串。
65.在实际应用中,可以以命令列表的方式记录函数名和特征字符串,每种函数有其各自对应的特征字符串。
66.s102:根据芯片编译器类型以及通信接口对功能组件进行适配。
67.对于不同类型的芯片,其芯片编译器类型和通信接口有所差异,为了将功能组件适配不同类型的芯片,可以根据芯片编译器类型以及通信接口对功能组件进行适配。
68.其中,通信接口可以包括串口或网口。
69.在构建功能组件时会设定其对应的bit类型,在实际应用中,可以基于通信接口确定功能组件的数据来源;将芯片编译器类型重定义为功能组件设定的bit类型。
70.s103:将功能组件对应的初始化函数和循环扫描函数与原程序进行适配,并通过编译得到目标码。
71.在实际应用中,可以将功能组件对应的初始化函数放入原程序的初始化位置;将功能组件对应的循环扫描函数放入while(1)中循环运行。
72.功能组件初始化完成后通过循环扫描函数执行所需实现的功能,无需依赖于操作系统便可以实现shell终端的功能。并且功能组件所有的代码都没有用到中断函数,不会影响原程序的时序。
73.如图2a所示为现有技术提供的一种操作系统下的shell实现流程示意图,图2a中在执行初始化后,系统调度通过调用中断函数可以执行不同的任务,其中包括shell任务,该过程需要依赖于操作系统实现。
74.如图2b所示为本技术实施例提供的一种无操作系统下的shell实现流程示意图,图2b中虚线对应的实时控制算法所执行的操作以及其它非实时操作属于原有的需要依赖于操作系统实现的功能,图2b中串口查询和shell操作属于shell终端功能,通过将功能组件对应的循环扫描函数放入while(1)中循环运行,可以不依赖于操作系统就能够实现串口查询和shell操作。
75.s104:将目标码写入芯片中运行,以实现shell终端功能。
76.在实际应用中,将目标码写入芯片后,芯片可以对接收到的命令进行解析,将解析后的命令与特征字符串进行比对,若匹配则执行对应的函数。
77.由上述技术方案可以看出,基于shell终端功能构建功能组件;其中,功能组件包括实现shell终端功能所需的函数,以及各函数对应的函数名和特征字符串;根据芯片编译器类型以及通信接口对功能组件进行适配,从而可以顺利的将功能组件移植到当前的项目中;将功能组件对应的初始化函数和循环扫描函数与原程序进行适配,并通过编译得到目标码;将目标码写入芯片中运行,以实现shell终端功能。功能组件初始化完成后通过循环扫描函数执行所需实现的功能,无需依赖于操作系统便可以实现shell终端的功能。该功能组件所有的代码都没有用到中断函数,不会影响原程序的时序。
78.在本技术实施例中,为了满足不同的功能需求,可以对功能组件中包含的函数进行扩充。在具体实现中,用户可以向功能组件输入自定义函数,功能组件接收到自定义函数时,可以将自定义函数按照函数、函数名和特征字符串的对应方式记录至功能组件的命令列表中。
79.为了保证自定义函数的可用性,在将自定义函数按照函数、函数名和特征字符串的对应方式记录至功能组件的命令列表之前,可以判断自定义函数是否为无限循环的函数;若自定义函数为无限循环的函数,则说明自定义函数存在问题,此时可以展示自定义函数不符合规范的提示信息。
80.若自定义函数不为无限循环的函数,则可以进一步判断自定义函数的传入参数或者返回值是否为设定的bit类型;若自定义函数的传入参数或者返回值为设定的bit类型,则说明自定义函数符合规范,此时可以执行将自定义函数按照函数、函数名和特征字符串的对应方式记录至功能组件的命令列表的步骤。
81.在本技术实施例中,对于设定的bit类型不做限定,例如可以为32bit类型。
82.若自定义函数的传入参数或者返回值不为设定的bit类型,则说明自定义函数存在问题,此时可以展示自定义函数不符合规范的提示信息。
83.通过对自定义函数进行检测,可以保证写入功能组件的函数的可用性,有效避免了错误的函数写入功能组件,影响功能组件的正常运行。
84.在本技术实施例中,在将目标码写入芯片后,可以建立芯片与上位机的连接;用户通过上位机可以向芯片传输命令,芯片可以对上位机传输的命令进行解析,得到特征参数;从目标码中查询与特征参数匹配的目标特征字符串;执行目标特征字符串对应的函数,以完成命令对应的操作。
85.通过芯片与上位机的交互,可以实现内存地址通过上位机命令在线读写。芯片可以解析上位机命令,从而在线执行对应的函数。
86.图3为本技术实施例提供的一种基于无操作系统的shell终端实现装置的结构示意图,包括构建单元31、第一适配单元32、第二适配单元33和写入单元34;
87.构建单元31,用于基于shell终端功能构建功能组件;其中,功能组件包括实现shell终端功能所需的函数,以及各函数对应的函数名和特征字符串;
88.第一适配单元32,用于根据芯片编译器类型以及通信接口对功能组件进行适配;
89.第二适配单元33,用于将功能组件对应的初始化函数和循环扫描函数与原程序进行适配,并通过编译得到目标码;
90.写入单元34,用于将目标码写入芯片中运行,以实现shell终端功能。
91.可选地,还包括记录单元;
92.记录单元,用于接收到自定义函数时,将自定义函数按照函数、函数名和特征字符串的对应方式记录至功能组件的命令列表中。
93.可选地,还包括第一判断单元和第二判断单元
94.第一判断单元,用于判断自定义函数是否为无限循环的函数;
95.第二判断单元,用于若自定义函数不为无限循环的函数,判断自定义函数的传入参数或者返回值是否为设定的bit类型;
96.若自定义函数的传入参数或者返回值为设定的bit类型,则触发记录单元执行将自定义函数按照函数、函数名和特征字符串的对应方式记录至功能组件的命令列表的步骤。
97.可选地,还包括展示单元;
98.展示单元,用于若自定义函数的传入参数或者返回值不为设定的bit类型,则展示自定义函数不符合规范的提示信息。
99.可选地,还包括建立单元、解析单元、查询单元和执行单元;
100.建立单元,用于建立芯片与上位机的连接;
101.解析单元,用于对上位机传输的命令进行解析,得到特征参数;
102.查询单元,用于从目标码中查询与特征参数匹配的目标特征字符串;
103.执行单元,用于执行目标特征字符串对应的函数,以完成命令对应的操作。
104.可选地,第一适配单元用于将功能组件对应的初始化函数放入原程序的初始化位置;将功能组件对应的循环扫描函数放入while(1)中循环运行。
105.可选地,第二适配单元用于基于通信接口确定功能组件的数据来源;将芯片编译器类型重定义为功能组件设定的bit类型。
106.图3所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
107.由上述技术方案可以看出,基于shell终端功能构建功能组件;其中,功能组件包括实现shell终端功能所需的函数,以及各函数对应的函数名和特征字符串;根据芯片编译器类型以及通信接口对功能组件进行适配,从而可以顺利的将功能组件移植到当前的项目中;将功能组件对应的初始化函数和循环扫描函数与原程序进行适配,并通过编译得到目标码;将目标码写入芯片中运行,以实现shell终端功能。功能组件初始化完成后通过循环扫描函数执行所需实现的功能,无需依赖于操作系统便可以实现shell终端的功能。该功能组件所有的代码都没有用到中断函数,不会影响原程序的时序。
108.图4为本技术实施例提供的一种基于无操作系统的shell终端实现装置的结构示意图,包括:
109.存储器41,用于存储计算机程序;
110.处理器42,用于执行计算机程序以实现如上述任意一项基于无操作系统的shell终端实现方法的步骤。
111.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项基于无操作系统的shell终端实现方法的步骤。
112.以上对本技术实施例所提供的一种基于无操作系统的shell终端实现方法、装置
和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
113.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
114.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献