CN116302031A - 一种电动汽车ECU的bootloader更新方法、系统及存储介质 - Google Patents

一种电动汽车ECU的bootloader更新方法、系统及存储介质 Download PDF

Info

Publication number
CN116302031A
CN116302031A CN202310298041.2A CN202310298041A CN116302031A CN 116302031 A CN116302031 A CN 116302031A CN 202310298041 A CN202310298041 A CN 202310298041A CN 116302031 A CN116302031 A CN 116302031A
Authority
CN
China
Prior art keywords
update
boot
ecu
file
bootloader
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.)
Pending
Application number
CN202310298041.2A
Other languages
English (en)
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.)
Zhejiang Aosiweier Electric Technology Co ltd
Original Assignee
Zhejiang Aosiweier Electric Technology Co ltd
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 Zhejiang Aosiweier Electric Technology Co ltd filed Critical Zhejiang Aosiweier Electric Technology Co ltd
Priority to CN202310298041.2A priority Critical patent/CN116302031A/zh
Publication of CN116302031A publication Critical patent/CN116302031A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及软件技术领域,具体涉及一种电动汽车ECU的bootloader更新方法、系统及存储介质,所述方法包括以下步骤:读取new_boot和old_boot,生成update刷新文件;将所述update刷新文件发送至待更新ECU;所述待更新ECU执行所述update刷新文件后复位,完成bootloader的更新。本发明的有益技术效果包括:通过生成update刷新文件,由ECU执行后完成bootloader的更新,实现高效率且低成本的bootloader更新;通过获得差异部分,减少update刷新文件的大小,便于进行远程传输;通过仅更新存在差异部分区块,实现提高bootloader更新效率。

Description

一种电动汽车ECU的bootloader更新方法、系统及存储介质
技术领域
本发明涉及软件技术领域,具体涉及一种电动汽车ECU的bootloader更新方法、系统及存储介质。
背景技术
传统汽车通常采用内燃机作为动力,内燃机加速了人类有限能源的消耗,同时也造成了严重的环境问题。具有零排放、热辐射低、噪音低且环境优化的新能源汽车受到了人们的重视和欢迎。在电动汽车控制器不同的开发阶段,可能会产生控制逻辑上的更新,从而导致需要进行软件层次上的更新,即需要对控制器进行软件更新。然而,在对控制器boot更新时,需要将相关控制器从整车系统上拆卸下来,并打开控制器壳体,通过仿真器进行boot层次的更新。这种更新方式效率低且需要维护人员现场操作。因此,需要研究能够实现ECU更高效率bootloader更新的技术。
现有技术公开了一种基于Bootloader自更新的ECU固件更新方法,包括:步骤S1:划分ECU系统的存储空间;步骤S2:判断ECU系统接收到应用程序更新请求还是Bootloader更新请求,若为应用程序更新请求,执行步骤S3,若为Bootloader更新请求,执行步骤S4;步骤S3:采用增量更新方式更新应用程序代码区的代码,执行步骤S5;步骤S4:Bootloader程序进行整体式自更新Bootloader区的代码,执行步骤S5;步骤S5:重写版本信息区中的相应版本信息,ECU系统复位。与现有技术相比,其技术方案具有保证Bootloader的安全性的优点。但其技术方案仍然不能解决目前ECU的bootloader更新效率低的技术问题。
发明内容
本发明所要解决的技术问题是:目前ECU的bootloader更新效率低的技术问题。提出了一种电动汽车ECU的bootloader更新方法、系统及存储介质,能够提高ECU的bootloader更新效率并降低更新成本。
为解决上述技术问题,本发明采用如下技术方案:一种电动汽车ECU的bootloader更新方法,包括以下步骤:
读取new_boot和old_boot,生成update刷新文件;
将所述update刷新文件发送至待更新ECU;
所述待更新ECU执行所述update刷新文件后复位,完成bootloader的更新。
作为优选,生成update刷新文件的方法包括:
对比所述new_boot和所述old_boot,获得所述new_boot和所述old_boot的差异部分;
按次序将所述差异部分排序编号;
建立地址表,所述地址表记录所述差异部分的编号、起始地址和终止地址;
全部所述差异部分及所述地址表构成所述update刷新文件。
作为优选,生成update刷新文件的方法包括:
将ECU的存储空间划分为若干个区块,为区块赋予区块号;
对比所述new_boot和所述old_boot,获得所述new_boot和所述old_boot的差异部分;
记录所述差异部分落入的全部区块号,记为差异区块号;
记录所述差异区块号对应的new_boot内容,全部区块的起止地址、全部所述差异区块号及全部所述差异区块号对应的new_boot内容构成所述update刷新文件。
作为优选,将ECU的存储空间划分为若干个区块的方法包括:
将ECU的存储空间按照预设长度划分为若干个区块并排序;
获得所述差异部分后,调整每个区块的长度,使存在所述差异部分的区块数量最小;
记录每个区块的长度及序号,建立区块长度函数,所述区块长度函数的输入为所述序号,所述区块长度函数的输出为所述序号对应区块的长度。
作为优选,所述区块长度函数为多项式函数,所述多项式函数的自变量x为所述序号,所述多项式函数的函数值为所述序号对应区块的长度。
作为优选,将所述update刷新文件发送至待更新ECU的方法包括:
将所述update刷新文件进行加密,将加密后的所述update刷新文件发送至所述待更新ECU。
作为优选,将所述update刷新文件进行加密的方法包括:
将所述update刷新文件转换为二进制数据,将所述二进制数据截断为若干个二进制数D;
将二进制数D对N1取余,获得商k和余数u;
将商k对N2取余,获得商k1和余数u1,将余数u对N3取余,获得商k2和余数u2;
建立一元三次多项式,使得所述一元三次多项式的自变量取值为预设的x1、x2、x3及x4时,所述一元三次多项式的值分别等于k1、u1、k2和u2,存储所述一元三次多项式的系数作为所述二进制数D的加密值E;
全部二进制数D的加密值E构成所述update刷新文件的密文,N1、N2、N3、x1、x2、x3及x4均为事先约定值。
作为优选,所述N1、N2及N3均为预设质数,且满足N1>N3>N2。
一种嵌入式系统,所述嵌入式系统包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述的一种电动汽车ECU的bootloader更新方法。
一种可读存储介质,所述可读存储介质存储有程序,所述程序被处理器执行时实现如前述的一种电动汽车ECU的bootloader更新方法。
本发明的有益技术效果包括:通过生成update刷新文件,由ECU执行后完成bootloader的更新,实现高效率且低成本的bootloader更新;通过获得差异部分,减少update刷新文件的大小,便于进行远程传输;通过对存储空间进行区块划分,仅更新存在差异部分的区块,实现提高bootloader更新的效率;将update刷新文件进行加密,提高了update刷新文件的安全性。
本发明的其他特点和优点将会在下面的具体实施方式、附图中详细的揭露。
附图说明
下面结合附图对本发明做进一步的说明:
图1为本发明实施例一ECU的bootloader更新方法流程示意图。
图2为本发明实施例一生成update刷新文件方法流程示意图。
图3为本发明实施例一将所述update刷新文件进行加密方法流程示意图。
图4为本发明实施例二生成update刷新文件方法流程示意图。
图5为本发明实施例二将ECU的存储空间划分为若干个区块方法流程示意图。
具体实施方式
下面结合本发明实施例的附图对本发明实施例的技术方案进行解释和说明,但下述实施例仅为本发明的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其他实施例,都属于本发明的保护范围。
在下文描述中,出现诸如术语“内”、“外”、“上”、“下”、“左”、“右”等指示方位或者位置关系仅是为了方便描述实施例和简化描述,而不是指示或暗示所指的装置或者元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
一种电动汽车ECU的bootloader更新方法,请参阅附图1,包括以下步骤:
读取new_boot和old_boot,生成update刷新文件;
将update刷新文件发送至待更新ECU;
待更新ECU执行update刷新文件后复位,完成bootloader的更新。本方案通过生成update刷新文件,由ECU执行后完成bootloader的更新,实现高效率且低成本的bootloader更新。
在一些实施例中,bootloader自更新包括以下步骤:将需要更新的boot进行数据的填充和对齐,数据对齐的大小与具体单片机flash driver的编程能力有关,使其能够通过现有driver刷入到flash中。
将生成的文件通过一定方式生成driver可接受的c代码数组相关源文件和头文件,共包含所有的block生成的数组,每个数组对应的flash地址和大小,每个数组的校验和的相关数据。将生成的文件导入的具有flash driver的update工程中,并编译。
将生成后的update刷新文件按步骤1进行填充和数据对齐。通过原有的boot刷写APP的方案将Update更新到flash中,原有boot中定义can、lin或以太网刷写协议均可适用。由old_boot引导update运行。Update自动更新boot。
其中,update自动更新boot由多个步骤组成,具体为:
步骤1.擦除boot所在的flash block。
步骤2.检查boot的flash block是否擦除成功,擦除成功进入步骤3,擦除失败进入下列子步骤:
步骤2a.将固件跳转地址中的数据更新为Update的启动地址。
步骤2b.复位ECU,重新运行Update程序。
步骤3.将new_boot按块编程到boot对应的flash block区。
步骤4.根据固定的校验方式,对已编程区域进行相关校验,校验失败进入步骤2的子步骤,并终止update运行;校验成功进入步骤5。
步骤5.判断已编程大小是否小于new_boot的大小,若小于,则回到步骤3,编程下一块数据;若大于,进入步骤6。
步骤6.将固件跳转数据更新为new_boot的入口地址。
步骤7.擦除update程序的有效性。
步骤8.复位运行新boot。
另一方面,请参阅附图2,生成update刷新文件的方法包括:
对比new_boot和old_boot,获得new_boot和old_boot的差异部分;
按次序将差异部分排序编号;
建立地址表,地址表记录差异部分的编号、起始地址和终止地址;
全部差异部分及地址表构成update刷新文件。通过获得差异部分,减少update刷新文件的大小,便于进行远程传输。
通过将差异部分使用地址表进行记录,能够方便的找到差异部分所在的位置,通过flash的寻址总线能够快速的定位差异部分的起始地址,将差异部分写入flash即可完成updateloader的更新。
另一方面,本实施例提供了将update刷新文件发送至待更新ECU的方法,具体包括:将update刷新文件进行加密,将加密后的update刷新文件发送至待更新ECU。
另一方面,请参阅附图3,将update刷新文件进行加密的方法包括:
将update刷新文件转换为二进制数据,将二进制数据截断为若干个二进制数D;
将二进制数D对N1取余,获得商k和余数u;
将商k对N2取余,获得商k1和余数u1,将余数u对N3取余,获得商k2和余数u2;
建立一元三次多项式,使得一元三次多项式的自变量取值为预设的x1、x2、x3及x4时,一元三次多项式的值分别等于k1、u1、k2和u2,存储一元三次多项式的系数作为二进制数D的加密值E;
全部二进制数D的加密值E构成所述update刷新文件的密文,N1、N2、N3、x1、x2、x3及x4均为事先约定值。
如二进制数D=10000111110011100B=69532,N1=18269,N2=269,N3=6551。将二进制数D对N1=47963取余,获得商k=3和余数u=14725,将商k=3对N2=269取余,获得商k1=0和余数u1=3,将余数u=14725对N3=6551取余,获得商k2=2和余数u2=1623。即k1=0,u1=3,k2=2及u2=1623。预设的x1、x2、x3及x4分别为x1=5、x2=8、x3=10及x4=150,则建立的一元三次多项式可以为:
F(x)=0.002655588704641665*x^3-0.36107854020675745*x^2+5.351450079789073*x-18.062235481856636。需要注意的是,建立的一元三次多项式并不是唯一的。本次二进制数D的加密值E={0.002655588704641665,-0.36107854020675745,5.351450079789073,-18.062235481856636}。每个二进制数D都对应一个加密值E,全部加密值E以及N1、N2、N3、x1、x2、x3及x4构成update刷新文件的密文。
在另外的实施例中,N1、N2及N3均为预设质数,且满足N1>N3>N2。
本实施例记载技术方案通过对存储空间进行区块划分,仅更新存在差异部分的区块,实现提高bootloader更新的效率;将update刷新文件进行加密,提高了update刷新文件的安全性。
实施例二:
一种电动汽车ECU的bootloader更新方法,本实施例在实施例一的基础上,对update刷新文件的生成提出了新的技术方案。请参阅附图4,本实施例中生成update刷新文件的方法包括:
将ECU的存储空间划分为若干个区块,为区块赋予区块号;
对比new_boot和old_boot,获得new_boot和old_boot的差异部分;
记录差异部分落入的全部区块号,记为差异区块号;
记录差异区块号对应的new_boot内容,全部区块的起止地址、全部差异区块号及全部差异区块号对应的new_boot内容构成update刷新文件。
通过将全部差异区块号及相应起止地址,结合对应的new_boot内容,构成update刷新文件。更新时,将相应区块的内容写入flash即可。
请参阅附图5,将ECU的存储空间划分为若干个区块的方法包括:
将ECU的存储空间按照预设长度划分为若干个区块并排序;
获得差异部分后,调整每个区块的长度,使存在差异部分的区块数量最小;
记录每个区块的长度及序号,建立区块长度函数,区块长度函数的输入为序号,区块长度函数的输出为序号对应区块的长度。
区块长度函数为多项式函数,多项式函数的自变量x为序号,多项式函数的函数值为序号对应区块的长度。
调整区块的长度存在最小长度和最大长度的限制。通过将序号作为自变量x代入区块长度函数,即可获得区块的长度。
一种嵌入式系统,嵌入式系统包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如前述的一种电动汽车ECU的bootloader更新方法。
另一方面,本申请实施例提供了一种嵌入式系统,嵌入式系统包括存储器、处理器以及存储在存储器中并可在处理器上运行的程序,程序被处理器执行时实现如前述的方法。
嵌入式系统可以是一个通用嵌入式系统或一个专用嵌入式系统。在具体实现中,嵌入式系统可以是包括有多个服务器的服务器集群,如可以是包括有多个节点的区块链系统。本领域技术人员可以理解,仅仅是嵌入式系统的举例,并不构成对嵌入式系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器可以是中央处理单元(Central Processing Unit,CPU),处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器在一些实施例中可以是嵌入式系统的内部存储单元,比如嵌入式系统的硬盘或内存。存储器在另一些实施例中也可以是嵌入式系统的外部存储设备,比如嵌入式系统上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括嵌入式系统的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
另一方面,本申请实施例提供了一种可读存储介质,可读存储介质存储有程序,程序被处理器执行时实现如前述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,熟悉该本领域的技术人员应该明白本发明包括但不限于附图和上面具体实施方式中描述的内容。任何不偏离本发明的功能和结构原理的修改都将包括在权利要求书的范围中。

Claims (10)

1.一种电动汽车ECU的bootloader更新方法,其特征在于,
包括以下步骤:
读取new_boot和old_boot,生成update刷新文件;
将所述update刷新文件发送至待更新ECU;
所述待更新ECU执行所述update刷新文件后复位,完成bootloader的更新。
2.根据权利要求1所述的一种电动汽车ECU的bootloader更新方法,其特征在于,
生成update刷新文件的方法包括:
对比所述new_boot和所述old_boot,获得所述new_boot和所述old_boot的差异部分;
按次序将所述差异部分排序编号;
建立地址表,所述地址表记录所述差异部分的编号、起始地址和终止地址;
全部所述差异部分及所述地址表构成所述update刷新文件。
3.根据权利要求1所述的一种电动汽车ECU的bootloader更新方法,其特征在于,
生成update刷新文件的方法包括:
将ECU的存储空间划分为若干个区块,为区块赋予区块号;
对比所述new_boot和所述old_boot,获得所述new_boot和所述old_boot的差异部分;
记录所述差异部分落入的全部区块号,记为差异区块号;
记录所述差异区块号对应的new_boot内容,全部区块的起止地址、全部所述差异区块号及全部所述差异区块号对应的new_boot内容构成所述update刷新文件。
4.根据权利要求3所述的一种电动汽车ECU的bootloader更新方法,其特征在于,
将ECU的存储空间划分为若干个区块的方法包括:
将ECU的存储空间按照预设长度划分为若干个区块并排序;
获得所述差异部分后,调整每个区块的长度,使存在所述差异部分的区块数量最小;
记录每个区块的长度及序号,建立区块长度函数,所述区块长度函数的输入为所述序号,所述区块长度函数的输出为所述序号对应区块的长度。
5.根据权利要求4所述的一种电动汽车ECU的bootloader更新方法,其特征在于,
所述区块长度函数为多项式函数,所述多项式函数的自变量x为所述序号,所述多项式函数的函数值为所述序号对应区块的长度。
6.根据权利要求1至5任一项所述的一种电动汽车ECU的bootloader更新方法,其特征在于,将所述update刷新文件发送至待更新ECU的方法包括:
将所述update刷新文件进行加密,将加密后的所述update刷新文件发送至所述待更新ECU。
7.根据权利要求6所述的一种电动汽车ECU的bootloader更新方法,其特征在于,将所述update刷新文件进行加密的方法包括:
将所述update刷新文件转换为二进制数据,将所述二进制数据截断为若干个二进制数D;
将二进制数D对N1取余,获得商k和余数u;
将商k对N2取余,获得商k1和余数u1,将余数u对N3取余,获得商k2和余数u2;
建立一元三次多项式,使得所述一元三次多项式的自变量取值为预设的x1、x2、x3及x4时,所述一元三次多项式的值分别等于k1、u1、k2和u2,存储所述一元三次多项式的系数作为所述二进制数D的加密值E;
全部二进制数D的加密值E构成所述update刷新文件的密文,N1、N2、N3、x1、x2、x3及x4均为事先约定值。
8.根据权利要求7所述的一种电动汽车ECU的bootloader更新方法,其特征在于,
所述N1、N2及N3均为预设质数,且满足N1>N3>N2。
9.一种嵌入式系统,其特征在于,所述嵌入式系统包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8任一项所述的一种电动汽车ECU的bootloader更新方法。
10.一种可读存储介质,其特征在于,所述可读存储介质存储有程序,所述程序被处理器执行时实现如权利要求1至8任一项所述的一种电动汽车ECU的bootloader更新方法。
CN202310298041.2A 2023-03-24 2023-03-24 一种电动汽车ECU的bootloader更新方法、系统及存储介质 Pending CN116302031A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310298041.2A CN116302031A (zh) 2023-03-24 2023-03-24 一种电动汽车ECU的bootloader更新方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310298041.2A CN116302031A (zh) 2023-03-24 2023-03-24 一种电动汽车ECU的bootloader更新方法、系统及存储介质

Publications (1)

Publication Number Publication Date
CN116302031A true CN116302031A (zh) 2023-06-23

Family

ID=86834079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310298041.2A Pending CN116302031A (zh) 2023-03-24 2023-03-24 一种电动汽车ECU的bootloader更新方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN116302031A (zh)

Similar Documents

Publication Publication Date Title
US7055035B2 (en) Method for generating a read only memory image
KR100506785B1 (ko) 정보의 업데이트 및 배포 시스템 및 방법
US6832373B2 (en) System and method for updating and distributing information
US11803366B2 (en) Firmware updating system and method
US20050071839A1 (en) Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
US20030182414A1 (en) System and method for updating and distributing information
CN109445705B (zh) 固件认证方法及固态硬盘
CN109783124B (zh) 认证固件数据的数据储存装置与数据储存方法
US11550474B2 (en) Data storage device and method for rewriting parameters thereof
US20230273977A1 (en) Managing ownership of an electronic device
WO2005088448A1 (en) Method and apparatus for reliable in-place update
CN116451238A (zh) 一种ecu固件升级方法、装置、设备及可读存储介质
CN111489156A (zh) 基于区块链的交易方法、电子装置及可读存储介质
JPH10240629A (ja) メモリ内情報更新方法
US20100077131A1 (en) Updating control information in non-volatile memory to control selection of content
CN116302031A (zh) 一种电动汽车ECU的bootloader更新方法、系统及存储介质
CN107257281B (zh) Nor flash存储密钥记录的方法、装置及计算机可读存储介质
CN115599407B (zh) 固件烧录方法、固件烧录系统及存储器存储装置
CN117932622B (zh) 一种嵌入式设备的fota升级方法、装置、设备及存储介质
JP7511492B2 (ja) 自動車用電子制御装置
US20240259213A1 (en) Method for verifying digital signatures, vehicle computing unit and vehicle
US20030026506A1 (en) System for generating a read only memory image
CN118349251A (zh) 一种车载ecu系统软件的安全启动和安全刷新方法
US20190286331A1 (en) Data storage device and method for rewriting parameters thereof
CN118020071A (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: Room 317, B7 Building, No. 288 Genta East Road, Jiyang Street, Zhuji City, Shaoxing City, Zhejiang Province, 311899

Applicant after: Zhejiang aosiweier Electric Technology Co.,Ltd.

Address before: Room 418, Building 4, No. 66, Dongxin Avenue, Puyan Street, Binjiang District, Hangzhou, Zhejiang 310000

Applicant before: Zhejiang aosiweier Electric Technology Co.,Ltd.