CN112148201B - 数据写入方法、装置及存储介质 - Google Patents
数据写入方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112148201B CN112148201B CN201910559384.3A CN201910559384A CN112148201B CN 112148201 B CN112148201 B CN 112148201B CN 201910559384 A CN201910559384 A CN 201910559384A CN 112148201 B CN112148201 B CN 112148201B
- Authority
- CN
- China
- Prior art keywords
- address
- write
- write command
- preset
- byte
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种数据写入方法、装置及存储介质,该方法包括:接收用户输入的写入命令,所述写入命令用于请求将待写入数据写入存储器,所述写入命令包括所述待写入数据的写入地址;当所述写入地址位于预设地址段内时,推送警告信息,所述警告信息用于指示所述写入地址错误;其中,所述预设地址段包括所述存储器的目标扇区存储至少一个网络设备地址的地址范围。本发明提供的数据写入方法、装置及存储介质,能够解决现有技术中用户在PMON下向计算机输入关于FLASH芯片的写入命令时,因操作失误或者对FLASH芯片的写操作特性的不了解,而导致存储在FLASH芯片中固定地址段的网络设备的MAC地址被随意更改的问题。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种数据写入方法、装置及存储介质。
背景技术
目前,一些计算机使用专用桥片组(简称:桥片)作为计算系统的芯片组,为处理器提供南北桥功能。该桥片集成有两路吉字节媒体访问控制地址(gigabyte Media AccessControl Address,GMAC)控制器,该两路GMAC控制器通过接口连接外置的GMAC物理层(Physical,PHY)芯片,可以作为计算机的两个网络设备(也可以称为网卡设备),实现网络通信。为了便于后续描述,该两个网络设备分别称为网络设备1和网络设备2。
上述所说的桥片外接有FLASH芯片,桥片的两个网络设备的MAC地址存储在该FLASH芯片的地址空间的第一个扇区(Sector)的固定地址段中。计算机的PMON上集成了2个关于桥片外接的FLASH芯片的写命令,分别是字节写入命令和文件写入命令。其中,字节写入命令,用于在FLASH芯片的地址空间中写入一个字节的数据。文件写入命令,用于在FLASH芯片的地址空间中写入一个文件的数据。应理解,字节写入命令和文件写入命令,均由用户指定写入地址,即由用户指定需要从FLASH芯片的地址空间的哪个地址开始写入。
现有技术中,用户在PMON下向计算机输入关于FLASH芯片的写入命令(例如字节写入命令或文件写入命令)时,因操作失误或者对FLASH芯片的写操作特性的不了解,易导致存储在FLASH芯片中固定地址段的网络设备的MAC地址被随意更改(例如MAC地址被擦除、MAC地址被重写、MAC地址被改写等),进而导致计算机出现无MAC地址,或MAC地址与同一局域网中其它网络设备的MAC地址冲突的情况,造成计算机的网络通信失败。
发明内容
本发明提供一种数据写入方法、装置及存储介质,用于解决现有技术中用户在PMON下向计算机输入关于FLASH芯片的写入命令时,因操作失误或者对FLASH芯片的写操作特性的不了解,而导致存储在FLASH芯片中固定地址段的网络设备的MAC地址被随意更改的问题。
本发明第一方面提供一种数据写入方法,该方法包括:
接收用户输入的写入命令,所述写入命令用于请求将待写入数据写入存储器,所述写入命令包括所述待写入数据的写入地址;
当所述写入地址位于预设地址段内时,推送警告信息,所述警告信息用于指示所述写入地址错误;其中,所述预设地址段包括所述存储器的目标扇区存储至少一个网络设备地址的地址范围。
在一种可能的实施方式中,所述方法还包括:
当所述写入地址未位于所述预设地址段内时,根据所述写入地址,将所述待写入数据写入所述存储器中。
在一种可能的实施方式中,所述写入命令为字节写入命令,所述推送警告信息之前,所述方法还包括:
判断所述至少一个网络设备地址中是否存在与预设取值相同的字节,所述预设取值为所述存储器擦除后的地址空间存储的字节的值;
若所述至少一个网络设备地址中存在与所述预设取值相同的字节,则获取所述预设地址段。
在一种可能的实施方式中,所述写入命令为字节写入命令,所述预设地址段的起始地址为所述目标扇区存储所述至少一个网络设备的起始地址、所述预设地址段的结束地址为所述目标扇区存储所述至少一个网络设备的结束地址。
在一种可能的实施方式中,所述写入命令为文件写入命令,所述预设地址段为所述目标扇区的地址段。
本发明第二方面提供一种数据写入装置,所述装置包括:
接收模块,用于接收用户输入的写入命令,所述写入命令用于请求将待写入数据写入存储器,所述写入命令包括所述待写入数据的写入地址;
推送模块,用于在所述写入地址位于预设地址段内时,推送警告信息,所述警告信息用于指示所述写入地址错误;其中,所述预设地址段包括所述存储器的目标扇区存储至少一个网络设备地址的地址范围。
在一种可能的实施方式中,所述装置还包括:
写入模块,用于在所述写入地址未位于所述预设地址段内时,根据所述写入地址,将所述待写入数据写入所述存储器中。
在一种可能的实施方式中,所述写入命令为字节写入命令,所述装置还包括:
判断模块,用于在所述推送模块推送警告信息之前,判断所述至少一个网络设备地址中是否存在与预设取值相同的字节,所述预设取值为所述存储器擦除后的地址空间存储的字节的值;
获取模块,用于在所述至少一个网络设备地址中存在与所述预设取值相同的字节时,获取所述预设地址段。
在一种可能的实施方式中,所述写入命令为字节写入命令,所述预设地址段的起始地址为所述目标扇区存储所述至少一个网络设备的起始地址、所述预设地址段的结束地址为所述目标扇区存储所述至少一个网络设备的结束地址。
在一种可能的实施方式中,所述写入命令为文件写入命令,所述预设地址段为所述目标扇区的地址段。
本发明第三方面提供一种数据写入装置,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以执行第一方面任一项所述的方法。
本发明第四方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现第一方面任一项所述的方法。
本发明提供的数据写入方法、装置及存储介质,处理器能够根据写入命令所携带的写入地址,判断该写入地址是否位于存储有至少一个网络设备的地址的预设地址段内,若该写入地址位于该预设地址段内,则不执行该写入命令,而是推送用于指示所述写入地址错误的警告信息。通过这种方式,可以保护存储在存储器中的网络设备的地址不会被随意更改,可以解决用户在PMON下向计算机输入关于FLASH芯片的写入命令时,因操作失误或者对FLASH芯片的写操作特性的不了解,而导致存储在FLASH芯片中固定地址段的网络设备的MAC地址被随意更改的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为计算机的结构示意图;
图2为本发明提供的一种数据写入方法的流程示意图;
图3为本发明提供的一种数据写入装置的结构示意图;
图4为本发明提供的另一种数据写入装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
芯片组是指一组共同工作的集成电路芯片,负责将计算机的处理器和计算机的其他部分相连接。在计算机领域,芯片组一词通常指两个主要的主板芯片,即北桥和南桥。图1为计算机的结构示意图,如图1所示,目前,一些计算机使用专用桥片组(简称:桥片)作为计算系统的芯片组,为处理器提供南北桥功能。
媒体访问控制地址(Media Access Control Address,MAC),也叫硬件地址,具有唯一性。因此,在网络通信过程中,通常都使用MAC地址定义网络设备的位置。网络设备无MAC地址,或网络设备的MAC地址与同一局域网中其它网络设备的MAC地址冲突,都会造成网络通信失败。
上述所说的桥片集成有两路GMAC控制器,该两路GMAC控制器通过接口连接外置的GMAC物理层(Physical,PHY)芯片(图1中未示出),可以作为计算机的两个网络设备(也可以称为网卡设备),实现计算机的网络通信。为了便于后续描述,该两个网络设备分别称为网络设备1和网络设备2。
参阅图1所示,计算机包括依次连接的处理器、桥片和FLASH芯片,其中,相较于现有技术,该FLASH芯片为额外外接在桥片外的存储器,用于存储网络设备的MAC地址和其他信息。具体的,上述所说的桥片外接有FLASH芯片,该FLASH芯片也可以称为闪存,是一种在断电状态下仍保持存储数据信息的存储器。FLASH芯片的地址空间由多个扇区(Sector)组成,每个扇区的大小为4KB,每个扇区的存储地址从0x0000至0x0fff。现有技术中,桥片的两个网络设备的MAC地址存储在该FLASH芯片的地址空间的第一个Sector0的固定地址段中。具体地,网络设备1的MAC地址存放在Sector0的0x0000至0x0005的地址段中,占6个字节。网络设备2的MAC地址存放在Sector0的0x0010至0x0015地址段中,也占6个字节。
PMON是一个兼备基本输入输出系统(Basic Input Output System,BIOS)和bootloader部分功能的开放源码软件。PMON是计算机的“固件”,可以视为是计算机的硬件的一部分,在计算机中的作用是对硬件进行最基本的初始化,是硬件与操作系统内核的接口。PMON上集成了2个关于桥片外接的FLASH芯片的写命令,分别是字节写入命令和文件写入命令。其中,字节写入命令,用于在FLASH芯片的地址空间中写入一个字节的数据。文件写入命令,用于在FLASH芯片的地址空间中写入一个文件的数据。应理解,字节写入命令和文件写入命令,均由用户指定写入地址(即需要用户指定从FLASH芯片的地址空间的哪个地址开始写入)。
该FLASH芯片支持按Sector大小擦除,即每次最少擦除4KB大小的地址空间,擦除后的地址空间存储的字节的值为0xff。FLASH芯片写操作的特点是,必须先擦除后才能写入新数据。即,写入新数据的地址空间一定是被擦除过的地址空间。在本申请文件中,地址空间和地址的概念等同,本实施例对此不进行区分。
当用户在PMON下向计算机输入字节写入命令,并指定待写入数据的写入地址位于Sector0的0x0000至0x0005之间或0x0010至0x0015之间时,处理器在执行该字节写入命令时,不会执行擦除操作,而是会直接执行写操作。此时,若FLASH芯片上该写入地址上存储的值为0xff,即当前时刻该写入地址所指示的地址空间中存储的值为0xff,处理器会误认为该写入地址为擦除数据后的地址,则处理器会直接执行上述写入操作,导致FLASH芯片所存储的网络设备的地址被改写。
例如,假定位于Sector0的0x0000-0x0005的网络设备1的MAC地址为00:11:22:AB:FF:66。即,网络设备1的MAC地址存储在FLASH芯片的扇区Sector0中,占用该扇区Sector0的6个字节的地址空间。换而言之,网络设备1的MAC地址可以视为6组数据,每组数据占用一个字节的地址空间。即,00占用一个字节的地址空间,11占用一个字节的地址空间,22占用一个字节的地址空间,AB占用一个字节的地址空间,FF占用一个字节的地址空间,66占用一个字节的地址空间。
在该场景下,以用户在PMON下向计算机输入字节写入命令为例,假定该字节写入命令所指示的待写入数据为AC,所指定的写入地址为0x0004。在该示例下,因0x0004上存储的值为0xff(即写入地址0x0004上存储的值为0xff),此时,处理器会认为该写入地址0x0004为经过擦除数据后的地址,则处理器会执行该写操作,将0x0004上存储的值改写为AC,导致网络设备1的MAC地址变为00:11:22:AB:AC:66。若该字节写入命令所指示的待写入数据为AC,所指定的写入地址为0x0005。在该示例下,因0x0005所上存储为0x66,并非是0xff;此时,处理器会认为该写入地址为未经过擦除数据后的地址,在该场景下,处理器不会执行该写操作。即,写入失败。
也就是说,当字节写入命令所指定的写入地址对应的地址空间中存储的值是0xff时,处理器会执行该字节写入命令,使用该字节写入命令所指示的待写入字节替代该写入地址对应的地址空间中原本存储的值0xff。
相应地,当用户在PMON下向计算机输入文件写入命令,并指定待写入文件的写入地址位于Sector0的0x0000至0x0FFF的地址段时,处理器会先执行擦除Sector0的操作,导致存储在Sector0中的0x0000至0x0015地址段的网络设备1的MAC地址和网络设备2的MAC地址均会被擦成0xff。处理器在完成擦除Sector0的操作后,从文件写入命令指定的写入地址开始,往Sector0中写入该待写入文件的数据。此时,若该待写入文件的写入地址位于0x0000至0x0015之间,则会导致网络设备1的MAC地址和网络设备2的MAC地址被重新改写。
应理解,上述处理器在向FLASH芯片执行写入操作时,可以通过桥片来执行该写入操作。通常而言,桥片通过串行外设接口(Serial Peripheral Interface,SPI)控制器向FLASH芯片执行该写入操作,因此,在一些实施例中,上述字节写入命令也可以称为SPI字节写入命令,文件写入命令也可以称为SPI文件写入命令,SPI字节写入命令和SPI文件写入命令可以统称为SPI写入命令。
通过上述描述可以看出,由于上述FLASH芯片自身的写特点(即写入新数据的地址空间一定是被擦除过的地址空间,以及,擦除后的地址空间存储的值为0xFF等),致使用户向计算机输入关于FLASH芯片的写入命令时,因操作失误或者对FLASH芯片的写操作特性的不了解,易导致存储在FLASH芯片中固定地址段的网络设备的MAC地址被随意更改(MAC地址被擦除、MAC地址被重写、MAC地址被改写等),进而导致计算机出现无MAC地址,或MAC地址与同一局域网中其它网络设备的MAC地址冲突的情况,造成计算机的网络通信失败。
考虑到上述因FLASH芯片自身的写特点所导致的问题,本发明提供了一种数据写入方法,处理器在执行写入命令时,能够根据写入命令所携带的写入地址,判断该写入地址是否位于存储有至少一个网络设备的地址的预设地址段内,若该写入地址位于该预设地址段内,则不执行该写入命令,而是推送用于指示所述写入地址错误的警告信息。通过这种方式,可以保护存储在存储器中的网络设备的地址不会被随意更改,可以解决用户向计算机输入关于FLASH芯片的写入命令时,因操作失误或者对FLASH芯片的写操作特性的不了解,而导致存储在FLASH芯片中固定地址段的网络设备的MAC地址被随意更改的问题。其中,上述网络设备的地址即为该网络设备的MAC地址。
本发明所提供的方法可以适用于包括存储器的电子设备,该存储器用于存储网络设备的MAC地址、且具有如下写特点:写入新数据的地址空间一定是被擦除过的地址空间,以及,擦除后的地址空间存储的值为预设值,该预设值例如可以为0xFF。例如,该存储器可以为前述所说的FLASH芯片。
以FLASH芯片为例,本发明所提供的方法所适用的电子设备,可以为通过桥片为处理器提供南北桥功能、且桥片的网络设备的MAC地址存储在桥片外接的FLASH芯片的电子设备(例如图1所示的计算机)。该电子设备可以使用PMON作为“固件”,对电子设备的硬件进行最基本的初始化,也可以使用UEFI,对电子设备的硬件进行最基本的初始化,也可以采用其他固件对电子设备的硬件进行初始化。即,本发明实施例对该电子设备所使用的固件不进行限定。也就是说,本发明实施例所提供的方法,适用于任一使用该FLASH芯片的电子设备,在此不再一一列举。
本发明所提供的数据写入方法的执行主体可以为数据写入装置,该数据写入装置可以为驱动程序、程序代码软件,也可以为存储有相关执行代码的介质,例如,U盘等;或者,该数据写入装置还可以为集成或安装有相关执行代码的实体装置,例如,芯片、微控制单元(Microcontroller Unit,简称MCU)、电脑、计算机等电子设备。
举例来说,该方案可应用于计算机中,该计算机的处理器具有高性能低功耗的特点,可应用于服务器、高性能计算机、低能耗数据中心、个人高性能计算机、高端桌面应用、高吞吐计算应用、工业控制、数字信号处理、高端嵌入式应用等。
下面结合图1所示的计算机结构,以集成或安装有相关执行代码的处理器为例,以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本发明提供的一种数据写入方法的流程示意图。如图2所示,该方法包括:
S101、接收用户输入的写入命令,所述写入命令用于请求将待写入数据写入存储器,所述写入命令包括所述待写入数据的写入地址。
上述所说的写入命令例如可以为前述所说的字节写入命令或文件写入命令。当然,上述写入命令还可以为现有技术中其他类型的写入命令,对此不再赘述。
当上述写入命令为字节写入命令时,待写入数据可以为一个字节大小的数据。当上述写入命令为文件写入命令时,待写入数据可以为一个文件的数据。在该场景下,该写入命令还可以包括待写入文件当前所在的路径。
上述所说的存储器可以为任一具有先擦除后才能写入新数据的写特点的存储器,例如前述所说的FLASH芯片。
S102、判断所述写入地址是否位于存储有至少一个网络设备的地址的预设地址段内。若是,则执行步骤S103,若否,则执行步骤S104。
其中,所述预设地址段包括所述存储器的目标扇区存储至少一个网络设备地址的地址范围,即上述目标扇区为FLASH芯片中存储有网络设备地址的扇区。该预设地址段具体可以根据计算机中至少一个网络设备的地址在目标扇区中的地址,以及,存储器的写特点来确定。
以存储器为FLASH芯片为例,若所述写入命令为字节写入命令,则所述预设地址段的起始地址可以为目标扇区存储所述至少一个网络设备的起始地址、所述预设地址段的结束地址为所述目标扇区存储所述至少一个网络设备的结束地址。或者,所述预设地址段的起始地址可以小于目标扇区存储所述至少一个网络设备的起始地址、所述预设地址段的结束地址可以大于目标扇区存储所述至少一个网络设备的结束地址。
若所述写入命令为文件写入命令、且FLASH芯片是按照扇区大小擦除,则所述预设地址段为所述目标扇区的地址段。或者,所述预设地址段包括目标扇区的地址段。应理解,若FLASH芯片是按照块大小擦除,则所述写入命令为文件写入命令时,所述预设地址段为所述目标扇区所在的块的地址段,或者,所述预设地址段包括所述目标扇区所在的块的地址段。若FLASH芯片是按照整片大小擦除,则所述写入命令为文件写入命令时,所述预设地址段为所述目标扇区所在的片的地址段,或者,所述预设地址段包括目标扇区所在的片的地址段。
假定网络设备1的MAC地址存放在存储器的Sector0的0x0000至0x0005的地址段中,占6个字节。网络设备2的MAC地址存放在存储器的Sector0的0x0010至0x0015地址段中,也占6个字节。以存储器为FLASH芯片为例,若上述写入命令为字节写入命令,则上述预设地址段可以为Sector0的0x0000至0x0015。若上述写入命令为文件写入命令、且FLASH芯片是按照扇区大小擦除,则上述预设地址段例如可以为Sector0的0x0000至0x0fff。
可选的,在一些实施例中,当所述写入命令为字节写入命令时,处理器还可以先判断所述至少一个网络设备地址中是否存在与预设取值相同的字节,所述预设取值为所述存储器擦除后的地址空间存储的字节的值。若所述至少一个网络设备地址中存在与所述预设取值相同的字节,则处理器再获取所述预设地址段,并执行步骤S102的判断,以甄别所述写入地址是否位于存储有至少一个网络设备的地址的预设地址段内。
若所述至少一个网络设备地址中不存在与所述预设取值相同的字节,则处理器可以按照现有的字节写入命令的处理方式,对该写入命令进行处理。即,先判断写入命令所指定的写入地址是否为经过擦除数据后的地址,若是,则执行该写入命令,若否,则不执行该写入命令。此时,由于该至少一个网络设备地址中不存在预设取值相同的字节,因此,即便写入命令所指定的写入地址落入存储网络设备的地址的地址范围,也不会发生网络设备的地址被改写的情况。
S103、推送警告信息,所述警告信息用于指示所述写入地址错误。
当用户输入的写入命令所指定的写入地址位于存储有至少一个网络设备的地址的预设地址段内时,处理器不再执行该写入命令,而是推送警告信息,以告知用户写入地址错误。通过这种方式,可以避免存储在存储器中的网络设备的地址被随意更改的问题,进而可以避免因网络设备MAC地址被更改,而造成计算机的网络通信失败的问题。
可选的,在一些实施例中,所述警告信息还可以用于指示用户重写所述待写入数据的写入地址。即,该警告信息还可以包括能够让用户重新输入待写入数据的写入地址的命令行。
S104、根据所述写入地址,将所述待写入数据写入所述存储器中。
以存储器为FLASH芯片为例,则当用户输入的写入命令所指定的写入地址没有位于存储有至少一个网络设备的地址的预设地址段内时,可以参见前述关于现有技术中如何根据写入命令(字节写入命令或文件写入命令)写入待写入数据的过程。
下面通过一个具体的示例来对本发明提供的数据写入方法进行说明:
以存储器为FLASH芯片为例,假定网络设备1的MAC地址存放在FLASH芯片的Sector0的0x0000至0x0005的地址段中,占6个字节。网络设备2的MAC地址存放在FLASH芯片的Sector0的0x0010至0x0015地址段中,也占6个字节。
若写入命令为字节写入命令、预设地址段为Sector0的0x0000至0x0015,则在该场景下,当处理器接收到用户在PMON下输入的字节写入命令时,若该字节写入命令所指定的写入地址位于Sector0的0x0000至0x0015之间,例如为Sector0的0x0001,则处理器会拒绝执行写入命令,并通过警告信息提示用户写入地址错误,并提示用户重写写入地址。若该字节写入命令所指定的写入地址没有位于Sector0的0x0000至0x0015,例如为Sector0的0x0016,则处理器会按照现有的写入流程,执行写入操作。例如,处理器会先判断写入地址上存储的值是否为0xff,若是,则进行写操作,若否,则拒绝执行写入命令。
若写入命令为文件写入命令、预设地址段为Sector0的0x0000至0x0fff、FLASH芯片是按照扇区大小擦除,则在该场景下,当处理器接收到用户在PMON下输入的文件写入命令时,若该文件写入命令所指定的写入地址位于Sector0的0x0000至0x0FFF之间,例如为Sector0的0x0001,则处理器会拒绝执行该写入命令,并通过警告信息提示用户写入地址错误,并提示用户重写写入地址。若该文件写入命令所指定的写入地址没有位于Sector0的0x0000至0x0fff,例如,位于其它Sector,则处理器会按照现有的写入流程,执行写入操作。例如,处理器先执行扇区的擦除操作,再根据写入地址,执行写入操作。
通过上述方式,可以保护存储在FLASH芯片的Sector0中的网络设备的地址不会被随意更改,可以避免存储在FLASH芯片中的网络设备的地址被随意更改的问题,进而可以避免因网络设备MAC地址被更改,而造成计算机的网络通信失败的问题。
本发明提供的数据写入方法,处理器能够根据写入命令所携带的写入地址,判断该写入地址是否位于存储有至少一个网络设备的地址的预设地址段内,若该写入地址位于该预设地址段内,则不执行该写入命令,而是推送用于指示所述写入地址错误的警告信息。通过这种方式,可以保护存储在存储器中的网络设备的地址不会被随意更改,可以解决用户在PMON下向计算机输入关于FLASH芯片的写入命令时,因操作失误或者对FLASH芯片的写操作特性的不了解,而导致存储在FLASH芯片中固定地址段的网络设备的MAC地址被随意更改的问题。
应理解,虽然上述实施例均以如何保护存储在存储器中的网络设备的地址不会被随意更改,对本发明实施例提供的方法进行了说明和介绍。但是,本领域技术人员可以理解的是,上述实施例也可以适用于保护存储在存储器中的任意数据,以避免该数据不会被随意更改。在该场景下,上述预设地址段可以根据所需要保护的数据所在的地址空间确定,其实现方式类似,对此不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图3为本发明提供的一种数据写入装置的结构示意图。该数据写入装置可以通过软件和/或硬件的结合实现上述处理器的部分或全部,例如,该数据写入装置可以为处理器上的一个芯片、或者,该数据写入装置可以为该处理器等。
如图3所示,该数据写入装置可以包括:接收模块11和推送模块12。其中,
接收模块11,用于接收用户输入的写入命令,所述写入命令用于请求将待写入数据写入存储器,所述写入命令包括所述待写入数据的写入地址;
推送模块12,用于在所述写入地址位于预设地址段内时,推送警告信息,所述警告信息用于指示所述写入地址错误;其中,所述预设地址段包括所述存储器的目标扇区存储至少一个网络设备地址的地址范围。
示例性的,当所述写入命令为字节写入命令时,所述预设地址段的起始地址为所述目标扇区存储所述至少一个网络设备的起始地址、所述预设地址段的结束地址为所述目标扇区存储所述至少一个网络设备的结束地址。当所述写入命令为文件写入命令时,所述预设地址段为所述目标扇区的地址段。
继续参照图3,可选的,在一些实施例中,上述装置还可以包括:
写入模块13,用于在所述写入地址未位于所述预设地址段内时,根据所述写入地址,将所述待写入数据写入所述存储器中。
继续参照图3,可选的,在一些实施例中,当所述写入命令为字节写入命令时,上述装置还可以包括:
判断模块14,用于在所述推送模块12推送警告信息之前,判断所述至少一个网络设备地址中是否存在与预设取值相同的字节,所述预设取值为所述存储器擦除后的地址空间存储的字节的值;
获取模块15,用于在所述至少一个网络设备地址中存在与所述预设取值相同的字节时,获取所述预设地址段。
本发明提供的数据写入装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图4为本发明提供的另一种数据写入装置的结构示意图。如图4所示,该数据写入装置可以包括:至少一个处理器21和存储器22。图4示出的是以一个处理器为例的数据写入装置,其中,
存储器22,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器22可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器21用于执行所述存储器22存储的计算机执行指令,以实现上述实施例中的数据写入方法,其实现原理和技术效果类似,在此不再赘述。
其中,处理器21可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口、存储器22和处理器21独立实现,则通信接口、存储器22和处理器21可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口、存储器22和处理器21集成在一块芯片上实现,则通信接口、存储器22和处理器21可以通过内部接口完成相同间的通信。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质。具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (7)
1.一种数据写入方法,其特征在于,所述方法包括:
接收用户在PMON下输入的写入命令,所述写入命令用于请求将待写入数据写入存储器,所述写入命令包括所述待写入数据的写入地址,其中,所述存储器为FLASH芯片,所述FLASH芯片具有如下写特征:写入新数据的地址空间是被擦除过的地址空间,所述写入命令包括字节写入命令和文件写入命令;
若所述写入命令为字节写入命令,则判断至少一个网络设备地址中是否存在与预设取值相同的字节,所述预设取值为所述存储器擦除后的地址空间存储的字节的值;
若所述至少一个网络设备地址中存在与所述预设取值相同的字节,则获取预设地址段;
当所述写入地址位于预设地址段内时,推送警告信息,所述警告信息用于指示所述写入地址错误;其中,所述预设地址段包括所述存储器的目标扇区存储至少一个网络设备地址的地址范围;
若所述至少一个网络设备地址中不存在与所述预设取值相同的字节,则先判断写入命令所指定的写入地址是否为经过擦除数据后的地址,若是,则执行该写入命令,若否,则不执行该写入命令;
若所述写入命令为文件写入命令,所述预设地址段为所述目标扇区的地址段,当所述写入地址位于所述预设地址段内时,则拒绝执行写入命令,并通过警告信息提示用户写入地址错误;当所述写入地址没有位于所述预设地址段内时,则先执行扇区的擦除操作,再根据写入地址,执行写入操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述写入地址未位于所述预设地址段内时,根据所述写入地址,将所述待写入数据写入所述存储器中。
3.根据权利要求1或2所述的方法,其特征在于,若所述写入命令为字节写入命令,所述预设地址段的起始地址为所述目标扇区存储所述至少一个网络设备的起始地址、所述预设地址段的结束地址为所述目标扇区存储所述至少一个网络设备的结束地址。
4.一种数据写入装置,其特征在于,所述装置包括:
接收模块,用于接收用户在PMON下输入的写入命令,所述写入命令用于请求将待写入数据写入存储器,所述写入命令包括所述待写入数据的写入地址,其中,所述存储器为FLASH芯片,所述FLASH芯片具有如下写特征:写入新数据的地址空间是被擦除过的地址空间,所述写入命令包括字节写入命令和文件写入命令;
若所述写入命令为字节写入命令,所述装置还包括:
判断模块,用于判断至少一个网络设备地址中是否存在与预设取值相同的字节,所述预设取值为所述存储器擦除后的地址空间存储的字节的值;
获取模块,用于在所述至少一个网络设备地址中存在与所述预设取值相同的字节时,获取预设地址段;
推送模块,用于在所述写入地址位于预设地址段内时,推送警告信息,所述警告信息用于指示所述写入地址错误;其中,所述预设地址段包括所述存储器的目标扇区存储至少一个网络设备地址的地址范围;
其中,若所述至少一个网络设备地址中不存在与所述预设取值相同的字节,则先判断写入命令所指定的写入地址是否为经过擦除数据后的地址,若是,则执行该写入命令,若否,则不执行该写入命令;
其中,若所述写入命令为文件写入命令,所述预设地址段为所述目标扇区的地址段,当所述写入地址位于所述预设地址段内时,则拒绝执行写入命令,并通过警告信息提示用户写入地址错误;当所述写入地址没有位于所述预设地址段内时,则先执行扇区的擦除操作,再根据写入地址,执行写入操作。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
写入模块,用于在所述写入地址未位于所述预设地址段内时,根据所述写入地址,将所述待写入数据写入所述存储器中。
6.一种数据写入装置,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以执行如权利要求1-3中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现权利要求1-3中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910559384.3A CN112148201B (zh) | 2019-06-26 | 2019-06-26 | 数据写入方法、装置及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910559384.3A CN112148201B (zh) | 2019-06-26 | 2019-06-26 | 数据写入方法、装置及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112148201A CN112148201A (zh) | 2020-12-29 |
| CN112148201B true CN112148201B (zh) | 2024-12-03 |
Family
ID=73869665
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910559384.3A Active CN112148201B (zh) | 2019-06-26 | 2019-06-26 | 数据写入方法、装置及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112148201B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119415470B (zh) * | 2024-09-23 | 2025-11-21 | 深圳市锐能微科技有限公司 | 双Bank属性调整方法、系统、终端及可读存储介质 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1993009495A1 (en) * | 1991-11-05 | 1993-05-13 | Australian Tech Support Pty. Ltd. | Computer memory protection |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2759824B2 (ja) * | 1989-09-08 | 1998-05-28 | 日本電信電話株式会社 | データ記憶装置のアドレス誤り検出方法 |
| US6122758A (en) * | 1997-05-13 | 2000-09-19 | Micron Electronics, Inc. | System for mapping environmental resources to memory for program access |
| TWI266240B (en) * | 2003-05-20 | 2006-11-11 | Via Tech Inc | A method preventing to re-write MAC address of DMI's peripheral devices |
| TW200743022A (en) * | 2006-05-02 | 2007-11-16 | Inventec Corp | Media access control address error detection method in a network card |
| CN100568832C (zh) * | 2006-06-13 | 2009-12-09 | 英业达股份有限公司 | 网络卡上媒介存取控制地址错误的侦测方法 |
| US8086585B1 (en) * | 2008-09-30 | 2011-12-27 | Emc Corporation | Access control to block storage devices for a shared disk based file system |
| TWI451248B (zh) * | 2012-01-13 | 2014-09-01 | Phison Electronics Corp | 資料保護方法、記憶體控制器與記憶體儲存裝置 |
-
2019
- 2019-06-26 CN CN201910559384.3A patent/CN112148201B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1993009495A1 (en) * | 1991-11-05 | 1993-05-13 | Australian Tech Support Pty. Ltd. | Computer memory protection |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112148201A (zh) | 2020-12-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110032405B (zh) | 系统开机码存储器管理方法、存储器装置与应用其的电子系统 | |
| TWI582791B (zh) | 使用快閃記憶體及一限制功能的記憶體控制器而對一電子裝置開機的方法及電腦儲存媒體 | |
| KR101395778B1 (ko) | 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법 | |
| TWI693518B (zh) | 資料儲存裝置及避免韌體失效之方法 | |
| US10866881B1 (en) | Firmware debug trace capture | |
| US20120117367A1 (en) | Electronic apparatus and booting method thereof | |
| CN104424044A (zh) | 伺服器系统 | |
| CN107346268B (zh) | 广义写入操作验证方法 | |
| US8180930B2 (en) | Information processing device, and device initialization method in the information processing device | |
| CN107729071B (zh) | 一种初始化网卡的方法及装置 | |
| TWI475485B (zh) | 韌體更新之方法及其相關電腦系統 | |
| US9672047B1 (en) | Systems and methods for accessing a bootable partition on a serial peripheral interface device | |
| JP7355876B2 (ja) | プログラム起動方法及び機器、記憶媒体 | |
| US10977050B2 (en) | Method for managing system boot code memory, memory device and electronic system using the same | |
| US10871970B1 (en) | Memory channel storage device detection | |
| US8499142B1 (en) | UEFI boot loader for loading non-UEFI compliant operating systems | |
| US7849300B2 (en) | Method for changing booting sources of a computer system and a related backup/restore method thereof | |
| CN117687703A (zh) | 服务器的启动方法、装置、系统、存储介质和电子设备 | |
| EP3022643B1 (en) | Techniques for dynamically redirecting device driver operations to user space | |
| CN112148201B (zh) | 数据写入方法、装置及存储介质 | |
| CN115408204A (zh) | 芯片双固件备份启动方法、装置、电子设备及存储介质 | |
| CN113646745A (zh) | 禁用软件持久性 | |
| KR20110078171A (ko) | 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법 | |
| CN107480052B (zh) | 一种定位宕机时bios代码的方法及装置 | |
| CN117827304A (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 | ||
| CB02 | Change of applicant information | ||
| CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
| GR01 | Patent grant | ||
| GR01 | Patent grant |