CN113608775B - 一种基于内存直接读写的流程配置方法 - Google Patents

一种基于内存直接读写的流程配置方法 Download PDF

Info

Publication number
CN113608775B
CN113608775B CN202110680094.1A CN202110680094A CN113608775B CN 113608775 B CN113608775 B CN 113608775B CN 202110680094 A CN202110680094 A CN 202110680094A CN 113608775 B CN113608775 B CN 113608775B
Authority
CN
China
Prior art keywords
data
memory
address
bit
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110680094.1A
Other languages
English (en)
Other versions
CN113608775A (zh
Inventor
王雨龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202110680094.1A priority Critical patent/CN113608775B/zh
Publication of CN113608775A publication Critical patent/CN113608775A/zh
Application granted granted Critical
Publication of CN113608775B publication Critical patent/CN113608775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种基于内存直接读写的流程配置方法,包括:在操作系统堆中申请内存空间,并对内存空间进行划分;设计数据的操作单元结构;设计数据处理结构;根据所述数据处理结构,设计完整操作结构;对输入数据处理结构类型和输出数据处理结构类型进行设计;将程序所操作的底层硬件驱动资源进行内存映射到所申请的内存空间中;按照完整操作结构定义结构数组,以二进制文件形式读取用户配置的操作步骤及操作方法文件,将读取到的内容填入到所定义的结构数组中,定义数组执行步骤并进行操作。本发明方法可以将不同的操作流程适配到同一个流程代码中,针对相同的硬件,只更改流程则不需要对代码进行修改,只需要简单修改配置文件,即可完成流程的重新适配。

Description

一种基于内存直接读写的流程配置方法
技术领域
本发明涉及一种基于内存直接读写的流程配置方法,属于计算机控制领域。
背景技术
流程配置方法,即系统运行过程中具有较强的步骤性,从运行开始到程运行结束都是按照预设的步骤进行的,这类操作步骤通常具有高度的统一性,不同步骤往往只有参数不同,步骤可以进行高度抽象统一。
计算机运行最基本的操作是内存的读写,直接基于内存读写设计软件具有高效性,由软件开发者以基于内存读写的方法进行软件开发需要较高的成本投入。
流程配置方法通常采用面向过程的开发方法,使用状态机进行跳转,当一个流程完成后跳转到接下来的流程,每一个流程的过程都是先判断总线数据或者开关量输入值是否满足某一条件,然后进行总线数据输出或者将某个开关量输出,但是传统的设计方法在流程变动的时候,或者输入输出条件变化的时候,都需要进行代码修改,对于不同的流程操作,需要不同的设计,开发成本高效率低。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种基于内存直接读写的流程配置方法,通过内存映射将总线上数据输入与输出全部映射到内存的读和写,在系统设计中提供了输入数据的判断方法以及输出数据的操作方法。提高了系统的可扩展性,可移植性,以及可维护性。
本发明的技术解决方案是:
一种基于内存直接读写的流程配置方法,步骤如下:
(1)在操作系统堆中申请内存空间,并对内存空间进行划分;
(2)设计数据的操作单元结构;
(3)设计数据处理结构;
(4)根据所述数据处理结构,设计完整操作结构,该完成操作结构包括输入数据处理结构和输出数据处理结构;
(5)对输入数据处理结构类型和输出数据处理结构类型进行设计;
(6)将程序所操作的底层硬件驱动资源进行内存映射到步骤(1)中所申请的内存空间中;
(7)按照完整操作结构定义结构数组,以二进制文件形式读取用户配置的操作步骤及操作方法文件,将读取到的内容填入到所定义的结构数组中,定义数组执行步骤并进行操作。
进一步的,所述步骤(1)在操作系统堆中申请内存空间,并对内存空间进行划分,具体为:
(1.1)将申请到的内存空间划分为只读地址区RAM_IN、只写地址区RAM_OUT、标记量数据区RAM_FLAG以及大块内存临时缓冲区RAM_BUFF;
(1.2)使用动态内存申请方法申请内存,并对内存进行划分,设置四种类型内存偏移分别为:
只读地址区偏移:OFFSITE_RAM_IN,值为0x0000;
只写地址区偏移:OFFSITE_RAM_OUT,值为0x2000;
标记量数据区偏移:OFFSITE_RAM_FLAG,值为0x8000;
大块内存临时缓冲区偏移:OFFSITE_RAM_BUFF,值为0xC000。
进一步的,步骤(2)设计数据的操作单元结构STRU_RAMTACKLE,具体为:
(2.1)操作单元结构STRU_RAMTACKLE设计为三个16位数据,数据操作包括字节操作和位操作;
(2.2)操作地址addroffset为第一个16位数据,可表示为位操作地址、字节操作地址或内存搬移的目的地址;
(2.3)操作条件一:cond1为第二个16位数据,可表示为比较值范围的上限值、位操作的匹配位或内存搬移的源地址;
(2.4)操作条件二:cond2为第三个16位数据,可表示为比较值范围的下限值、位操作的掩码位或内存搬移的长度。
进一步的,所述步骤(3)数据处理结构STRU_STEP_HALF中包括需要进行的操作类型TYPE、所需要操作数据结构的数量NUM、以及操作单元结构STRU_RAMTACKLE阵列,其中,操作类型包括输入数据处理结构类型TYPE_IN和输出数据处理结构类型TYPE_OUT,操作单元结构STRU_RAMTACKLE阵列数量支持最多32个。
进一步的,所述步骤(4)设计完整操作结构,具体为:
(4.1)完整操作结构STRU_STEP包括两个数据处理结构STRU_STEP_HALF,以及一个未成功匹配次数变量NoMatCnt;
(4.2)两个数据处理结构STRU_STEP_HALF分别为输入数据处理结构和输出数据处理结构;输入数据处理结构和输出数据处理结构具有完全相同的数据结构。
进一步的,所述步骤(5)对输入数据处理结构类型TYPE_IN和输出数据处理结构类型TYPE_OUT进行设计,具体为:
(5.1)输入数据处理结构类型TYPE_IN包括匹配查找MATCH和范围查找REGION,匹配查找MATCH表示数据实际值和查找设定值一致,范围查找REGION表示实际值在查找设定值的上下限波动;
(5.2)输出数据处理结构类型TYPE_OUT包括:
①按位写值BIT_WRITE,用于对IO位的操作;
②按字写值WORD_WRITE,用于数据的输出,标记量的操作;
③内存搬移操作MEM_CPY,内存搬移操作用于对缓冲区数据的处理。
进一步的,所述步骤(6)将底层硬件资源进行映射,具体为:
(6.1)将所有总线的输出缓冲区和只写地址区RAM_OUT进行映射,映射方法为地址一一对应法;
①1553B总线部分将RT的32个写缓冲区进行输出映射,每个缓冲区32个16位字;
②将CAN总线基本操作的8个字节写地址区进行映射;
③将开关量输出共N个16位地址进行映射,N为正整数;
④将串口底层1024个字节的发送环形缓冲区进行映射;
所述所有总线包括1553B总线、CAN总线、开关量输出以及串口;
(6.2)将所有总线的输入缓冲区和只读地址区RAM_IN进行映射,映射方法为一一对应法:
①1553B总线部分将RT的32个读缓冲区进行输入映射,每个缓冲区32个16位字;
②将CAN总线基本操作的8个字节读地址区进行映射;
③将开关量输入共N个16位地址进行映射;
④将串口底层1024个字节的接收环形缓冲区进行映射。
进一步的,所述步骤(7)按照完整操作结构定义结构数组,以二进制文件形式读取用户配置的操作步骤及操作方法文件,将读取到的内容填入到所定义的结构数组中,定义数组执行步骤并进行操作,具体为:
(7.1)将只读地址区RAM_IN的数据内容进行更新,将各总线接收缓冲区的数据按照映射关系拷贝到只读地址区RAM_IN的对应区域中,所述数据内容包括1553B总线收到的数据、CAN总线收到的数据、串口收到的数据以及开关量输入的状态;
(7.2)根据当前索引所对应完整操作数据结构中输入数据处理结构类型TYPE_IN进行数据匹配;
(7.3)根据数据结构中输出数据结构的操作类型进行数据操作,包括单个位的写,单个字的写以及内存搬移操作;
(7.4)将数组执行步骤数值STEP进行加一操作,继续解析数据下一个结构数据,直到解析完为止。
进一步的,所述步骤(7.2)根据当前索引所对应完整操作数据结构中输入数据处理结构类型TYPE_IN进行数据匹配,具体为:
(7.2.1)如标识为MATCH,将配置文件中的虚拟地址映射到设计内存操作地址,取出操作地址addroffset中的数据,按位与操作条件一cond1,然后异或操作条件二cond2,计算结果如果为0,则查找成功,跳转到步骤(7.3);如果查找失败,将未成功匹配次数变量NoMatCnt进行加一操作,回到步骤(7.1);
(7.2.2)如标识为REGION,取出操作地址addroffset中的数据,判断是否大于操作条件一cond1的值,同时小于操作条件二cond2的值;如果满足条件,则查找成功,跳转到步骤(7.3),若不满足条件,查找失败,将未成功匹配次数变量NoMatCnt进行加一操作,回到步骤(7.1)。
进一步的,所述步骤(7.3)根据数据结构中输出数据结构的操作类型进行数据操作,具体为:
(7.3.1)如输出数据结构处理类型TYP_OUT为按位写值BIT_WRITE或者为按字写值WORD_WRITE,这两种操作方式完全一致,首先将虚拟地址映射到内存操作地址,取出操作地址addroffset中的数据,按位与操作条件一cond1,然后异或操作条件二cond2,再将数据写入操作地址addroffset中;
(7.3.2)如果输出数据结构处理类型TYPE_OUT为内存搬移操MEM_CPY,则将结构数据中的虚拟地址全部映射到内存操作地址,此时操作地址addroffset表示目的地址,操作条件一cond1表示源地址,操作条件二cond2表示内存搬移的长度;以操作条件一cond1表示的地址为起始地址,操作条件二cond2的值为长度的内存数据拷贝到操作地址addroffset为起始地址,操作条件二cond2值为长度的内存中,跳到步骤(7.4)。
本发明与现有技术相比的有益效果是:
(1)本发明基于内存读写,提出了一种流程性配置的设计方法,可以将不同的操作流程适配到同一个流程代码中,针对相同的硬件,只更改流程则不需要对代码进行修改,只需要简单修改配置文件,即可完成流程的重新适配。
(2)本发明方法通过内存映射将总线上数据输入与输出全部映射到内存的读和写,在系统设计中提供了输入数据的判断方法以及输出数据的操作方法。提高了系统的可扩展性,可移植性,以及可维护性。
附图说明
图1为一种基于内存直接读写的流程配置方法流程图;
图2为内存读写结构分解示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
流程配置方法通常采用面向过程的开发方法,使用状态机进行跳转,当一个流程完成后跳转到接下来的流程,每一个流程的过程都是先判断总线数据或者开关量输入值是否满足某一条件,然后进行总线数据输出或者将某个开关量输出,但是传统的设计方法在流程变动的时候,或者输入输出条件变化的时候,都需要进行代码修改,对于不同的流程操作,需要不同的设计,开发成本高效率低,结合流程配置方法的特性,本发明提出了一种基于内存直接读写的流程配置方法,通过内存映射将总线上数据输入与输出全部映射到内存的读和写,在系统设计中提供了输入数据的判断方法以及输出数据的操作方法。提高了系统的可扩展性,可移植性,以及可维护性。
如图1所示,本发明提出一种基于内存直接读写的流程配置方法,步骤如下:
1、在操作系统堆中申请内存空间,将所申请到的空间划分为只读地址区,只写地址区,标记量数据区以及大块内存临时缓冲区,并确定四块内存地址的偏移量。
2、设计数据的操作单元结构,包括三个16位数据,分别表示操作内存的虚拟地址,第二个16位数据表示操作条件一(包括比较值范围的上限值、位操作的匹配位、内存搬移的源地址),第三个16位数据表示操作条件二(包括比较值范围的下限值、位操作的掩码位、以及内存搬移的长度)。
3、设计数据处理结构,包括需要操作处理的类型,操作单元结构的数量,以及操作单元结构的数据阵列。
4、设计完整操作结构,包括两个数据处理结构,分别为输入数据处理结构和输出数据处理结构,以及一个未成功匹配的变量。
5、输入数据处理结构包括匹配查找和范围查找,而输出数据处理结构包括按位写值,按字写值,以及内存搬移操作。
6、将底层硬件资源进行映射,包括串口,CAN总线,1553B总线以及开关量输入和输出。将所有总线的输出缓冲区(开关量输出地址区)和只写地址区进行映射。将所有总线的输入缓冲区(开关量输入地址区)和只读地址区进行映射。
7、读取用户配置的操作步骤以及方法文件,将文件读取到操作步骤数组中,定义步骤执行变量:
STEP1:将只读地址区的数据内容进行更新,将各总线接收缓冲区的数据按照映射关系拷贝到只读地址区中。
STEP2:根据当前索引所对应完整操作数据结构中输入数据处理结构类型TYPE_IN进行数据匹配。
STEP3:根据数据结构中输出数据结构的操作类型进行数据操作,包括单个位的写,单个字的写以及内存搬移操作。
本发明方法,通过内存映射将总线上数据输入与输出全部映射到内存的读和写,在系统设计中提供了输入数据的判断方法以及输出数据的操作方法。提高了系统的可扩展性,可移植性,以及可维护性。
实施例:
具体的,本发明流程配置方法按照如下步骤细节执行:
S1:在操作系统堆中申请内存空间,并对内存空间进行划分,如图2所示。
(1)将申请到的堆空间划分为只读地址区RAM_IN,只写地址区RAM_OUT,标记量数据区RAM_FLAG,以及大块内存临时缓冲区RAM_BUFF。
(2)使用动态内存申请函数malloc()申请内存,并对内存进行划分,设置四种类型内存偏移分别为
只读地址区偏移:OFFSITE_RAM_IN(值为0x0000)。
只写地址区偏移:OFFSITE_RAM_OUT(值为0x2000)。
标记量数据区偏:OFFSITE_RAM_FLAG(值为0x8000)。
大块内存临时缓冲区偏:OFFSITE_RAM_BUFF(值为0xC000)。
S2:设计数据的操作单元结构STRU_RAMTACKLE。
(1)操作单元结构STRU_RAMTACKLE设计为三个16位数据,数据操作包括字节操作和位操作。
(2)操作地址addroffset为第一个16位数据,可表示为位操作地址、字节操作地址以及内存搬移的目的地址。
(3)操作条件一cond1为第二个16位数据,可表示为比较值范围的上限值,位操作的匹配位,内存搬移的源地址。
(4)操作条件二cond2为第三个16位数据,可表示为比较值范围的下限值,位操作的掩码位,以及内存搬移的长度。
S3:设计数据处理结构STRU_STEP_HALF。该结构中包括需要进行的操作类型TYPE(操作类型包括输入数据处理结构类型TYPE_IN和输出数据处理结构类型TYPE_OUT),所需要操作数据结构的数量NUM,以及S2中设计的操作单元结构STRU_RAMTACKLE阵列(该阵列数量支持最多32个)
S4:设计完整操作结构STRU_STEP。完整操作结构由S3步数据处理结构STRU_STEP_HALF组成。
(1)完整操作结构STRU_STEP包括两个数据处理结构STRU_STEP_HALF,以及一个未成功匹配次数变量NoMatCnt。
(2)两个数据处理结构STRU_STEP_HALF分别为输入数据处理结构和输出数据处理结构。输入数据处理结构和输出数据处理结构具有完全相同的数据结构,不同只是对数据处理的方式不同。
S5:对S3中输入数据处理结构类型TYPE_IN和输出数据处理结构类型TYPE_OUT进行设计。
(1)输入数据处理结构类型TYPE_IN包括匹配查找MATCH和范围查找REGION。匹配查找MATCH表示数据实际值和查找设定值要一致,范围查找REGION表示实际值在查找设定值的上下限波动。
(2)输出数据处理结构类型TYPE_OUT包括:①按位写值BIT_WRITE,用于对IO位的操作。②按字写值WORD_WRITE,用于数据的输出,标记量的操作。③内存搬移操作MEM_CPY,内存搬移操作用于对缓冲区数据的处理。
S6:将程序所操作的底层硬件驱动资源进行内存映射到S1中所申请的内存空间中。映射部分包括1553B总线、CAN总线、开关量输入及开关量输出、串口。
(1)将所有总线(包括1553B总线、CAN总线、开关量输出、串口)的输出缓冲区(开关量输出地址区)和只写地址区RAM_OUT进行映射。映射方法为地址一一对应法①1553B总线部分将RT的32个写缓冲区(每个缓冲区32个16位字)进行输出映射,②将CAN总线基本操作的8个字节写地址区进行映射,③将开关量输出共N个16位地址进行映射,④将串口底层1024个字节的发送环形缓冲区进行映射。
(2)将所有总线的输入缓冲区(开关量输入地址区)和只读地址区RAM_IN进行映射。映射方法为一一对应法①1553B总线部分将RT的32个读缓冲区(每个缓冲区32个16位字)进行输入映射,②将CAN总线基本操作的8个字节读地址区进行映射,③将开关量输入共N个16位地址进行映射,④将串口底层1024个字节的接收环形缓冲区进行映射。
S7:按照完整操作结构STRU_STEP定义结构数组,数组长度为MAX_LENGTH(值为256),以二进制文件形式读取用户按照S1、S2、S3数据结构配置的操作步骤及操作方法文件,将读到的内容填入到所定义的结构数组TackleStep中,将其内容初始化为0值。定义数组执行步骤STEP(STEP从0开始,每执行一条进行加一操作),接下来按步骤周期进行操作。
步骤一:将只读地址区RAM_IN的数据内容进行更新,将各总线接收缓冲区的数据按照映射关系拷贝到只读地址区RAM_IN的对应区域中(内容包括1553B总线收到的数据,CAN总线收到的数据,串口收到的数据,以及开关量输入的状态)。
步骤二:根据当前索引STEP完整操作结构STRU_STEP中输入数据处理结构类型TYPE_IN进行数据匹配。
(1)如标识为MATCH,将配置文件中的虚拟地址映射到设计内存操作地址,取出操作地址addroffset中的数据,按位与上操作条件一cond1,然后异或上操作条件二cond2,计算结果如果为0,则查找成功,跳转到步骤三,如果查找失败,将未成功匹配次数变量NoMatCnt进行加一操作,回到步骤一。
(2)如标识为REGION,取出操作地址addroffset中的数据,判断是否大于操作条件一cond1的值,同时小于操作条件二cond2的值。如果满足条件,则查找成功,跳转到步骤三,若不满足条件,查找失败,将未成功匹配次数变量NoMatCnt进行加一操作,回到步骤一。
步骤三:根据数据结构中输出数据结构处理类型TYP_OUT进行数据操作。
(1)如输出数据结构处理类型TYP_OUT为按位写值BIT_WRITE或者为按字写值WORD_WRITE,这两种操作方式完全一致,首先将虚拟地址映射到内存操作地址,取出操作地址addroffset中的数据,按位与上操作条件一cond1,然后异或上操作条件二cond2,再将数据写入操作地址addroffset中。
(2)如果输出数据结构处理类型TYPE_OUT为内存搬移操MEM_CPY,则将结构数据中的虚拟地址全部映射到内存操作地址,此时操作地址addroffset表示目的地址,操作条件一cond1表示源地址,操作条件二cond2表示内存搬移的长度。以操作条件一cond1表示的地址为起始地址,操作条件二cond2的值为长度的内存数据拷贝到操作地址addroffset为起始地址,操作条件二cond2值为长度的内存中。跳到步骤四。
步骤四:将步骤数值STEP进行加一操作,继续解析数据下一个结构数据,直到解析完为止。
上述实施例可以将不同的操作流程适配到同一个流程代码中,针对相同的硬件,只更改流程则不需要对代码进行修改,只需要简单修改配置文件,即可完成流程的重新适配。
本发明说明书中未作详细描述的内容属于本领域的公知技术。

Claims (7)

1.一种基于内存直接读写的流程配置方法,其特征在于步骤如下:
(1)在操作系统堆中申请内存空间,并对内存空间进行划分;
(2)设计数据的操作单元结构;
(3)设计数据处理结构;
(4)根据所述数据处理结构,设计完整操作结构,该完整操作结构包括输入数据处理结构和输出数据处理结构;
(5)对输入数据处理结构类型和输出数据处理结构类型进行设计;
(6)将程序所操作的底层硬件驱动资源进行内存映射到步骤(1)中所申请的内存空间中;
(7)按照完整操作结构定义结构数组,以二进制文件形式读取用户配置的操作步骤及操作方法文件,将读取到的内容填入到所定义的结构数组中,定义数组执行步骤并进行操作,具体为:
(7.1)将只读地址区RAM_IN的数据内容进行更新,将各总线接收缓冲区的数据按照映射关系拷贝到只读地址区RAM_IN的对应区域中,所述数据内容包括1553B总线收到的数据、CAN总线收到的数据、串口收到的数据以及开关量输入的状态;
(7.2)根据当前索引所对应完整操作数据结构中输入数据处理结构类型TYPE_IN进行数据匹配;
具体为:
(7.2.1)如标识为MATCH,将配置文件中的虚拟地址映射到设计内存操作地址,取出操作地址addroffset中的数据,按位与操作条件一cond1,然后异或操作条件二cond2,计算结果如果为0,则查找成功,跳转到步骤(7.3);如果查找失败,将未成功匹配次数变量NoMatCnt进行加一操作,回到步骤(7.1);
(7.2.2)如标识为REGION,取出操作地址addroffset中的数据,判断是否大于操作条件一cond1的值,同时小于操作条件二cond2的值;如果满足条件,则查找成功,跳转到步骤(7.3),若不满足条件,查找失败,将未成功匹配次数变量NoMatCnt进行加一操作,回到步骤(7.1);
(7.3)根据数据结构中输出数据结构的操作类型进行数据操作,包括单个位的写,单个字的写以及内存搬移操作;具体为:
(7.3.1)如输出数据结构处理类型TYP_OUT为按位写值BIT_WRITE或者为按字写值WORD_WRITE,这两种操作方式完全一致,首先将虚拟地址映射到内存操作地址,取出操作地址addroffset中的数据,按位与操作条件一cond1,然后异或操作条件二cond2,再将数据写入操作地址addroffset中;
(7.3.2)如果输出数据结构处理类型TYPE_OUT为内存搬移操MEM_CPY,则将结构数据中的虚拟地址全部映射到内存操作地址,此时操作地址addroffset表示目的地址,操作条件一cond1表示源地址,操作条件二cond2表示内存搬移的长度;以操作条件一cond1表示的地址为起始地址,操作条件二cond2的值为长度的内存数据拷贝到操作地址addroffset为起始地址,操作条件二cond2值为长度的内存中,跳到步骤(7.4);
(7.4)将数组执行步骤数值STEP进行加一操作,继续解析数据下一个结构数据,直到解析完为止。
2.根据权利要求1所述的一种基于内存直接读写的流程配置方法,其特征在于:所述步骤(1)在操作系统堆中申请内存空间,并对内存空间进行划分,具体为:
(1.1)将申请到的内存空间划分为只读地址区RAM_IN、只写地址区RAM_OUT、标记量数据区RAM_FLAG以及大块内存临时缓冲区RAM_BUFF;
(1.2)使用动态内存申请方法申请内存,并对内存进行划分,设置四种类型内存偏移分别为:
只读地址区偏移:OFFSITE_RAM_IN,值为0x0000;
只写地址区偏移:OFFSITE_RAM_OUT,值为0x2000;
标记量数据区偏移:OFFSITE_RAM_FLAG,值为0x8000;
大块内存临时缓冲区偏移:OFFSITE_RAM_BUFF,值为0xC000。
3.根据权利要求2所述的一种基于内存直接读写的流程配置方法,其特征在于:步骤(2)设计数据的操作单元结构STRU_RAMTACKLE,具体为:
(2.1)操作单元结构STRU_RAMTACKLE设计为三个16位数据,数据操作包括字节操作和位操作;
(2.2)操作地址addroffset为第一个16位数据,可表示为位操作地址、字节操作地址或内存搬移的目的地址;
(2.3)操作条件一:cond1为第二个16位数据,可表示为比较值范围的上限值、位操作的匹配位或内存搬移的源地址;
(2.4)操作条件二:cond2为第三个16位数据,可表示为比较值范围的下限值、位操作的掩码位或内存搬移的长度。
4.根据权利要求2所述的一种基于内存直接读写的流程配置方法,其特征在于:所述步骤(3)数据处理结构STRU_STEP_HALF中包括需要进行的操作类型TYPE、所需要操作数据结构的数量NUM、以及操作单元结构STRU_RAMTACKLE阵列,其中,操作类型包括输入数据处理结构类型TYPE_IN和输出数据处理结构类型TYPE_OUT,操作单元结构STRU_RAMTACKLE阵列数量支持最多32个。
5.根据权利要求4所述的一种基于内存直接读写的流程配置方法,其特征在于:所述步骤(4)设计完整操作结构,具体为:
(4.1)完整操作结构STRU_STEP包括两个数据处理结构STRU_STEP_HALF,以及一个未成功匹配次数变量NoMatCnt;
(4.2)两个数据处理结构STRU_STEP_HALF分别为输入数据处理结构和输出数据处理结构;输入数据处理结构和输出数据处理结构具有完全相同的数据结构。
6.根据权利要求5所述的一种基于内存直接读写的流程配置方法,其特征在于:所述步骤(5)对输入数据处理结构类型TYPE_IN和输出数据处理结构类型TYPE_OUT进行设计,具体为:
(5.1)输入数据处理结构类型TYPE_IN包括匹配查找MATCH和范围查找REGION,匹配查找MATCH表示数据实际值和查找设定值一致,范围查找REGION表示实际值在查找设定值的上下限波动;
(5.2)输出数据处理结构类型TYPE_OUT包括:
①按位写值BIT_WRITE,用于对IO位的操作;
②按字写值WORD_WRITE,用于数据的输出,标记量的操作;
③内存搬移操作MEM_CPY,内存搬移操作用于对缓冲区数据的处理。
7.根据权利要求5所述的一种基于内存直接读写的流程配置方法,其特征在于:所述步骤(6)将底层硬件资源进行映射,具体为:
(6.1)将所有总线的输出缓冲区和只写地址区RAM_OUT进行映射,映射方法为地址一一对应法;
①1553B总线部分将RT的32个写缓冲区进行输出映射,每个缓冲区32个16位字;
②将CAN总线基本操作的8个字节写地址区进行映射;
③将开关量输出共N个16位地址进行映射,N为正整数;
④将串口底层1024个字节的发送环形缓冲区进行映射;
所述所有总线包括1553B总线、CAN总线、开关量输出以及串口;
(6.2)将所有总线的输入缓冲区和只读地址区RAM_IN进行映射,映射方法为一一对应法:
①1553B总线部分将RT的32个读缓冲区进行输入映射,每个缓冲区32个16位字;
②将CAN总线基本操作的8个字节读地址区进行映射;
③将开关量输入共N个16位地址进行映射;
④将串口底层1024个字节的接收环形缓冲区进行映射。
CN202110680094.1A 2021-06-18 2021-06-18 一种基于内存直接读写的流程配置方法 Active CN113608775B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110680094.1A CN113608775B (zh) 2021-06-18 2021-06-18 一种基于内存直接读写的流程配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110680094.1A CN113608775B (zh) 2021-06-18 2021-06-18 一种基于内存直接读写的流程配置方法

Publications (2)

Publication Number Publication Date
CN113608775A CN113608775A (zh) 2021-11-05
CN113608775B true CN113608775B (zh) 2023-10-13

Family

ID=78336598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110680094.1A Active CN113608775B (zh) 2021-06-18 2021-06-18 一种基于内存直接读写的流程配置方法

Country Status (1)

Country Link
CN (1) CN113608775B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858466B (zh) * 2023-02-07 2023-06-09 广州市千钧网络科技有限公司 一种操作日志生成方法、装置、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077333A (zh) * 2013-01-22 2013-05-01 北京理工大学 一种Linux系统下软件代码保护方法
CN106951475A (zh) * 2017-03-07 2017-07-14 郑州铁路职业技术学院 基于云计算的大数据分布式处理方法及系统
CN109298935A (zh) * 2018-09-06 2019-02-01 华泰证券股份有限公司 一种多进程单写多读无锁共享内存的方法及应用
CN110750405A (zh) * 2019-10-28 2020-02-04 天津津航计算技术研究所 一种基于硬件板卡识别的软件兼容性方法
CN111176663A (zh) * 2019-12-20 2020-05-19 北京字节跳动网络技术有限公司 应用程序的数据处理方法、装置、设备及存储介质
CN111459673A (zh) * 2020-03-31 2020-07-28 支付宝(杭州)信息技术有限公司 安全内存扩展、释放方法及装置和电子设备
CN112486903A (zh) * 2020-12-18 2021-03-12 清华大学 可重构处理单元、可重构处理单元阵列及其运行方法
CN112925737A (zh) * 2021-03-30 2021-06-08 上海西井信息科技有限公司 Pci异构系统数据融合方法、系统、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US8165621B2 (en) * 2007-10-10 2012-04-24 Unity Semiconductor Corporation Memory emulation in a cellular telephone

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103077333A (zh) * 2013-01-22 2013-05-01 北京理工大学 一种Linux系统下软件代码保护方法
CN106951475A (zh) * 2017-03-07 2017-07-14 郑州铁路职业技术学院 基于云计算的大数据分布式处理方法及系统
CN109298935A (zh) * 2018-09-06 2019-02-01 华泰证券股份有限公司 一种多进程单写多读无锁共享内存的方法及应用
CN110750405A (zh) * 2019-10-28 2020-02-04 天津津航计算技术研究所 一种基于硬件板卡识别的软件兼容性方法
CN111176663A (zh) * 2019-12-20 2020-05-19 北京字节跳动网络技术有限公司 应用程序的数据处理方法、装置、设备及存储介质
CN111459673A (zh) * 2020-03-31 2020-07-28 支付宝(杭州)信息技术有限公司 安全内存扩展、释放方法及装置和电子设备
CN112486903A (zh) * 2020-12-18 2021-03-12 清华大学 可重构处理单元、可重构处理单元阵列及其运行方法
CN112925737A (zh) * 2021-03-30 2021-06-08 上海西井信息科技有限公司 Pci异构系统数据融合方法、系统、设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
POSTER: AR-MMAP: Write Performance Improvement of Memory-Mapped File;Satoshi Imamura;《2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT)》;1-5 *
嵌入式电力负荷控制装置数据共享的实现方法;张宁芳;《现代计算机》;1-3 *
软件定义的PCM与NAND Flash融合存储系统研究;张双武;《万方》;1-69 *
面向高效跨节点内存共享的软件设计和优化;柴琳;《万方》;1-60 *

Also Published As

Publication number Publication date
CN113608775A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
CN109426619B (zh) 访问快闪存储器模块的方法及相关闪存控制器与电子装置
US20060106888A1 (en) Data update system, differential data creating device and program for data update system, updated file restoring device and program
CN110704330B (zh) 数据存取控制装置及方法
US4240139A (en) Address generating system
US10678540B2 (en) Arithmetic operation with shift
TWI685743B (zh) 資料存取控制裝置及方法以及電腦程式產品
JP2004288150A (ja) フラッシュファイルシステム
US7711891B1 (en) Method, system, and computer-readable medium for updating memory devices in a computer system
CN113608775B (zh) 一种基于内存直接读写的流程配置方法
CN112445729A (zh) 操作地址确定方法、PCIe系统、电子设备及存储介质
CN105094691A (zh) 一种数据操作的方法、设备和系统
EP3306823B1 (en) Encoding program, encoding apparatus and encoding method
EP2645578A2 (en) Method, system and apparatus for data compression and decomression
GB2308470A (en) Bit-width reduction of processor instructions
CN112256331B (zh) 虚拟机指令解析加速方法、装置和计算机存储介质
TWI749279B (zh) 資料儲存裝置與資料處理方法
CN1296815C (zh) 二进制翻译中标志位的优化处理方法
US7676651B2 (en) Micro controller for decompressing and compressing variable length codes via a compressed code dictionary
US11023374B2 (en) Apparatus and method and computer program product for controlling data access
CN110187919B (zh) 配置寄存器的装置、方法及系统
TW202215234A (zh) 遮罩向量比較指令
CN113835756A (zh) 主机命令解析方法和装置、固态硬盘控制器、固态硬盘
Dandamudi Guide to Assembly Language Programming in Linux
KR100470822B1 (ko) 마이크로 컨트롤러의 메모리 어드레싱 방법 및 페이지매핑장치
CN115577149B (zh) 一种数据处理方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant