CN109634623A - 基于dsp的程序上注运行方法 - Google Patents
基于dsp的程序上注运行方法 Download PDFInfo
- Publication number
- CN109634623A CN109634623A CN201811518736.2A CN201811518736A CN109634623A CN 109634623 A CN109634623 A CN 109634623A CN 201811518736 A CN201811518736 A CN 201811518736A CN 109634623 A CN109634623 A CN 109634623A
- Authority
- CN
- China
- Prior art keywords
- application program
- bootstrap
- operational zone
- memory block
- dsp
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
Abstract
本发明公开了基于DSP的程序上注运行方法,包括:步骤(1):对DSP的内部存储器和外部存储器进行程序运行空间和程序存储空间的划分;所述划分方式为:将DSP内部存储器划分为引导程序运行区和应用程序运行区;将DSP外部存储器划分为引导程序存储区和应用程序存储区;步骤(2):将引导程序从引导程序存储区加载至引导程序运行区;然后,进入引导程序初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;如果通信接口接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将函数指针指向应用程序运行区起始,进入应用程序运行区开始运行应用程序。
Description
技术领域
本公开涉及基于DSP的程序上注运行方法。
背景技术
本部分的陈述仅仅是提高了与本公开相关的背景技术,并不必然构成现有技术。
涉及数字信号处理,使用DSP嵌入式软件脱机运行时,一般将应用程序烧写至片外程序存储器或片内Flash存储器中。若产品合盖,出现更改应用程序的情况,需要引出JTAG接口至接插件,使用仿真器完成在线烧写。外接JTAG接口时,连接导线的长度会影响仿真器的驱动能力,易出现仿真器连接失败的现象;同时若频繁修改应用程序,接插件反复插拔可能引起插针损伤,且过程繁琐。尤其对于航天用产品若出现软件在轨异常,更是存在软件维护的困难。
发明内容
为了解决现有技术的不足,本公开提供了基于DSP的程序上注运行方法,其解决应用程序代码更改困难的问题,同时提高软件系统的可靠性和可维护性;
第一方面,本公开提供了基于DSP的程序上注运行方法;
基于DSP的程序上注运行方法,包括:
步骤(1):对DSP的内部存储器和外部存储器进行程序运行空间和程序存储空间的划分;
所述划分方式为:将DSP内部存储器划分为引导程序运行区和应用程序运行区;将DSP外部存储器划分为引导程序存储区和应用程序存储区;
所述引导程序运行区用于运行引导程序;所述引导程序存储区用于存储引导程序;
所述应用程序运行区用于运行应用程序;所述应用程序存储区用于存储应用程序;
步骤(2):将引导程序从引导程序存储区加载至引导程序运行区;然后,进入引导程序初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;
如果通信接口接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将函数指针指向应用程序运行区起始地址,进入应用程序运行区开始运行应用程序。
作为一些可能的实现方式,如果通信接口接收到应用程序更新指令,则通过通信接口接收更新的应用程序,并写入应用程序存储区,直至更新的应用程序全部写入完毕;然后,将更新后的应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区起始地址,进入应用程序运行区,开始运行更新后的应用程序。
作为一些可能的实现方式,所述步骤(1)划分方式替换为:将DSP内部存储器设定为引导程序运行区;将DSP外部存储器划分为引导程序存储区、应用程序存储区和应用程序运行区。
基于DSP的程序上注运行方法,包括:
步骤(a1):将DSP内部存储器设定为应用程序运行区;将DSP外部存储器划分为引导程序存储运行区和应用程序存储区;
步骤(a2):引导程序存储运行区的引导程序直接进入引导程序初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;
如果通信接口接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行应用程序。
作为一些可能的实现方式,如果通信接口接收到应用程序更新指令,则通过通信接口接收更新的应用程序,将更新的应用程序写入应用程序存储区,直至更新的应用程序全部写入完毕;然后,将更新后的应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行更新后的应用程序。
专业术语介绍:
引导程序是指可实现应用程序存储区的更新,并将应用程序从存储区加载至应用程序运行区,并跳转执行应用程序的程序。
应用程序是指实现产品相应功能和性能的程序。
与现有技术相比,本公开的有益效果是:
仅需要通过通信接口(如1553B、CAN、RS422总线等)注入应用工程的可执行文件即可实现对应用程序的更改,设计灵活、简单易行;并且此运行方法已在TI公司的SMJ320VC33、TMS320F28335、SMJ320C6701等处理器上得到验证,具有普适性;同时,大大节约了产品研制成本,在同一个DSP(CPU)上分时、分区运行不同功能的代码,无需硬件变化。依据此运行方法,引导程序的功能还可根据开发实际需要进行拓展,实现其他功能,具有推广价值。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为DSP程序分区第一种方案;
图2为DSP程序分区第二种方案;
图3为DSP程序分区第三种方案;
图4为引导流程图的一种实施例;
图5为图4中接收数据处理的流程图;
图6为引导流程图的另外一种实施例;
图7为图6中接收数据处理的流程图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在一些实施例中,本发明专利解决其技术问题所采取的的技术方案是:除应用程序外再开发引导程序,与应用程序分区存储、分时运行,同时引导程序具备通过通信接口更新应用程序存储区的功能、将应用程序从存储区加载至应用程序运行区的功能以及跳转至应用程序程序入口地址的功能。
实施例1:
如图1所示,DSP程序分区运行的第一种方案,将引导程序和应用工程均存储在外部存储器,引导程序和应用工程在DSP内部分区运行,图1中虚线流程表示可选择执行或不执行的操作,指令表示为通信接口必须发送应用程序更新或不更新指令。
基于DSP的程序上注运行方法,包括:
步骤(1):对DSP的内部存储器和外部存储器进行程序运行空间和程序存储空间的划分;
所述划分方式为:将DSP内部存储器划分为引导程序运行区和应用程序运行区;将DSP外部存储器划分为引导程序存储区和应用程序存储区;所述引导程序运行区用于运行引导程序;所述引导程序存储区用于存储引导程序;所述应用程序运行区用于运行应用程序;所述应用程序存储区用于存储应用程序;
步骤(2):引导程序进入初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;
如果接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区起始地址,进入应用程序运行区开始运行应用程序。
作为一些可能的实现方式,如果接收到应用程序更新指令,则通过通信接口接收更新的应用程序数据,并写入应用程序存储区,直至更新的应用程序全部写入完毕;然后,将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区起始地址,进入应用程序运行区开始运行更新后的应用程序。
实施例2:
如图2所示,DSP程序分区运行的第二种方案,将引导程序和应用程序均存储在外部存储器,引导程序在DSP内部运行,应用程序在外部存储器运行,图中2虚线流程表示可选择执行或不执行的操作,指令表示为通信接口必须发送应用程序更新或不更新指令。
基于DSP的程序上注运行方法,包括:
步骤(1):对DSP的内部存储器和外部存储器进行程序运行空间和程序存储空间的划分;
将DSP内部存储器设定为引导程序运行区;将DSP外部存储器划分为引导程序存储区、应用程序存储区和应用程序运行区;
所述引导程序运行区用于运行引导程序;所述引导程序存储区用于存储引导程序;所述应用程序运行区用于运行应用程序;所述应用程序存储区用于存储应用程序;
步骤(2):引导程序进入初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;
如果接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行应用程序。
作为一些可能的实现方式,如果接收到应用程序更新指令,则通过通信接口接收更新的应用程序,并写入应用程序存储区,直至更新的应用程序全部写入完毕;然后,将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行更新后的应用程序。
在有较高的数据处理速度要求且应用程序使用空间不大(≤DSP可用内存)的情况下,可采用第一种方案,;在无较高数据处理速度的要求且应用程序使用空间过大(>DSP可用内存)的情况下,宜采用第二种方案。
实施例3:
可根据不同型号的DSP处理器进行方案的相应调整,如DSP6000系列的SMJ320C6701,可使用map0引导方式,将引导程序的存储区和运行区均分配在外部存储器,搬移应用程序至DSP内部运行,程序空间分配如图3所示,虚线流程表示可选择执行或不执行的操作。
基于DSP的程序上注运行方法,包括:
步骤(1):对DSP的内部存储器和外部存储器进行程序运行空间和程序存储空间的划分;
将DSP内部存储器设定为应用程序运行区;将DSP外部存储器划分为引导程序存储运行区和应用程序存储区。所述引导程序存储运行区用于存储引导程序和运行引导程序;所述应用程序运行区用于运行应用程序;所述应用程序存储区用于存储应用程序;
步骤(2):引导程序进入初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;
如果接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行应用程序。
作为一些可能的实现方式,如果接收到应用程序更新指令,则通过通信接口接收更新的应用程序数据,将更新的应用程序写入应用程序存储区,直至更新的应用程序全部写入完毕;然后,将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行更新后的应用程序。
可通过通信总线发送编程文件数据,进行应用程序存储区(需为可擦可编程的读写存储器)的刷新,待更新完成后,将更新后的应用程序从应用程序存储区搬移至应用程序运行区,搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行更新后的应用程序。从而达到了更新应用程序并运行已更新应用程序的目的。
实施例4:
如图4所示,基于DSP的程序上注运行方法,包括:
步骤(11):DSP及接口初始化;
步骤(12):参数初始化,打开通信中断,配置参数Flag=ok,其中Flag=ok表示默认进行应用程序的更新;
步骤(13):查询是否更新应用程序,如果是,则进入步骤(14);如果否则进入步骤(15);
步骤(14):判断是否接收到通信接口的数据,如果是,则接收数据处理,数据处理结束后返回步骤(13);如果否,则返回步骤(13);
步骤(15):关闭通信终端,搬移应用程序至应用程序运行区,指针跳转至应用程序运行区入口地址,开始执行应用程序。
如图5所示,图4中所述接收数据处理的步骤为:
步骤(141):对接收到的接口数据进行解析;
步骤(142):判断接收到的接口数据是否为不进行应用程序存储区更新指令,如果是,则配置参数Flag=false,其中Flag=false表示不进行应用程序存储区更新;如果否,则进入步骤(143);
步骤(143):判断接收到的接口数据是否为应用程序更新数据,如果否,就结束;如果是,就将应用程序更新数据写入应用程序存储区;更新完成后,置Flag=false。
实施例5:
如图6所示,基于DSP的程序上注运行方法,包括:
步骤(21):DSP及接口初始化;
步骤(22):参数初始化,打开通信中断,打开定时器中断,配置参数Flag=false,其中Flag=false表示不进行应用程序的更新;
步骤(23):查询是否达到设定时间、是否进行应用程序更新,如果未到计时时间或进行应用程序更新,则进入步骤(24);否则,则进入步骤(25);
步骤(24):判断是否接收到通信接口数据,如果是,就开始接收数据处理,接收数据处理结束后返回步骤(23);如果否,就直接返回步骤(23);
步骤(25):关闭通信中断,关闭定时器中断,搬移应用程序至应用程序运行区;指针跳转至应用程序运行区入口地址,开始执行应用程序。
如图7所示,图6中所述接收数据处理的步骤为:
步骤(241):对接收到的接口数据进行解析;
步骤(242):判断接收到的接口数据是否为进行应用程序存储区更新指令,如果是,则配置参数Flag=ok,其中Flag=ok表示进行应用程序存储区更新;如果否,则进入步骤(243);
步骤(243):判断接收到的接口数据是否为应用程序更新数据,如果否,就结束;如果是,就将应用程序更新数据写入应用程序存储区;更新完成后,置Flag=false。
同时,引导程序也可根据通信要求进行适应性更改,引导程序的主程序流程图也可设计为引导程序进入初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,进行定时等待(等待时间可根据需求调整),示例中采用30s等待时间:
1)若在30s等待时间内未收到通信接口进行应用程序更新指令,则进行从应用程序存储区搬移代码至应用程序运行区,有效代码全部搬移完成自动跳转至应用程序运行区入口地址执行应用程序;
2)若在30s等待时间内接收到进行应用程序更新指令,则按照通信协议接收来自通信接口的数据写入(更新)应用程序存储区,直至应用程序存储区更新完成,从应用程序存储区搬移代码至应用程序运行区,有效代码全部搬移完成自动跳转至应用程序运行区入口地址执行应用程序。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (5)
1.基于DSP的程序上注运行方法,其特征是,包括:
步骤(1):对DSP的内部存储器和外部存储器进行程序运行空间和程序存储空间的划分;
所述划分方式为:将DSP内部存储器划分为引导程序运行区和应用程序运行区;将DSP外部存储器划分为引导程序存储区和应用程序存储区;
所述引导程序运行区用于运行引导程序;所述引导程序存储区用于存储引导程序;
所述应用程序运行区用于运行应用程序;所述应用程序存储区用于存储应用程序;
步骤(2):将引导程序从引导程序存储区加载至引导程序运行区;然后,进入引导程序初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;
如果通信接口接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将函数指针指向应用程序运行区起始地址,进入应用程序运行区开始运行应用程序。
2.如权利要求1所述的方法,其特征是,如果通信接口接收到应用程序更新指令,则通过通信接口接收更新的应用程序,并写入应用程序存储区,直至更新的应用程序全部写入完毕;然后,将更新后的应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区起始地址,开始运行更新后的应用程序。
3.如权利要求1所述的方法,其特征是,所述步骤(1)划分方式替换为:将DSP内部存储器设定为引导程序运行区;将DSP外部存储器划分为引导程序存储区、应用程序存储区和应用程序运行区。
4.基于DSP的程序上注运行方法,其特征是,包括:
步骤(a1):将DSP内部存储器设定为应用程序运行区;将DSP外部存储器划分为引导程序存储运行区和应用程序存储区;
步骤(a2):引导程序存储运行区的引导程序直接进入引导程序初始化执行过程,完成DSP芯片及相应通信接口的初始化配置,等待接收通信接口的数据;
如果通信接口接收到应用程序不更新指令,则将应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行应用程序。
5.如权利要求4所述的方法,其特征是,如果通信接口接收到应用程序更新指令,则通过通信接口接收更新的应用程序,将更新的应用程序写入应用程序存储区,直至更新的应用程序全部写入完毕;然后,将更新后的应用程序从应用程序存储区搬移至应用程序运行区;搬移完成后,引导程序将指针跳转到应用程序运行区的起始地址,进入应用程序运行区开始运行应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811518736.2A CN109634623A (zh) | 2018-12-12 | 2018-12-12 | 基于dsp的程序上注运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811518736.2A CN109634623A (zh) | 2018-12-12 | 2018-12-12 | 基于dsp的程序上注运行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109634623A true CN109634623A (zh) | 2019-04-16 |
Family
ID=66073177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811518736.2A Pending CN109634623A (zh) | 2018-12-12 | 2018-12-12 | 基于dsp的程序上注运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634623A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925548A (zh) * | 2019-12-06 | 2021-06-08 | 台达电子工业股份有限公司 | 在线程序更新方法 |
CN113220319A (zh) * | 2021-03-17 | 2021-08-06 | 广州橙行智动汽车科技有限公司 | 一种数据更新方法、装置及车辆 |
CN113467797A (zh) * | 2020-03-30 | 2021-10-01 | 西安诺瓦星云科技股份有限公司 | 程序更新方法、装置和系统以及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257880A (zh) * | 2013-05-30 | 2013-08-21 | 航天恒星科技有限公司 | 一种基于dsp的远程应用程序在线更新方法 |
US8826261B1 (en) * | 2010-02-25 | 2014-09-02 | Bloom Energy Corporation | Programming processors through CAN interface without changing the boot mode select pins |
CN106648807A (zh) * | 2017-01-10 | 2017-05-10 | 北京电子工程总体研究所 | 一种基于flash存储器的dsp软件上传更新方法 |
CN108089876A (zh) * | 2017-12-29 | 2018-05-29 | 中国科学院国家空间科学中心 | 一种星载dsp软件在轨更新方法 |
-
2018
- 2018-12-12 CN CN201811518736.2A patent/CN109634623A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8826261B1 (en) * | 2010-02-25 | 2014-09-02 | Bloom Energy Corporation | Programming processors through CAN interface without changing the boot mode select pins |
CN103257880A (zh) * | 2013-05-30 | 2013-08-21 | 航天恒星科技有限公司 | 一种基于dsp的远程应用程序在线更新方法 |
CN106648807A (zh) * | 2017-01-10 | 2017-05-10 | 北京电子工程总体研究所 | 一种基于flash存储器的dsp软件上传更新方法 |
CN108089876A (zh) * | 2017-12-29 | 2018-05-29 | 中国科学院国家空间科学中心 | 一种星载dsp软件在轨更新方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925548A (zh) * | 2019-12-06 | 2021-06-08 | 台达电子工业股份有限公司 | 在线程序更新方法 |
CN113467797A (zh) * | 2020-03-30 | 2021-10-01 | 西安诺瓦星云科技股份有限公司 | 程序更新方法、装置和系统以及计算机可读存储介质 |
CN113467797B (zh) * | 2020-03-30 | 2024-03-15 | 西安诺瓦星云科技股份有限公司 | 程序更新方法、装置和系统以及计算机可读存储介质 |
CN113220319A (zh) * | 2021-03-17 | 2021-08-06 | 广州橙行智动汽车科技有限公司 | 一种数据更新方法、装置及车辆 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634623A (zh) | 基于dsp的程序上注运行方法 | |
CN104978271B (zh) | 一种Android系统的自动升级压测方法及系统 | |
US20210039917A1 (en) | Elevator control | |
CN109189434A (zh) | 一种电能表的在线升级方法 | |
CN101957770A (zh) | 一种移动设备上应用程序的启动方法及装置 | |
CN108197042A (zh) | 一种基于fpga的通用异步串口及其应答方法 | |
CN108572830A (zh) | 一种嵌入式系统及其引导程序的升级方法、系统 | |
CN103559910A (zh) | 应用于烧录器的实现智能切换烧录芯片时序的系统及方法 | |
CN107992322B (zh) | 一种雷达信号处理机dsp代码自更新方法 | |
CN108809683A (zh) | 部署云应用系统的方法及装置 | |
CN109634642A (zh) | 一种fpga配置文件远程升级的方法 | |
EP3327573A1 (en) | Multi-processor and multi-processor system | |
US9411590B2 (en) | Method to improve speed of executing return branch instructions in a processor | |
CN105512032B (zh) | 一种中间库虚拟控制测试方法及其系统 | |
CN110035167A (zh) | 录音方法及相关装置 | |
US9501282B2 (en) | Arithmetic processing device | |
US8896610B2 (en) | Error recovery operations for a hardware accelerator | |
CN106874072A (zh) | 一种基于PowerPC处理器的嵌入式操作系统分区虚拟中断的处理方法 | |
CN107741883B (zh) | 一种避免线程阻塞的方法、装置及计算机设备 | |
CN110297652A (zh) | 一种fpga远程升级的方法 | |
CN110377494A (zh) | 一种解决cpu优化引发的多线程问题的方法及系统 | |
CN104678875B (zh) | 一种变频器配置方法及变频器配置系统 | |
CN106775796B (zh) | 一种固件升级方法、装置及系统 | |
CN105631505B (zh) | 一种支持java卡补丁函数的智能卡 | |
CN104714779B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190416 |