CN1330781A - 对只读存储器内存放的程序的流程进行变更的方法 - Google Patents

对只读存储器内存放的程序的流程进行变更的方法 Download PDF

Info

Publication number
CN1330781A
CN1330781A CN99814462A CN99814462A CN1330781A CN 1330781 A CN1330781 A CN 1330781A CN 99814462 A CN99814462 A CN 99814462A CN 99814462 A CN99814462 A CN 99814462A CN 1330781 A CN1330781 A CN 1330781A
Authority
CN
China
Prior art keywords
subroutine
routine
program
memory
writing
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
CN99814462A
Other languages
English (en)
Inventor
M·韦贝尔
J·斯特格尔
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1330781A publication Critical patent/CN1330781A/zh
Pending legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Abstract

本发明涉及一种对只读存储器内存放的程序的流程进行变更的方法。对此,所述的程序具有多个例行程序,而且每个所述的例行程序都可分配有一个子程序,该子程序被存放在第一写/读存储器内。另外,把第二写/读存储器的存储位置分配给每个例行程序。如果例行程序分配有一个子程序,则该例行程序便根据所分配的存储位置的内容调用所述的子程序。

Description

对只读存储器内存放的程序的流程进行变更的方法
本发明涉及一种如权利要求1的前序部分所述的、对只读存储器内存放的程序的流程进行变更的方法。
许多包含微处理器和/或信号处理器的集成电路都具有一种只读存储器(ROM),以用于所述微处理器或信号处理器的程序(固件)。譬如在一种遵循GSM标准的移动无线电话的集成电路中,在信号处理器的程序内实现语音处理、信道编码和数据业务等功能,而在微处理器的程序内实现电话控制的功能。为了事后变更这种程序,须改变至少一个制作该集成电路的掩模,并重新制作该集成电路。尤其在大量制作集成电路的情况下,这是复杂和昂贵的。
譬如US 5,493,674曾公开过在一些预定位置向存放于只读存储器内的程序插入指令,由该指令每次调用一个子程序(插入校正程序)。在此,所述的子程序被存放在写/读存储器(RAM)中,并可事后进行变更。
此处有利的是,事后可以通过变更存放于写/读存储器内的子程序来影响存放于只读存储器内的程序的流程。为此,从一些不包含在所述集成电路上的装置向所述的写/读存储器装载用于校正所述只读存储器程序的子程序。
在子程序执行完之后再跳回到所述只读存储器内存放的程序中。
但缺点是总是由运行的程序跳至所述的子程序。另外,为每个用于调用子程序的指令都设置了一个子程序,由此这些子程序有时会需要较大的存储地方。由于这种较窄的范围条件,事后对只读存储器内存放的程序进行变更只有在某些条件下才能实现。
因此本发明所基于的技术问题在于,提供一种对只读存储器内存放的程序的流程进行变更的方法,其中可以事后对所述的子程序调用进行影响,而且所述子程序所需的存储地方尽可能地少。
该问题由具有权利要求1的特征部分的、对只读存储器内存放的程序的流程进行变更的方法来解决。本发明的优选扩展方案由各个从属权利要求给出。
本发明涉及一种对只读存储器内存放的程序的流程进行变更的方法。对此,所述的程序具有多个例行程序,而且每个所述的例行程序都可分配有一个子程序,该子程序被存放在第一写/读存储器内。据此,每个例行程序都可分配有一个自己的子程序,或多个例行程序分配有一个公共的子程序,或没有例行程序分配有子程序。在此,只有当只读存储器内存放的程序无故障时,才没有例行程序分配有子程序。另外,把第二写/读存储器的一些存储位置分配给每个例行程序。如果例行程序分配有一个子程序,则该例行程序便根据所分配的存储位置的内容调用所述的子程序。由此,利用给例行程序分配的一些存储位置,可以给子程序调用施加影响。该方法的优点在于,可有条件地调用所述的子程序。同时,此处有利的是,调用子程序的条件随时都可以利用再编程、并通过占用例行程序所分配的存储位置来进行事后变更。该方法相对于已知方法的特征就在于其多功能性。
根据一种优选实施方案,当调用其所分配的子程序时,每个例行程序至少向所述的子程序传送一个参数。由此,该方法变得具有更大的多功能性,因为所述的子程序可以根据该传送的参数来执行不同的功能。
在一种尤其优选的实施方案中,分配给例行程序的存储位置只被分配给该例行程序。当第二写/读存储器的存储地方需要不大时,可以使用该实施方案。对此,在调用子程序时较大的多功能性是有利的,因为对于每个例行程序,可以通过相应占用所分配的存储位置来确定是否应调用该分配的子程序。在该方案的一种尤其优选的替代实施方案中,分配给例行程序的那些存储位置还被分配给其它所有的例行程序。在此,由于所有的例行程序分配有相同的存储位置,所以在第二写/读存储器内只需要较少的存储地方,只是比较有利的。但此时只是通过相应占用所分配的存储位置来为所有的例行程序确定是否应调用例行程序所分配的子程序。
在一种尤其优选的实施方案中,通过所述的参数把实施调用的例行程序通知给该子程序,并根据所述参数来影响所述子程序的功能。
本发明的其它优点、特征和应用可能性可以从下文结合附图对实施例的阐述中得出。
图1示出了本发明的一个实施例;以及
图2示出了占用第一和第二写/读存储器的实施例。
图1示出了一种存放有程序的只读存储器1。该程序具有许多例行程序,其中图1只简略地示出了三个例行程序4、5和6。通过几个点和例行程序的名称#1~#n来表示在只读存储器1内可以存放多于三个的例行程序。这些例行程序是以某些预定的地址间隔而被“嵌入”到所述程序内的。此处重要的是,这些例行程序“均匀分散地”位于整个地址区域上,以便使该程序的每一部分都可事后进行变更。如果譬如只有程序的低地址区存在例行程序,那么可以不再从程序的高地址区跳向子程序,据此在该地址区内也不再进行校正。由于例行程序4、5和6被存放在只读存储器1内,所以事后甚至再也不能变更该例行程序。
每个例行程序4~6都分配有一个子程序7~8。在此,该子程序被存放在第一写/读存储器2内,而且可以随时进行事后变更。所述第一写/读存储器2与存放该程序的只读存储器1是位于同一地址空间内。这意味着,第一写/读存储器2和只读存储器1可以通过相同的地址总线和数据总线进行控制,并位于程序存储区内。在此,譬如第一写/读存储器2可以占用十六进制0000~1FFF的地址空间,而只读存储器1占用的是十六进制2000~FFFF的地址空间。在该情形下,写/读存储器1可以通过8192字节的RAM来实现。
在第二写/读存储器3中,为每个例行程序分别分配了多个存储位置。该第二写/读存储器3所处的地址空间不同于只读存储器1和写/读存储器2。譬如,所述的第二写/读存储器3可以位于数据存储器的地址空间内。如图1中所示,例行程序4和6分配了相同的存储位置10,而例行程序5分配了存储位置9。如划线所示,也可以给例行程序5分配例行程序4和6所属的存储区10。在该情形下,所有的例行程序4~6分配的是相同的存储位置,由此在第二写/读存储区3内所需的存储地方较少。
在例行程序至子程序的分配中,可区分为三种不同的情形,其优缺点如下表所示:
分配 优点 缺点
1 一个子程序只分配给一个例行程序:子程序与例行程序一样多 子程序小:只须研究该实施调用的例行程序的情况 第二写/读存储器较大:大小=“子程序数目”乘以“每子程序设立的存储单元”
2 一个子程序被分配给多个例行程序:子程序少于例行程序 子程序中等大:必须研究多个实施调用的例行程序的情况 第二写/读存储器中等大
3 一个子程序被分配给所有例行程序:有许多例行程序和一个子程序 子程序较大:必须研究每个实施调用的例行程序的情况 第二写/读存储器小
在第一种情形下虽然能实现最大的功能性,但代价是在第二写/读存储器内需要较大的存储地方。
在第二种情形下,可以实现第二写/读存储器及第一写/读存储器内的存储地方需要与所述功能性之间的均衡,原因是,多个例行程序被分配给了第二写/读存储器内的同一存储位置和一个子程序。该子程序被用于多个实施调用的例行程序,且相应地要比只用于一个例行程序的子程序要复杂。为了区分实施调用的例行程序,将一些参数传送给所述的子程序。
在第三种情形下只有一个子程序,它被用于所有的例行程序,且相应较大和复杂。为此在第二写/读存储器内只需要极少的存储地方。
例行程序4~6均具有短的程序序列(宏指令),由它从第二写/读存储器3内的、相应例行程序所属的存储单元中读出一些值,并将其与一预定值进行比较。然后,该宏指令根据该比较的结果调用一个存放在第一写/读存储器2内的子程序。在调用该子程序时向所述的子程序传送一个参数。
譬如,该宏指令的实施例以机器语言表述如下:
.MACRO FW_HOOK_PAR HOOK_ID,HOOK_PAR
   mov[##HK_XS.mem+HOOK_ID],a0
   brr>%no_hook,eq
   mov#H0OK_PAR,all
   Call a01%no_hook:.ENDM
(所述地址[##HK_XS.mem+HOOK_ID]的内容被从所述第二写/读存储器3中读到第一累加器a0内。如果该读出的值等于0,则跳至宏指令brr>%no_hook,eq的末端。在此不调用子程序。否则参数HOOK_PAR被写入到第二累加器all中,并利用Call a01来调用分配给该宏指令的子程序。)
在所述第二写/读存储器3内存放的值可以对应于所述子程序的起始地址。在图2中,第一写/读存储器2的下部十六进制地址0000~001F没有被子程序占用。第一子程序#1在十六进制地址0020处开始,第二子程序#2在十六进制地址0040处开始,而且最后的子程序#n在十六进制地址00F0处开始。
在所述第二写/读存储器3中直接存放有所述子程序的十六进制起始地址0020、0040和00F0。
例行程序从第二写/读存储器3中所分配的存储位置处读出那儿存储的地址,并将该地址与0进行比较,若该地址不等于0,则用该地址直接作为在所述第一写/读存储器2中存放的子程序的入口地址。
如果例行程序没有分配子程序,则简单地在第二写/读存储器3中所分配的存储单元内存入十六进制0000。
在调用子程序时可以传送一个或多个参数。如果多个例行程序被分配给相同的、其中存有子程序地址的存储位置,而且该子程序应执行实施调用的例行程序的相应功能,那么这将是尤其有利的。在该情形下,被调用的子程序必须对实施调用的例行程序进行识别。为此,该子程序对一个或多个传送的参数进行分析,其中每个可以调用该子程序的例行程序都固定地分配有一个确定的参数值。
优选地,所示的方法尤其还可应用于哈佛结构,该哈佛结构主要是应用在数字信号处理器(DSP)中,而且具有分离的程序地址空间和数据地址空间。

Claims (5)

1.对只读存储器内存放的程序的流程进行变更的方法,其中所述的程序具有多个例行程序(4-6),而且每个所述的例行程序(4-6)都可分配有一个子程序(7,8),该子程序被存放在第一写/读存储器(2)内,
其特征在于:
-把第二写/读存储器(3)的一些存储位置(9,10)分配给每个例行程序(4-6),以及
-如果例行程序(4-6)分配有一个子程序(7,8),则该例行程序(4-6)便根据所分配的存储位置(9,10)的内容调用所述的子程序(7,8)。
2.如权利要求1所述的方法,其特征在于:
在调用其所分配的子程序(7,8)时,每个例行程序(4-6)至少向所述的子程序(7,8)传送一个参数。
3.如权利要求1或2所述的方法,其特征在于:
分配给例行程序(5)的存储位置(9)只被分配给该例行程序(5)。
4.如权利要求1或2所述的方法,其特征在于:
分配给例行程序(4)的存储位置(9)还被分配给其它所有的例行程序(5,6)。
5.如权利要求2~4之一所述的方法,其特征在于:
通过所述的参数把实施调用的例行程序(4-6)通知给该子程序(7,8),并根据所述的参数来影响所述子程序(7,8)的功能。
CN99814462A 1998-12-15 1999-12-01 对只读存储器内存放的程序的流程进行变更的方法 Pending CN1330781A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19857921.7 1998-12-15
DE19857921A DE19857921A1 (de) 1998-12-15 1998-12-15 Verfahren zur Änderung des Ablaufs eines in einem Festwertspeicher abgelegten Programms

Publications (1)

Publication Number Publication Date
CN1330781A true CN1330781A (zh) 2002-01-09

Family

ID=7891205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99814462A Pending CN1330781A (zh) 1998-12-15 1999-12-01 对只读存储器内存放的程序的流程进行变更的方法

Country Status (8)

Country Link
US (1) US20020010846A1 (zh)
EP (1) EP1147466B1 (zh)
JP (1) JP2002532802A (zh)
KR (1) KR100405145B1 (zh)
CN (1) CN1330781A (zh)
AT (1) ATE247847T1 (zh)
DE (2) DE19857921A1 (zh)
WO (1) WO2000036498A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339031A (zh) * 2010-07-27 2012-02-01 深圳市合信自动化技术有限公司 一种子程序调用的方法、装置及plc控制系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173746A (ja) * 2003-12-09 2005-06-30 Yokogawa Electric Corp メモリ装置及びメモリ装置のアクセス方法
US7739469B2 (en) * 2005-11-08 2010-06-15 Freescale Semiconductor, Inc. Patching ROM code
GB2515364B (en) * 2013-12-20 2015-06-17 Nordic Semiconductor Asa Updatable integrated-circuit radio
CN106354524B (zh) 2015-07-17 2021-01-01 恩智浦美国有限公司 实时更新固件的系统和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2231419B (en) * 1989-05-05 1993-09-22 Technophone Ltd Updating prom information.
JPH06187143A (ja) * 1992-10-23 1994-07-08 Sony Corp 電子装置
US5481713A (en) * 1993-05-06 1996-01-02 Apple Computer, Inc. Method and apparatus for patching code residing on a read only memory device
US5546586A (en) * 1993-05-06 1996-08-13 Apple Computer, Inc. Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code
US5619698A (en) * 1995-05-05 1997-04-08 Apple Computer, Inc. Method and apparatus for patching operating systems
US6009500A (en) * 1995-06-07 1999-12-28 Compaq Computer Corporation Replacement of erroneous firmware in a redundant non-volatile memory system
US5802549A (en) * 1995-12-14 1998-09-01 International Business Machines Corporation Method and apparatus for patching pages of ROM
US6049672A (en) * 1996-03-08 2000-04-11 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure
US5796972A (en) * 1997-01-14 1998-08-18 Unisys Corporation Method and apparatus for performing microcode paging during instruction execution in an instruction processor
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
JPH11143704A (ja) * 1997-11-12 1999-05-28 Nec Software Hokkaido Ltd 圧縮データパッチ修正方式
US6260157B1 (en) * 1999-02-16 2001-07-10 Kurt Schurecht Patching of a read only memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339031A (zh) * 2010-07-27 2012-02-01 深圳市合信自动化技术有限公司 一种子程序调用的方法、装置及plc控制系统
CN102339031B (zh) * 2010-07-27 2013-12-25 深圳市合信自动化技术有限公司 一种子程序调用的方法、装置及plc控制系统

Also Published As

Publication number Publication date
ATE247847T1 (de) 2003-09-15
WO2000036498A3 (de) 2000-09-28
EP1147466A2 (de) 2001-10-24
WO2000036498A2 (de) 2000-06-22
KR100405145B1 (ko) 2003-11-10
DE19857921A1 (de) 2000-06-29
JP2002532802A (ja) 2002-10-02
US20020010846A1 (en) 2002-01-24
KR20010082332A (ko) 2001-08-29
EP1147466B1 (de) 2003-08-20
DE59906716D1 (de) 2003-09-25

Similar Documents

Publication Publication Date Title
DE60224281T2 (de) System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes
CN1238890A (zh) 通信网中用于动态通信控制的方法和路由系统
CN1330781A (zh) 对只读存储器内存放的程序的流程进行变更的方法
CN101859279A (zh) 一种内存分配、释放方法及装置
CN1502075A (zh) 在嵌入式环境中加载和执行应用程序的方法
CN1267438A (zh) 蜂窝式电话网络的重新配置
CN110389940A (zh) 一种数据均衡方法、装置和计算机可读存储介质
CN104965708A (zh) 一种应用程序运行过程的内存管理方法及装置
EP0398876A1 (de) Verfahren zur identifizierung von peripheren einrichtungen.
CN1081362C (zh) 在介质存储设备上提供存取保护的系统
EP0632668A2 (de) Verfahren zum Aktualisieren eines Systemprogramms in einer Vermittlungseinrichtung
CN1115630C (zh) 微型计算机
CN1172237C (zh) 在非持久存储器内建立对象并保持可访问性的方法和装置
CN1855049A (zh) 存储器配置系统与方法
US20020023196A1 (en) Program module management system and method thereof and storing medium of management programs of the system
CN1110919C (zh) 下载数据以向声码器添加功能的方法
CN115658561A (zh) 配电终端内存管理方法、装置、电子设备及存储介质
CN1271438A (zh) 使用分组交换网的自适应处理器系统
CN1175339C (zh) 利用内部和外部存储器
CN1848086A (zh) 在具有与非闪速存储器的系统执行应用程序的方法和设备
CN114489752A (zh) 差异化升级方法、系统、存储器以及计算机设备
US20040098554A1 (en) Optimised management method for allocating memory workspace of an onboard system and corresponding onboard system
EP1999731B1 (de) Speicherverwaltung von chipkarten
CN106293784A (zh) 一种bin文件分块升级的方法
CN1235133C (zh) 减少总存储器使用量的微电脑系统与方法

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
PB01 Publication
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication