CN104412230A - 集成电路无线电 - Google Patents

集成电路无线电 Download PDF

Info

Publication number
CN104412230A
CN104412230A CN201380034634.2A CN201380034634A CN104412230A CN 104412230 A CN104412230 A CN 104412230A CN 201380034634 A CN201380034634 A CN 201380034634A CN 104412230 A CN104412230 A CN 104412230A
Authority
CN
China
Prior art keywords
software application
firmware module
supervisor call
processor
firmware
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.)
Granted
Application number
CN201380034634.2A
Other languages
English (en)
Other versions
CN104412230B (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.)
Nordic Semiconductor ASA
Original Assignee
Nordic Semiconductor ASA
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 Nordic Semiconductor ASA filed Critical Nordic Semiconductor ASA
Publication of CN104412230A publication Critical patent/CN104412230A/zh
Application granted granted Critical
Publication of CN104412230B publication Critical patent/CN104412230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/0003Software-defined radio [SDR] systems, i.e. systems wherein components typically implemented in hardware, e.g. filters or modulators/demodulators, are implented using software, e.g. by involving an AD or DA conversion stage such that at least part of the signal processing is performed in the digital domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Transceivers (AREA)

Abstract

一种集成电路无线电通讯装置(1)包含处理器(7)、存储器(13)以及无线电通讯逻辑(17)。存储器(13)具有储存于固件内存地址的固件模块(23),固件模块(23)包括用于根据预定的无线协议来控制该无线电通讯逻辑(17)的多个指令。处理器(7)配置成接收多个管理程序调用指令,每一管理程序调用指令具有关联的管理程序调用号码,并借由(i)调用固件模块(23)里的管理程序调用处理器以及(ii)使该管理程序调用号码可用于该调用处理器,而响应管理程序调用指令。软件应用(27)被载入至该装置(1)的存储器(13),并被储存在预定的应用内存地址。其配置成通过发出一个管理程序调用指令而从固件模块(23)中调用无线电通讯功能函数,该管理程序调用指令具有关联的预定管理程序调用号码,关联的预定管理程序调用号码对应于被调用的功能函数。

Description

集成电路无线电
技术领域
本发明涉及一种集成电路无线电(radio)通讯装置以及配置这些装置的方法。
背景技术
传统的集成电路通讯装置通常将处理器、存储器以及无线电通讯逻辑集成在一个硅芯片上。天线可以被制造在该硅芯片上或是由外部连接。该装置将具有用于连接至电源的数个管脚、时钟源以及任何外围设备,例如传感器、计时器、数字模拟转换器以及输出装置。该处理器提供与该无线电通讯逻辑的接口用以监督无线电讯息的传送和/或接收。
这样的无线电通讯装置或芯片可以被广泛使用在无线产品上,例如无线鼠标及键盘、游戏机的控制器、自行车速度表、遥控器、车库开启器、无线扩音器等。
在此装置上的该处理器可以直接地从非易失性存储器上运行软件,以根据一个预定无线协议(radio protocol),例如蓝牙(Bluetooth)或无线无线电识别技术(ZigBee)协议,而控制该无线电通讯逻辑。
引入无线电通讯晶片的完整产品的制造过程通常涉及该无线电芯片的制造者,其提供该芯片给产品制造者,该产品制造者再将该芯片集成至该产品的其余部分中,完整产品例如为无线鼠标。该芯片制造者也可提供开发套件和文件,让该产品制造者可以对用于该无线电装置的定制应用软件进行开发、安装及调试,该开发套件包含多种工具,例如交互编译器、载入器及调试器。例如,该定制应用软件可以包括数个例程,用于接收来自于无线鼠标的移动传感器的输入以及根据所需的协议传送合适的无线电讯息。
开发套件可额外包含用于软件库和/或操作系统的源代码,该源代码由该芯片制造者写入。接着该产品制造者可用其自己定制的软件应用编译并链接所提供的源代码,用以创造单一对象文件用于载入每一芯片的存储器里的一个预定地址。
该库或操作系统可以包含用于执行一个特定无线协议的数个指令。其可包括其他功能函数,例如存储器管理、处理器调度、内部处理器通讯等等。该应用开发者可以从应用代码调用这些被提供的功能函数,而不需从头开始将其写入。故可使应用软件的开发更加简单和快速。它也可以缓解不同型号的无线电芯片之间的可移植性。
然而,本发明人已经认识到,这样的传统方法是可以改进的。
发明内容
根据本发明的一个方面,提供一种配置集成电路无线电通讯装置的方法,其中:
该装置包括处理器、存储器以及无线电通讯逻辑;
该存储器具有固件模块,固件模块被储存于固件内存地址,该固件模块包括用于根据预定的无线协议来控制该无线电通讯逻辑的多个指令;以及
该处理器被配置用以接收多个管理程序调用指令,每一管理程序调用指令具有一关联的管理程序调用号码,并借由(1)调用固件模块里的管理程序调用处理器以及(2)使该管理程序调用号码可用于该调用处理器,而响应管理程序调用指令,该方法包括载入一个软件应用至该装置的存储器,使该应用被储存在预定的应用内存地址,其中该软件应用设置成通过发出一个管理程序调用指令而从该固件模块中调用无线电通讯功能函数,该管理程序调用指令具有对应于该被调用的功能函数的关联的预定管理程序调用号码。
因此本领域的技术人员根据本发明可以得知,软件应用可以被载入至无线电通讯芯片,以经由管理程序调用指令提供与固件模块的接口,该固件模块提供无线电控制功能函数。
此方法移除了软件应用开发者将应用代码与芯片制造者所提供的库或操作系统连接的必要性,借此产生更简易且更有效率的开发过程。借由避免链接-时间依赖关系的必要性,在该软件应用开发时期出现错误的机会可以减少。由于在相继的开发阶段不需要与提供无线电控制功能函数的固件模块保持重新链接,该存储器的各成员目标的地址在该开发过程里可以维持不变。该内存地址的连续性可以避免错误发生,并且如果出现这样的错误,也可以帮助调试、除错。
在优选实施例中,储存于固件内存地址的该固件模块是链接的二进制。因此该固件模块与该软件应用之间没有链接是需要的,或者该固件模块与该软件应用之间没有链接甚至是可能的。在此假设该固件模块通常将是被编译的二进制模块(例如由C编程语言编译),尽管其也可能直接由机器代码组合。
为了开发该软件应用,该应用开发者所需要知道的非标准信息(即不是由处理器或装置结构决定的)仅是:预定的软件应用内存地址;关于任何可使用于该软件应用的数据存储器(例如在RAM里)数量的信息,以及管理程序调用号码和该固件模块里的无线电通讯功能函数间的预定对应关系。此信息足以写入、编译及载入该装置的软件应用。假设该应用开发者可以传统地具有一个包含该信息的头文件(例如用C编程语言)。(当然,该头文件可以选择地包含其他附加特征用以提供更多帮助给该应用开发者。)
根据本发明方法配置装置的另一优点是该装置制造者不需要在其固件模块里透露机密的源代码给该应用开发者。
将集成电路装置提供给软件应用的开发者,该集成电路装置配有已预先载入该装置的固件模块。这可以进一步增加任何被包含在该固件模块里的机密信息的安全性。然而,这并非是必须的。该应用的开发者可以反而接收该固件模块作为预先编译的指令的二进制图像,并且将固件模块载入该装置。
因此,从另一方面来看,本发明提供一种配置集成电路无线电通讯装置的方法,其中该装置包含处理器、存储器以及无线电通讯逻辑,该方法包括:
载入软件应用至该装置的存储器,以使该应用被储存于预定的应用内存地址;以及
载入固件模块至该装置的存储器,以使该固件模块被储存于预定的固件内存地址,该固件模块包括用于根据预定的无线电协议来控制该无线电通讯逻辑的多个指令,
其中:
该处理器配置成接收多个管理程序调用指令,每一管理程序调用指令具有关联的管理程序调用号码,并借由(1)调用固件模块里的管理程序调用处理器以及(2)使该管理程序调用号码可用于该调用处理器,而响应管理程序调用指令;以及
该软件应用设置为通过发出管理程序调用指令,而从该固件模块中调用无线电通讯功能函数,该管理程序调用指令具有对应于被调用的功能函数的关联预定管理程序调用号码。
该固件模块和该软件应用可按任何顺序或实质上同时地被载入于该装置。由此可知将两者同时载入仍然根本上不同于载入单个链接的软件应用和库,如该领域的技术人员已在过去所完成的。如前所述,该固件模块优选地是编译和链接的二进制模块(但没有被链接到该软件应用)。
本发明也可扩展至集成电路无线电装置本身。
因此,从第三方面来看,本发明提供了一种集成电路无线电通讯装置,其中:
该装置包括处理器、存储器以及无线电通讯逻辑;
该存储器具有被储存在固件内存地址的固件模块,该固件模块包括用于根据预定的无线协议来控制该无线电通讯逻辑的多个指令;以及
该处理器配置成用以接收多个管理程序调用指令,每一管理程序调用指令具有关联的管理程序调用号码,并借由(1)调用固件模块里的管理程序调用处理器以及(2)使该管理程序调用号码可用于该调用处理器,而响应管理程序调用指令;
该存储器具有储存于预定的应用内存地址的软件应用,该软件应用被设置成用以借由发出管理程序调用指令而从该固件模块中调用无线电通讯功能函数,该管理程序调用指令具有对应于被调用的功能函数的关联预定管理程序调用号码。
从进一步的方面来看,本发明提供了固件模块以及储存该固件模块的暂存或非暂存媒体,用于载入集成电路无线电通讯装置,位于固件内存地址,该装置包括处理器、存储器以及无线电通讯逻辑,该固件模块包括:
多数指令,用于根据预定的无线协议来控制该无线电通讯逻辑;以及
管理程序调用处理器,被设置成通过执行无线电通讯功能函数而响应软件应用所发出的管理程序调用指令,该无线电通讯功能函数对应于与该管理程序调用指令关联的管理程序调用号码。
该固件模块优选地是链接的二进制模块。
从更进一步的方面来看,本发明提供软件应用以及储存该软件应用的暂存或非暂存媒体,用于载入集成电路无线电通讯装置,位于软件应用内存地址,集成电路无线电通讯装置包括处理器、存储器以及无线电通讯逻辑,该软件应用被设置成用以通过发出管理程序调用指令而调用无线电通讯功能函数,管理程序调用指令具有关联的预定管理程序调用号码,该管理程序调用号码是对应于该被调用的功能函数。
在上述任一方面的优选实施例中,该固件模块被设置成:使得由该固件模块所提供的所有无线电通讯功能函数被具有各自管理程序调用号码的多个管理程序调用指令所调用,其是根据号码与功能函数间的预定相对应关系。以这种方式,该装置无须支持其它用于调用功能函数的机制,借此避免大量静态或运行时间链接依赖性,并且简化该装置和该软件应用的开发。
由此将得知该固件模块可以提供其它无须与无线电通讯相关的功能函数,该功能函数可被该软件应用所调用;举例来说,加密的算法。优选地是该装置配置成使得所有这种功能函数的调用是借由这种管理程序调用指令的发出而被执行。
由于该装置的实施例不需包含传统的完全的操作系统,该应用开发者可以自由开发软件应用,作为该处理器架构的本机应用,而无须学习如何提供与芯片制造者所提供的适当的操作系统接口。特别是当处理器为该领域所熟知时,这对于该应用开发者而言是特别具有吸引力的特性。
假如该装置除了该固件模块外具有硬件抽象层,该软件应用可以提供直接与该层的接口。应用-特定驱动器也可以被载入至该装置。
设定配置该装置可包含在编译该软件应用时使用在多个管理程序调用号码和多个无线电通讯功能函数之间的对应关系。编译或载入该软件应用可以利用该预定软件-应用内存地址。在一些实施例里,配置该装置可以包括接收在多个管理程序调用号码和多个无线电通讯功能函数之间的对应关系和/或接收该预定软件-应用内存地址,例如头文件。当编译该软件应用时,该信息可以接着被使用。
该装置优选地配置成使得当执行该装置上的软件应用时需要没有运行时间链接。
该处理器可用任何合适的方法执行管理程序调用指令。在一组较佳实施例里,该处理器是ARM Ltd.(RTM)处理器,如来自该Cortex-M系列的处理器,并且该管理程序调用指令然后为由该处理器所支援的SVC指令。
该软件应用可借由执行专用的SVC处理器指令而发出管理程序调用指令。这样的指令可以由编译器在编译该软件应用时产生,例如借由开发者,包括该软件应用的源代码里的特定前处理器指令。
关联于该管理程序调用的号码可以经由寄存器或经由该调用堆栈或经由任何其它合适的机制而可用于该调用处理器。
优选地,该处理器和/或软件应用配置成使一个或多个参数值可用于管理程序调用处理器。以此方式,软件应用可以传送这些参数至无线电通讯功能函数,例如要传送的数据。该调用处理器能将来自无线电通讯功能函数的返回值传送给该软件应用。
该处理器优选地配置成处理来自该软件应用的管理程序调用指令作为例外(软件中断)。通过这种方式,当一个时间-关键无线电通讯功能函数需要被调用时,该软件应用可中断较少的时间-关键处理。
该处理器优选地支持数个中断优先级。在一些实施例里,一些该固件模块里的事件-驱动功能函数被分配相对较高的优先级,而其他的则被分配相对较低的优先级。优选地,与时间-关键无线电通讯操作相关的功能函数被分配相对较高的优先级。
该软件应用可以被设置成处理数个中断(由固件模块转发,如在下面解释)并且可以具有用于一些事件驱动功能函数的相对较高的优先级以及用于其他的相对较低的优先级。该软件应用优先级优选地与固件模块的优先级交错。优选地,该最高的固件优先级等级是高于该最高的软件-应用优先级等级,以至于在该固件模块里实施的关键无线电通讯操作总是可以优先于该软件应用。这能防止在该软件应用中草率编程。
该固件模块优选地配置成调用该软件里的功能函数,以响应该固件模块接收到一个中断。该中断可能出现,例如从外围设备,例如移动传感器。
该固件模块与该软件应用每一个可以具有相应的中断向量表。该两个表优选地互相使用相同中断向量地址偏移。在该固件模块的向量表里的中断向量地址的偏移(也可视为该软件应用的向量表,假如两者使用相同的偏移)传统上被该处理器结构所固定。该装置优选地配置成当处理一个中断时(即该系统中断向量表)时使用该固件模块的向量表。
然而,该固件模块优选地配置成,使得该固件模块没有被编程以自行处理的所有中断被传送至该软件应用。此可借由该固件模块所实现,造成执行分岔至该软件应用的向量表里所包含对应偏移的地址,每当其不被配置用以处理特定的中断之时。这是有可能的,因为该软件应用被载入预定的内存地址,使得一旦该应用被载入在该装置上时,该固件模块可以预先知道由何处找出该软件应用的向量表。
举例来说,在一些实施例里,该重置中断处理器地址总是被该编译器设置在偏移=0。因此,在该固件模块的向量表里,该重置处理器地址将位于存储器中地址0x0000 0000+0=0x0000 0000。在该软件应用的向量表里,该重置处理器地址是CLENR0+0=CLENR0,此处CLENR0是该预定基本内存地址,即该软件应用被放置的地址。
此中断转发机制方便地允许该软件应用被编程以利用实质相同的方法来处理硬件中断,如同没有固件模块被呈现在该设置上,即该固件模块对于该软件应用为隐藏的,以用于接收中断的目的。该转发优选地是以如此的方式来实现:与对于软件应用的直接硬件中断相比,其增加了少于30个指令的延迟或少于大约3微秒(microseconds)延迟。
该固件模块可以设置为大体上被禁用。该禁用可以经由调用至该固件模块(优选地是使用该SVC机制)而被执行。禁用该固件模块可以造成该固件模块用以重置协议堆栈,并且使任何存储器保护失效(假如有呈现),以使资源返回到该软件应用。当被禁用时,该固件模块优选地转发所有中断至该软件应用(甚至那些可能以其它方式已自行处理的)。
该处理器优选地支持从一个中断优先级等级至另一中断优先级等级的多个无缝转换。这有时被称为尾链(tail-chaining)。其提供转移在该软件应用与该固件模块之间控制的精简的方案(或反之亦然),以允许时间-关键无线电通讯功能函数在需要时优先考虑。
该装置优选地包括存储器保护逻辑,存储器保护逻辑设置成拦截存储器存取指令。此逻辑可以被放置在该处理器与该存储器之间。其可以使用存储器存取指令的位置(即该处理器读取该指令之处),以决定是否允许存取。该存储器保护逻辑优选地被配置成用以避免该软件应用读取或重写该固件模块(或两者皆是)。
如此的存储器保护可以提供好处:防止固件模块里的敏感信息被软件应用的开发者所读取。也可以使该软件应用中因编程错误带来的潜在损害最小化,以及帮助检测和校正在软件应用中的错误。
该存储器保护逻辑可以配置成用以防止关联于该固件模块的RAM被该软件应用所读取或写入(或两者皆是)。
该处理器、存储器以及无线电通讯逻辑优选地是被集成在单个硅芯片上。然而,可替换地,它们也可以被集成在多个芯片模块中。
该存储器优选地是一个非易失性存储器,例如EEPROM或快闪存储器。其优选地支持随机-存取读取,使得该固件模块与软件应用可以直接地从该存储器中被执行。
本领域技术将理解,该装置典型地也包括易失性存储器。其可以附加地包括一个或多个外围设备。其可具有用于接收电源和一个时脉信号的连接。其可以具有用于天线的连接。其可以具有一个或多个输入和/或输出接口,例如串行连接。
在此描述的本发明的一个方面或实施例的可选或优选的特征,在适当情况下,可应用于任何其它方面或实施例。
附图说明
下面将仅仅通过实例参考附图描述本发明的某些优选实施例,其中:
图1是本发明实施例的微控制器的示意图。
图2是主要软件元件于该微控制器架构里的示意图。
图3是用于该微控制器的内存映射的示意图。
图4是不同处理器中断优先等级的表示图。
图5a-5c是各种中断情形说明的表示图。
图6是源代码元素展示该软件应用调用固件模块中的功能函数的表示图。
图7是源代码元素展示该软件应用使用系统调用以调用内部功能函数的表示图。
图8是源代码元素展示该软件应用接收硬件中断的表示图。
具体实施方式
图1显示集成电路微控制器1,有时称之为片上系统,其包含时脉逻辑3、电源管理电路5、处理器7(例如一个ARM(RTM)Cortex-M0)、存储器保护逻辑9、RAM 11、非易失性快闪存储器13、一个或多个外围设备15、无线电通讯逻辑17、以及输入/输出电路19,该时脉逻辑3可包括电阻-电容振荡器及/或可从片外(off-chip)晶体振荡器(图中未显示)接收输入。
这些元件以一传统的方式而互相连接,例如使用线路或总线(图中未显示)。该存储器保护逻辑9是用来拦截从该处理器7至该RAM 11和该快闪存储器13的指令。当安装于一个产品时,该微控制器1可以被连接至数个外部的元件,例如电源供应器、无线电天线、晶体振荡器、数个传感器、数个输出装置等。
图2示出了微控制器1,位于其上方的是一个可选择的硬件抽象层21,例如ARM(RTM)Cortex微处理器软件介面标准。该结构也包括固件模块23、驱动器25以及软件应用27。该驱动单元25可特定用于该软件应用27。
该固件模块23是一个二进制应用,包含数个嵌入式软件块。一个无线协议块31实现一个或多个无线协议堆栈。一个无线电事件管理器33提供用于该无线电通讯逻辑17的存取调度以及事件多路复用。一个库35提供分享的硬件资源管理与数个功能函数,如随机数字的产生、设定中断以及优先级、电源管理(例如启用及禁用外围设备)、加密功能函数等。一个固件模块管理器37支持启用及禁用该固件模块,及启用及禁用该无线协议堆栈。
固件模块23具有系统向量表,且是程序的入口点重置。
一个用于固件模块23的应用编程接口(API)29允许该软件应用27调用固件模块23里的功能函数。此是完全使用系统调用来实现。当使用一个ARM(RTM)处理器,每个API功能函数原型在编译时间经由一关联的管理程序调用(SVC)号码而映射至一个固件功能函数。此映射可被提供至该软件应用27的开发者,以允许功能函数被正确地调用。
固件模块23可以传递事件至软件应用27作为软件中断,其内容被缓存直到被软件应用27所读取(轮询)。该读取经由一个API调用(例如event_get())所完成。
该软件应用27可以直接地访问该微处理器(1)硬件,或者经由一个硬件抽象层21来访问该微处理器(1)硬件,例如借由应用-特定驱动器25,除了可使用该固件模块23来间接地使用该硬件之外。
图3显示如何在固件模块23和该软件应用27(包括任何应用-特定驱动器25)之间共享RAM 11和快闪存储器13。当使用一个ARM(RTM)Cortex-M0处理器7,该快闪13被分配数个由零(0x0000 0000)上升的地址至其容量SizeOfProgMen,以及该RAM 11被分配数个地址从0x2000 0000上升至(0x2000 0000+SizeOfRAM)。假如一个不同类型的处理器被使用,将可使用不同的地址的值。
该快闪13包含地址CLEAR0(代码长度区域0)两侧的两个区域。位于零和CLEAR0之间的区域0,是该固件模块23被载入之处。其中断向量表被储存在地址零处。由CLEAR0向上延伸的区域1,是该软件应用27被载入之处。其也具有中断向量表,该表位于CLEAR0处,其目的下面说明。在软件应用27之下。由此可以得知该装置1可具有其他非易失性存储器(图未显示),其他非易失性存储器可用于其他目的,例如储存配置信息或数个标志。
该RAM 11相似地具有一从该基本地址0x2000 0000至RLENR0的区域0,以及由RLENR0向上延伸的一个区域1。RAM区域0提供数据储存,用于固件模块23,而RAM区域1提供数据储存,用于该软件应用27。一个调用堆栈在固件模块23及软件应用27之间被共享以及该调用堆栈,例如从0x2000 0000+SizeOfRAM,向下发展。分配至调用堆栈的存储器必须足够大以供软件应用27和固件模块23两者的所需。
可以由芯片制造者为该装置1发布固件模块23调用-堆栈使用需求。该软件应用27的开发者必须接着定义一个初始栈指针,以及为固件模块与其软件应用27预留足够栈存储器。在重置时固件模块23将初始化主要堆栈指针。
存储器保护逻辑9被设置成拦截从处理器7至快闪13和RAM11的所有存储器存取请求(例如读取请求)。其决定存取请求指令的来源(例如是否该请求是来自固件模块23或来自软件应用27)。其也存取存储器保护配置数据(例如储存在一或多个专属寄寄存器中),其是为各种来源而特定各个存取许可,并且依此允许或拒绝该存取需求。
在一些本发明较佳的实施例里,该软件应用27被拒绝读和/或写访问至快闪区域0和至RAM区域0。这保护了固件模块23的机密性,并且可以避免软件应用27无意或恶意地写入至分配给固件模块23的内存位置,借此增加可靠性和安全性。也可以保护软件应用快闪区域1免于读访问,例如防止通过外部调试接口(debugging interface)读回。
这意味初始堆栈指针不可以位于RAM区域0,这是由于软件应用27对该区域没有写访问。在本发明的其他实施例里,该调用堆栈可位于两部分里,其中该固件模块23调用堆栈是位于RAM区域0里以及该软件应用27调用堆栈是位于RAM区域1里。
图4显示ARM(RTM)Cortex-M0处理器所提供的不同的中断等级41,其沿箭头方向增加优先级别,以及这些等级如何映射至由固件模块23和软件应用27所使用的中断等级43。
在主要背景内容之上的是四个中断优先级,其使用如下,依照优先级增加的顺序:软件应用低优先级、固件模块低优先级、软件应用高优先级以及固件模块高优先级。该高-优先级软件应用中断用于要求低延时的关键中断(critical interrupts)。
图5a至5c显示数种优先级等级里可能的改变的范例。
图5a说明背景主要处理在低优先级被该软件应用中断,例如借由一串行驱动器。软件应用27接着使API调用至固件模块23(借由触发一个管理程序调用(SVC)例外)。在返回至应用低-优先级等级之前,固件模块23以低-优先级固件等级处理该调用。最后,软件应用27完成其操作,且执行返回至该主要背景等级。
图5b说明API调用至固件模块23,其是从主要内容所做出(借由触发SVC例外)。该固件低-优先级里的API功能函数的执行被一个高-优先级软件应用例外所中断。举例来说,其可以用以服务一个传感器输入。一旦该软件应用结束其高-优先级的执行,在最终回归至该背景主要处理之前,该固件API调用可以继续执行于该低优先级等级。
图5c说明借由该固件模块23的背景主要处理的高-优先级中断。其可以归因于时间-关键无线电通讯中断,例如一个输入无线电分组,无线电事件管理器23必须响应该输入无线电分组。该固件模块23中的中断服务例程设立一个低-优先级固件异常标志用以发信号至该无线协议堆栈的较高等级。当该高-优先级例程完成,由于该处理器7的尾链能力(tail-chaining capabilities)(即在此之间无须回复至该背景主要等级),低-优先级例程被立即执行。该低-优先级固件例程接着设立异常标志用以发信号通知该软件应用27:一个无线电数据分组已被接收。该例外在该低-优先级固件模块例程完成之后被链接。在此范例里,该软件应用27接着经由一个SVC而做出一个API调用至该固件模块23,SVC完成与返回从该SVC而来的内容至该软件应用27。最后,该软件应用低-优先级操作完成,且执行返回至该主要等级。
图6至8借由范例展示如何控制该软件应用27和该固件模块23间的传送。其以未编译的C语言代码的摘录来说明。当然,实际上,由处理器7执行来自快闪存储器13的二进制指令。标号的箭头指示相继的执行步骤。
图6显示软件应用27经由该固件模块23的API 29而调用功能函数。该应用27调用一个具有从该固件API 29使用固件头文件而引进的原型的功能函数,该固件头文件是借由该芯片制造者而被提供至该软件-应用开发者。该_SVC(x)编译指示(pragma)造成该编译器将一指令插入该目标代码里,这会导致当该软件应用23调用该功能函数时引起管理程序调用(SVC)例外。
该处理器7通过该固件模块的中断向量表(其作为该系统中断向量表)调用该SVC处理器。关联于被该软件应用27所调用的该功能函数的SVC号码与任何参数(arguments)一起被传送至该SVC处理器。该参数是依照该处理器而可经由寄存器或经由该调用堆栈而被传送。该SVC处理器使用该SVC号码以调用该正确的固件模块功能函数。其可为一个无线电控制功能函数(例如一个借由无线电来传输数据的指令),或一个固件管理功能函数(例如用以禁用该固件模块),或一个库功能函数(例如用以发出随机号码)。该功能函数执行并接着返回至该软件应用27。一个返回值可有用于一寄存器或该调用堆栈。
图7显示该软件应用27经由系统调用来调用其自身的功能函数之一。此动作可用于从一个低优先级改变至高优先级执行等级。与图6的情况相似,该软件应用27触发SVC因而造成执行传送至该固件模块27里的一个SVC处理器。然而,在此例子里,该指令所使用的一个SVC号码是位于一个被预留给该软件应用自身使用的范围里。该固件模块23因此造成执行分岔至该软件应用27里的一个处理器功能函数(app_systemcall_function()),可能对于先前操作为在不同优先级等级。
图8显示如何由该软件应用27接收一个硬件中断。该固件模块23默认设置成转送中断至该软件应用27,除非它们是该固件模块23被配置用以处理的中断。此外,假如该固件模块23已经被该软件应用27所禁用(例如经由合适的API调用至该固件管理器37),接着该固件模块将转送所有中断至该软件应用27。
在接收到例如来自于一个运动传感器的一个中断时,该固件模块23里的一个中断处理器被引导。其将检查是否该固件模块23被启用以及是否此为一个该固件模块被设定用以处理的中断。如果是,该固件模块23处理该中断。假如不是,其将执行分岔至该软件应用27里的中断处理单器例程。因为该软件应用向量表的位置(在CLENR0)是为预定的,故该固件模块23可以知道在何处找到该例程,并且至该向量表的偏移是相同于至该固件模块的向量表的偏移。
以这种方式,一个固件模块实现无线电控制逻辑,其被编程至集成无线电通讯芯片上的一个固件内存地址,可以安全并方便地配置和使用该固件模块。

Claims (29)

1.一种配置集成电路无线电通讯装置的方法,其中:
该装置包括处理器、存储器以及无线电通讯逻辑;
该存储器具有储存于固件内存地址的固件模块,该固件模块包括用于根据预定的无线协议来控制该无线电通讯逻辑的多个指令;
该处理器被配置成接收多个管理程序调用指令,每一管理程序调用指令具有关联的管理程序调用号码,并借由(1)调用固件模块里的管理程序调用处理器以及(2)使该管理程序调用号码可用于该调用处理器,而响应管理程序调用指令,该方法包括:
载入一个软件应用至该装置的存储器,使该应用被储存在预定的应用内存地址,其中该软件应用被设置成借由发出一个管理程序调用指令而从该固件模块中调用无线电通讯功能函数,该管理程序调用指令具有关联的预定管理程序调用号码,该关联的预定管理程序调用号码对应于该被调用的功能函数。
2.一种配置集成电路无线电通讯装置的方法,其中该装置包括处理器、存储器以及无线电通讯逻辑,该方法包括:
载入软件应用至该装置的存储器,以使该应用被储存于预定的应用内存地址;以及
载入固件模块至该装置的存储器,以使该固件模块被储存于预定的固件内存地址,该固件模块包括用于根据预定的无线协议来控制该无线电通讯逻辑的多个指令,
其中:
该处理器配置成接收多个管理程序调用指令,每一管理程序调用指令具有关联的管理程序调用号码,以及该处理器配置成借由(1)调用固件模块里的管理程序调用处理器以及(2)使该管理程序调用号码可用于该调用处理器,而响应管理程序调用指令;以及
该软件应用设置成借由发出一个管理程序调用指令,而从该固件模块中调用无线电通讯功能函数,该管理程序调用指令具有关联的预定管理程序调用号码,该关联的预定管理程序调用号码对应于该被调用的功能函数。
3.如权利要求1或2所述的方法,其中该固件模块是链接的二进制模块。
4.如前述权利要求中任一项所述的方法,其中该固件模块被设置成;使得由该固件模块所提供的所有无线电通讯功能函数被具有各自管理程序调用号码的多个管理程序调用指令所调用,其是根据号码与功能函数间的预定对应关系。
5.如前述权利要求中任一项所述的方法,进一步包括编译该软件应用以及在该编译中使用多个管理程序调用号码与多个无线电通讯功能函数之间的对应关系。
6.如前述权利要求中任一项所述的方法,进一步包括当编译和/或载入该软件应用时,使用该预定的软件应用内存地址。
7.如前述权利要求中任一项所述的方法,其中该软件应用设置成:借由执行一专属的SVC处理器指令而发出管理程序调用指令。
8.如前述权利要求中任一项所述的方法,其中该固件模块以及该软件应用各自具有相应的中断向量表,其中该装置被设配置为在处理一个中断时使用该固件模块的该向量表,以及其中该固件模块配置成使得该固件模块未被编程用以自行处理的所有中断被传递至该软件应用。
9.如权利要求8所述的方法,其中该固件模块和该软件应用的中断向量表互相使用相同的中断-向量-地址偏移。
10.如前述权利要求中任一项所述的方法,其中该装置包括存储器保护逻辑,被设置成用以截取多个存储器存取指令,并被配置用来防止软件应用读取或重写固件模块。
11.一种集成电路无线电通讯装置,其中:
该装置包括处理器、存储器以及无线电通讯逻辑;
该存储器具有储存在固件内存地址的固件模块,该固件模块包括用于根据预定的无线协议来控制该无线电通讯逻辑的多个指令;以及
该处理器配置成用以接收多个管理程序调用指令,每一管理程序调用指令具有关联的管理程序调用号码,并借由(1)调用固件模块里的管理程序调用处理器以及(2)使该管理程序调用号码可用于该调用处理器,而响应管理程序调用指令;
该存储器具有储存于预定应用内存地址的软件应用,该软件应用被设置用以借由发出管理程序调用指令而从该固件模块中调用无线电通讯功能函数,该管理程序调用指令具有关联的预定管理程序调用号码,关联的预定管理程序调用号码对应于该被调用的功能函数。
12.如权利要求11所述的装置,其中该固件模块被设置成:使得由该固件模块所提供的所有无线电通讯功能函数被具有各自管理程序调用号码的多个管理程序调用指令所调用,其是根据号码与功能函数间的预定相对应关系。
13.如权利要求11或12所述的装置,其中该固件模块被设置成:使得由该固件模块所提供的所有功能函数是借由发出管理程序调用指令而被调用。
14.如权利要求11到13中任一项所述的装置,其被配置成以至于当在该装置上执行软件应用时,并不需要运行-时间链接。
15.如权利要求11到14中任一项所述的装置,其中该软件应用被设置成通过执行一专属SVC处理器指令而发出管理程序调用指令。
16.如权利要求11到15中任一项所述的装置,其中该处理器和/或软件应用被配置用以使一个或多个参数的值可用于该管理程序调用处理器。
17.如权利要求11到16中任一项所述的装置,其中该处理器被配置用以操作来自该软件应用的管理程序调用指令作为一个例外,其中该处理器支持多个中断优先级,以及其中该固件模块中的一些功能函数被分配相对较高的优先级,而该固件模块中的其他功能函数具有相对较低的优先级。
18.如权利要求17所述的装置,其中该软件应用被设置来处理多个中断,以将相对较高的优先级分配至一些事件驱动功能函数,以及将一些相对较低的优先级分配至其他事件驱动功能函数。
19.如权利要求18所述的装置,其中用高和低的固件模块优先级交错高和低的软件应用优先级。
20.如权利要求18或19所述的装置,,其中该最高固件优先级等级高于该最高的软件应用优先级等级。
21.如权利要求11到20中任一项所述的装置,其中该固件模块配置成用以调用该软件应用里的功能函数,以响应该固件模块接收到一个中断。
22.如权利要求11到21中任一项所述的装置,其中固件模块与软件应用每一个都具有各自的中断向量表,其中该装置配置成当处理一中断时使用该固件模块的该向量表,以及其中该固件模块配置为使得该固件模块未被编程用以自行处理的所有中断被传送至该软件应用。
23.如权利要求22所述的装置,其中该固件模块和该软件应用的中断向量表相互使用相同偏移。
24.如权利要求11到23中任一项所述的装置,其中,通过至该固件模块的调用,该固件模块可被实质地禁用,以造成该固件模块来重置该协议堆栈,以及禁用任何存储器保护,以便将资源返回至该软件应用,以及其中,当禁用时,该固件模块将转发所有中断至该软件应用。
25.如权利要求11到24中任一项所述的装置,其中该处理器支持从一个中断优先级等级至另一个中断优先级等级的多个无缝转换。
26.如权利要求11到25中任一项所述的装置,包括存储器保护逻辑,存储器保护逻辑被设置成截取多个存储器存取指令以及被配置成用来防止该软件应用读取或重写该固件模块和/或防止该软件应用读取或写入关联于该固件模块的随机存取存储器。
27.一种固件模块,用以载入集成电路无线电通讯装置,位于固件内存地址,该装置包括处理器、存储器以及无线电通讯逻辑,该固件模块包括:
多个指令,用于根据预定的无线协议来控制该无线电通讯逻辑;以及
管理程序调用处理器,被设置成:通过执行无线电通讯功能函数响应软件应用所发出的管理程序调用指令,无线电通讯功能函数对应于关联于该管理程序调用指令的管理程序调用号码。
28.如权利要求27所述的装置,其为链接的二进制模块。
29.一种软件应用,用以载入集成电路无线电通讯装置,位于预定软件应用内存地址,该装置包括处理器、存储器以及无线电通讯逻辑,该软件应用设置成通过发出管理程序调用指令来调用无线电通讯功能函数,该管理程序调用指令具有关联的预定管理程序调用号码,该管理程序调用号码对应于该被调用的功能函数。
CN201380034634.2A 2012-06-27 2013-06-26 使用管理程序调用指令从固件模块调用无线电通讯功能的方法和设备 Active CN104412230B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1211423.7 2012-06-27
GB201211423A GB2503471B (en) 2012-06-27 2012-06-27 Integrated-circuit radio
PCT/GB2013/051692 WO2014001801A1 (en) 2012-06-27 2013-06-26 Integrated-circuit radio

Publications (2)

Publication Number Publication Date
CN104412230A true CN104412230A (zh) 2015-03-11
CN104412230B CN104412230B (zh) 2018-06-22

Family

ID=46704313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380034634.2A Active CN104412230B (zh) 2012-06-27 2013-06-26 使用管理程序调用指令从固件模块调用无线电通讯功能的方法和设备

Country Status (8)

Country Link
US (2) US9317348B2 (zh)
EP (1) EP2867768A1 (zh)
JP (1) JP6326047B2 (zh)
KR (1) KR102088690B1 (zh)
CN (1) CN104412230B (zh)
GB (1) GB2503471B (zh)
TW (1) TWI603265B (zh)
WO (1) WO2014001801A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2515364B (en) * 2013-12-20 2015-06-17 Nordic Semiconductor Asa Updatable integrated-circuit radio
GB2521607B (en) 2013-12-23 2016-03-23 Nordic Semiconductor Asa Integrated-Circuit Radio
CN113924623A (zh) 2019-05-31 2022-01-11 美光科技公司 用于存储器组件的控制器
CN112203319B (zh) * 2020-10-23 2022-07-15 四川长虹网络科技有限责任公司 ZigBee设备的测试方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070112680A1 (en) * 2005-11-11 2007-05-17 Infineon Technologies Ag System and method for processing digital media content in a mobile device
WO2007065478A1 (en) * 2005-12-07 2007-06-14 Freescale Semiconductor, Inc Wireless subscriber communication unit and method of power control with back-off therefore
CN101897128A (zh) * 2007-10-12 2010-11-24 信息控制公司 射频跟踪与通信设备以其运行方法
CN102065570A (zh) * 2009-11-17 2011-05-18 库帕技术公司 具有统一编程接口和方法的工业无线电设备
WO2011106569A2 (en) * 2010-02-24 2011-09-01 Qualcomm Incorporated Methods and systems for managing participation in multiple wireless networks

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3632139A1 (de) 1986-09-22 1988-04-07 Bbc Brown Boveri & Cie Verfahren zur ausfuehrung von zwei in verschiedenen programmiersprachen geschriebenen programmen
JPS63296140A (ja) * 1987-05-28 1988-12-02 Canon Inc 割込み制御方式
US5161228A (en) * 1988-03-02 1992-11-03 Ricoh Company, Ltd. System with selectively exclusionary enablement for plural indirect address type interrupt control circuit
JPH07105124A (ja) * 1993-10-06 1995-04-21 Toshiba Corp 割込み制御装置
CA2143488C (en) * 1995-02-27 2000-01-11 Robert Paul Duncan Dynamic link libraries without linker or loader support
US6223275B1 (en) * 1997-06-20 2001-04-24 Sony Corporation Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
US20020073398A1 (en) * 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
JP2002108625A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 言語処理装置及び言語処理プログラムを格納した記録媒体
US7237121B2 (en) 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US6874069B2 (en) 2002-07-26 2005-03-29 Silicon Storage Technology, Inc. Microcontroller having an embedded non-volatile memory array with read protection for the array or portions thereof
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device
US7206884B2 (en) * 2004-02-11 2007-04-17 Arm Limited Interrupt priority control within a nested interrupt system
US7318150B2 (en) * 2004-02-25 2008-01-08 Intel Corporation System and method to support platform firmware as a trusted process
JP2005242806A (ja) * 2004-02-27 2005-09-08 Renesas Technology Corp データ処理装置
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
FR2905819B1 (fr) * 2006-09-12 2013-01-18 Wavecom Procede de gestion de l'architecture logicielle d'un circuit de radiocommunication,application,produit programme d'ordinateur et circuit correspondants.
US20090253384A1 (en) * 2008-04-04 2009-10-08 Stmicroelectronics, Ltd. Dual Mode Radio Frequency Front End Circuit
US8291202B2 (en) * 2008-08-08 2012-10-16 Qualcomm Incorporated Apparatus and methods for speculative interrupt vector prefetching
US8143699B2 (en) * 2009-02-25 2012-03-27 Taiwan Semiconductor Manufacturing Co., Ltd. Dual-dielectric MIM capacitors for system-on-chip applications
US20120255031A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for securing memory using below-operating system trapping
US9063847B2 (en) * 2011-04-19 2015-06-23 Dell Products, Lp System and method for managing space allocation within a file system
US9563410B2 (en) * 2011-05-25 2017-02-07 Amx Llc Data-driven menuing system for providing a flexible user interface on an electronic device
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US20130338848A1 (en) * 2012-06-19 2013-12-19 Scott Park Method and Apparatus for Leveling Recreational Vehicles

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070112680A1 (en) * 2005-11-11 2007-05-17 Infineon Technologies Ag System and method for processing digital media content in a mobile device
WO2007065478A1 (en) * 2005-12-07 2007-06-14 Freescale Semiconductor, Inc Wireless subscriber communication unit and method of power control with back-off therefore
CN101897128A (zh) * 2007-10-12 2010-11-24 信息控制公司 射频跟踪与通信设备以其运行方法
CN102065570A (zh) * 2009-11-17 2011-05-18 库帕技术公司 具有统一编程接口和方法的工业无线电设备
WO2011106569A2 (en) * 2010-02-24 2011-09-01 Qualcomm Incorporated Methods and systems for managing participation in multiple wireless networks
WO2011106569A3 (en) * 2010-02-24 2011-11-10 Qualcomm Incorporated Method and wireless device for managing multiple identities and participation in multiple wireless networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WIKI: "Supervisor Call instruction", 《HTTPS://EN.WIKIPEDIA.ORG/W/INDEX.PHP?TITLE=SUPERVISOR_CALL_INSTRUCTION&OLDID=435751439》 *

Also Published As

Publication number Publication date
WO2014001801A1 (en) 2014-01-03
TW201401169A (zh) 2014-01-01
JP2015524964A (ja) 2015-08-27
JP6326047B2 (ja) 2018-05-16
GB2503471A (en) 2014-01-01
US20160196170A1 (en) 2016-07-07
GB201211423D0 (en) 2012-08-08
GB2503471B (en) 2015-05-06
CN104412230B (zh) 2018-06-22
KR102088690B1 (ko) 2020-03-16
EP2867768A1 (en) 2015-05-06
US9317348B2 (en) 2016-04-19
TWI603265B (zh) 2017-10-21
US20140007141A1 (en) 2014-01-02
KR20150024927A (ko) 2015-03-09

Similar Documents

Publication Publication Date Title
KR102095614B1 (ko) 메모리 보호
EP3084593B1 (en) Updatable integrated-circuit radio
US20090222835A1 (en) Operating System for a Chip Card Comprising a Multi-Tasking Kernel
CN104412230A (zh) 集成电路无线电
US20140173147A1 (en) Trigger routing unit
CN102222017A (zh) 通过不可见接口实现不符合abi特征的方法和系统
CN107430565A (zh) 具有多个独立微控制器的低接脚微控制器装置
US8469267B2 (en) Method for implementing a wireless personal communication protocol for an IC card
EP3087477B1 (en) Integrated-circuit radio
JP5500332B2 (ja) Icチップ、情報処理装置、ソフトウェアモジュール制御方法、情報処理システムおよび方法、並びにプログラム
CN106922189B (zh) 设备代理装置及其控制方法
CN114327882A (zh) 一种数据转发方法、装置及系统
KR100615890B1 (ko) 스마트 카드 운영체제의 패치 방법
JP2010186497A (ja) 半導体記憶システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant