CN113190257A - 智能电能表远程升级方法 - Google Patents
智能电能表远程升级方法 Download PDFInfo
- Publication number
- CN113190257A CN113190257A CN202110485184.5A CN202110485184A CN113190257A CN 113190257 A CN113190257 A CN 113190257A CN 202110485184 A CN202110485184 A CN 202110485184A CN 113190257 A CN113190257 A CN 113190257A
- Authority
- CN
- China
- Prior art keywords
- function
- module
- transition interface
- program
- intelligent electric
- 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
- 238000000034 method Methods 0.000 title claims abstract description 9
- 230000007704 transition Effects 0.000 claims abstract description 33
- 238000013440 design planning Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 241001517610 Funa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种智能电能表远程升级方法,包括:在智能电能表的程序中,为每一个可独立升级的程序模块构造一个函数调用过渡接口;所述函数调用过渡接口为一个有固定的绝对地址定位的函数,其参数包括功能子函数索引和数据指针,用于根据传入的功能子函数索引参数来调用模块内对应的功能子函数,并将数据指针参数传递给该功能子函数,以使其它模块能够任意调用该模块内部的功能子函数;任何一个程序模块需要独立升级更新功能时,保证其函数调用过渡接口的绝对地址是固定的。本发明实现了模块内的功能子函数,不需要逐个定位绝对地址,仍然可以被外部模块调用,增加了程序模块化的独立升级开发的灵活性,以及提高产品的安全性和兼容性。
Description
技术领域
本发明涉及智能电表领域,特别涉及一种智能电能表远程升级方法。
背景技术
智能电表的主芯片,主要采用单芯片,无操作***的方案。嵌入式芯片资源限制的原因,智能电表的程序升级,仍然使用预先整块程序存储备份,再进行更新的模式。现在智能电表的功能越来越复杂化,智能表的程序占用空间也越来越大,对芯片的FLASH资源要求越大,提高了产品的设计成本。同时存在为了更新一个小功能,而需要升级整块电能表的程序的问题。
目前,单芯片无操作***的嵌入式固件升级,存在以下缺点:(1)无法灵活独立地,进行部分程序的模块化升级。(2)方案设计需要预留完整固件大小的FLASH空间,浪费FLASH资源。(3)固件升级需要传输完整的固件,导致升级时间过长。
发明内容
本发明提供了一种智能电能表远程升级方法,以解决至少一个上述技术问题。
为解决上述问题,作为本发明的一个方面,提供了一种智能电能表远程升级方法,包括:
在智能电能表的程序中,为每一个可独立升级的程序模块构造一个函数调用过渡接口;
所述函数调用过渡接口为一个有固定的绝对地址定位的函数,其参数包括功能子函数索引和数据指针、返回参数是用于反馈接口执行情况的无符号整型,函数调用过渡接口用于根据传入的功能子函数索引参数来调用模块内对应的功能子函数,并将数据指针参数传递给该功能子函数,以使其它模块能够任意调用该模块内部的功能子函数;
任何一个程序模块需要独立升级更新功能时,保证其函数调用过渡接口的绝对地址是固定的,以使该模块内被其它的模块调用的功能子函数能够任意更新改动功能代码,而不用考虑因为重新编译链接时,功能子函数的地址改变、与其它模块不兼容的问题,从而使智能电能表程序中的一个或多个程序模块得以独立地升级。
优选地,将模块所有的程序分配在指定FLASH地址,并保证函数调用过渡接口分配在该段的启始地址,以保证每个模块的函数调用过渡接口的绝对地址固定不变,以使模块程序功能升级时,更改后的模块程序经重新编译链接,虽然其中的功能子函数的地址对应改变,但也不会影响其它的模块的调用,从而实现智能电表固件模块化的独立升级。
由于采用了上述技术方案,本发明实现了模块内的功能子函数,不需要逐个定位绝对地址,仍然可以被外部模块调用,增加了程序模块化的独立升级开发的灵活性,以及提高产品的安全性和兼容性,大幅度地缩短程序升级开发和测试调试的周期。程序模块化的独立升级,使得在工程设计规划时,降低了对MCU程序固件FLASH的空间需求。放宽了产品对MCU的选型要求,同时又有效降低产品的成本。
具体实施方式
以下对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
本发明创建构造一个程序模块的函数调用过渡接口,通过这个函数调用过渡接口,一个程序模块可以任意调用,其它的程序模块内的任何功能函数,不会因为该模块单独升级后,其中的功能函数代码更新,重新编译链接,导致的功能函数地址更改,而无法被其它模块正常调用的问题。
整个智能表的程序中,每一个可独立升级的程序模块,都需要构造一个函数调用过渡接口。函数调用过渡接口是一个有固定的绝对地址定位的函数。这个函数的参数包括:功能子函数索引,数据指针,返回参数是无符号整型,反馈接口执行情况。函数体主要实现的任务,是根据传入的功能子函数索引参数,来调用该模块内的对应的功能子函数,并将数据指针参数传递给该功能子函数,从而其它模块可以任意调用该模块内部的功能子函数。
任何一个程序模块需要独立升级更新功能时,只要保证其函数调用过渡接口的绝对地址是固定的。该模块内,有被其它的模块调用的功能子函数,都可以任意更新改动功能代码,而不用考虑因为重新编译链接时,功能子函数的地址改变,与其它模块不兼容的问题。从而达到程序模块灵活独立升级的目的。
在一个优选的实施例中,本发明中的函数调用过渡接口示意性地表示如下:
在创建程序模块的函数调用过渡接口时,先设计模块需要向外部(其它程序模块)开放的,功能子函数(参见上文中的uint8_t Sub_FunA(void*p)),定义每个功能子函数索引(参见上文中的“//Module X功能子函数索引”部分)。函数调用过渡接口内,根据功能子函数索引,再调用对应的功能子函数(参见上文中的“switch(index)”部分),传入数据指针(void*p)。将模块所有的程序,分配在指定FLASH地址(参见上文中的“place at addressmem:0x00020000{readonly section.moduleX}”部分),并保证函数调用过渡接口(参见上文中的“uint8_t Module_X(uint8_t index,viod*p)”),分配在该段的启始地址,以保证每个模块的函数调用过渡接口,绝对地址固定不变。例如,函数调用过渡接口的地址为0x00020000。
在一个优选的实施例中,本发明中的模块程序功能需要升级时的示意性地表示如下:
当模块程序功能需要升级时,更改后的模块程序,重新编译链接,其中的功能子函数的地址对应变化了,但是也不会影响其它的模块的调用,从而达到智能电表的固件模块化独立升级。
模块升级之前,SubFunA功能子函数的FLASH地址为0x00020b29,其它模块调用该函数的路径为A->B。即,先经过函数调用过渡接口路径A。再根据函数调用过渡接口,去调用功能子函数路径B。
在模块功能升级之后,SubFunA功能子函数的FLASH地址,变改为0x00020079,其它模块调用该函数的路径变为C->D。虽然由于功能子函数的FLASH地址改变了,其它未同步升级的模块,仍然可以正确调用到功能子函数SubFunA。因为函数调用过渡接口的绝对地址固定不变,所以路径A和路径C,其实是相同的,这就是实现程序模块化的独立升级目的关键。
由于采用了上述技术方案,本发明实现了模块内的功能子函数,不需要逐个定位绝对地址,仍然可以被外部模块调用,增加了程序模块化的独立升级开发的灵活性,以及提高产品的安全性和兼容性,大幅度地缩短程序升级开发和测试调试的周期。程序模块化的独立升级,使得在工程设计规划时,降低了对MCU程序固件FLASH的空间需求。放宽了产品对MCU的选型要求,同时又有效降低产品的成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种智能电能表远程升级方法,其特征在于,包括:
在智能电能表的程序中,为每一个可独立升级的程序模块构造一个函数调用过渡接口;
所述函数调用过渡接口为一个有固定的绝对地址定位的函数,其参数包括功能子函数索引和数据指针、返回参数是用于反馈接口执行情况的无符号整型,函数调用过渡接口用于根据传入的功能子函数索引参数来调用模块内对应的功能子函数,并将数据指针参数传递给该功能子函数,以使其它模块能够任意调用该模块内部的功能子函数;
任何一个程序模块需要独立升级更新功能时,保证其函数调用过渡接口的绝对地址是固定的,以使该模块内被其它的模块调用的功能子函数能够任意更新改动功能代码,而不用考虑因为重新编译链接时,功能子函数的地址改变、与其它模块不兼容的问题,从而使智能电能表程序中的一个或多个程序模块得以独立地升级。
2.根据权利要求1所述的智能电能表远程升级方法,其特征在于,将模块所有的程序分配在指定FLASH地址,并保证函数调用过渡接口分配在该段的启始地址,以保证每个模块的函数调用过渡接口的绝对地址固定不变,以使模块程序功能升级时,更改后的模块程序经重新编译链接,虽然其中的功能子函数的地址对应改变,但也不会影响其它的模块的调用,从而实现智能电表固件模块化的独立升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110485184.5A CN113190257A (zh) | 2021-04-30 | 2021-04-30 | 智能电能表远程升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110485184.5A CN113190257A (zh) | 2021-04-30 | 2021-04-30 | 智能电能表远程升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113190257A true CN113190257A (zh) | 2021-07-30 |
Family
ID=76983839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110485184.5A Pending CN113190257A (zh) | 2021-04-30 | 2021-04-30 | 智能电能表远程升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190257A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598647A (zh) * | 2016-11-09 | 2017-04-26 | 许继集团有限公司 | 一种智能装置开发平台 |
CN106843954A (zh) * | 2017-01-16 | 2017-06-13 | 武汉慧联无限科技有限公司 | 传感器节点远程升级方法 |
CN107346255A (zh) * | 2017-05-18 | 2017-11-14 | 国网浙江省电力公司电力科学研究院 | 一种电能表***升级方法及电能表*** |
CN109933358A (zh) * | 2019-01-28 | 2019-06-25 | 金卡智能集团股份有限公司 | 用于减少计量设备程序升级量的控制方法 |
CN112306540A (zh) * | 2020-11-05 | 2021-02-02 | 重庆科技学院 | 一种多工程独立编译方法、***、终端及介质 |
CN112650520A (zh) * | 2020-12-31 | 2021-04-13 | 威胜集团有限公司 | 电表升级方法、***、智能电表及存储介质 |
CN112667272A (zh) * | 2020-12-31 | 2021-04-16 | 威胜集团有限公司 | 电表升级方法、***、智能电表及存储介质 |
-
2021
- 2021-04-30 CN CN202110485184.5A patent/CN113190257A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598647A (zh) * | 2016-11-09 | 2017-04-26 | 许继集团有限公司 | 一种智能装置开发平台 |
CN106843954A (zh) * | 2017-01-16 | 2017-06-13 | 武汉慧联无限科技有限公司 | 传感器节点远程升级方法 |
CN107346255A (zh) * | 2017-05-18 | 2017-11-14 | 国网浙江省电力公司电力科学研究院 | 一种电能表***升级方法及电能表*** |
CN109933358A (zh) * | 2019-01-28 | 2019-06-25 | 金卡智能集团股份有限公司 | 用于减少计量设备程序升级量的控制方法 |
CN112306540A (zh) * | 2020-11-05 | 2021-02-02 | 重庆科技学院 | 一种多工程独立编译方法、***、终端及介质 |
CN112650520A (zh) * | 2020-12-31 | 2021-04-13 | 威胜集团有限公司 | 电表升级方法、***、智能电表及存储介质 |
CN112667272A (zh) * | 2020-12-31 | 2021-04-16 | 威胜集团有限公司 | 电表升级方法、***、智能电表及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1474753B1 (en) | Component model for real time system control | |
US6128315A (en) | Distributed control network system | |
CN100489778C (zh) | Java程序可动态更新化实现方法 | |
CN105022630B (zh) | 一种组件管理***及组件管理方法 | |
CN101192165A (zh) | 主从式多处理器***以及软件版本加载方法 | |
US11307550B2 (en) | Sequence control of program modules | |
CN109964181B (zh) | 用于工业自动化设备的控制器和对这种控制器编程和运行的方法 | |
CN109871274B (zh) | 一种嵌入式环境应用的多任务构造及处理方法 | |
CN101110031B (zh) | 用于灵活在线/离线部署n层软件应用程序的错接接口 | |
CN113190257A (zh) | 智能电能表远程升级方法 | |
CN109857638B (zh) | 一种测试***软件通用框架 | |
CN106126211A (zh) | 一种支持调试接口的mcu在线编程*** | |
Macher et al. | Filling the gap between automotive systems, safety, and software engineering. | |
CN100517265C (zh) | 一种微控制器仿真*** | |
CN113961232A (zh) | 提供集成开发环境的终端、方法和平台服务器 | |
CN111597022B (zh) | 一种自动融合多专业业务功能的融合***及融合方法 | |
CN112597413A (zh) | 一种新型嵌入式***框架及设备 | |
US6922834B1 (en) | Data processing apparatus, data processing method, and program providing medium | |
CN110377332B (zh) | 安全计算机平台软件程序在线换装方法 | |
CN111221571A (zh) | 外设驱动制作方法、装置以及计算机可读介质 | |
CN112231231A (zh) | 云端服务的调试方法、***及装置 | |
Bruegge et al. | The Warp programming environment | |
KR102155822B1 (ko) | 이기종 공작기계 컨트롤러용 통합 인터페이스 시스템 | |
CN102567034A (zh) | 驱动程序管理*** | |
CN116126366B (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: 20210730 |