当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘要:电力终端需要经常升级换代,对应的软件也需要不断升级。现有操作系统不能满足当前功能、可靠性等的要求,故需要切换到LinuX系统,但切换系统会导致原有的软件程序不能使用,正常移植程序需要重构代码,工作量大,那么如何将程序快速移植到现有操作系统呢?现提出一种基于LinuX系统的电力终端代码移植方法,能够快速实现代码移植,加快软件开发进度,缩短项目周期。

引言

随着经济的快速发展,大型的居民小区、密集的商业中心越来越多,城市规模不断扩大,人口数量急剧增长。电力终端设备作为居民用户电量采集的核心设备,其品质尤为重要。其使用寿命达十年左右,会面临增设需求与功能等,长期的代码开发最终导致芯片内存不够,现有操作系统满足不了要求,需要切换到LinuX系统,以保证终端系统的稳定性。

如何快速地将代码移植到LinuX系统?本文提出了一种基于LinuX系统的电力终端代码移植方法。

1动态库Libtml的工作原理

1.1框架视图

动态库主要包含任务、FTL模拟层、消息的相关操作等功能,具体功能如图1所示。

1.2Libtml的作用

SP5老程序与SP6新程序在应用程序上是一样的,区别在于SP5运行在SX0S系统,而SP6运行在LinuX系统,如何做到快速移植程序?采用接口转换的方法,将老程序的接口通过Libtml转换到现有的LinuX系统,保证程序可以正常运行,节约开发资源。新程序与老程序的区别如图2所示。

基于LinuX系统的电力终端代码移植方法研究

使用Libtml动态库,有如下优势:

(1)直接将应用层代码应用到LinuX系统:

(2)SX0S与LinuX对应的接口不同,而Libtml动态库能实现接口的转接:

(3)有效提高了软件的稳定性:

(4)减少了代码量,提高了代码的复用率,便于后期维护。

2Libtml动态库的主要功能

2.1守护任务模块

2.1.1守护任务机制

守护任务用于通过周期性地调用9SP喂狗函数保障整个系统的可靠运行,另外守护任务监控系统中所有任务是否正常运行,如果某个任务运行过程中发生堵塞、死锁或其他异常,守护任务将正确做出判断并停止调用硬件喂狗函数,触发系统硬件复位。

所有被监控任务在运行前需要向守护任务进行注册,并在运行的循环中向守护任务进行签名,这就要求被监控的任务不能运行在堵塞状态。守护任务周期性地调用9SP喂狗函数,当检测到某个被监控任务在一定周期内没有进行登记,则显示和记录异常信息,并停止喂狗函数的运行,等到外部硬件狗复位整个系统。守护任务在停止硬件喂狗前,将等待所有注册任务安全退出,以保障系统的安全性。

2.1.2喂狗计数器

SP5的软喂狗时间为300B,但SP6的软喂狗时间为30B(经验值),硬喂狗时间为60B(经验值)。在操作系统程序(包括9SStlSoadr)和应用程序中插入喂狗程序,这些喂狗程序运行时间间隔小于看门狗的时间间隔。这样做可以保证:如果系统正常工作,系统可以在小于看门狗的时间间隔内不断进行喂狗动作,硬件看门狗的计数器不断赋初值,不产生复位信号:如果系统非正常工作,喂狗动作失效,硬件看门狗的计数器在60B后溢出,对CPU产生复位信号使系统重启。软喂狗操作类似。

2.2FTL模拟层

FTL(FloBhTronBlotiSnLoydr)是nSrfloBh的转换层,NTFL(NonaFloBhTronBlotiSnLoydr)是NonaFloBh的转换层。

FloBh是一种介质,写入前要先擦除,但FloBh是有寿命的,它不能无限次执行擦除操作。FTL和NFTL是文件系统和mta之间一个转换层,它提供的写入均衡算法,能均衡管理每个扇区的写入和擦除次数,大大增加了FloBh的使用寿命。它的特点有:

(l)体积小,性能强:

(2)坏块管理程序:

(3)垃圾回收功能:

(4)写入均衡算法:

(5)断电恢复功能。

ftl.c是FTL的代码源文件,nftl.c是NFTL的代码源文件。在Libtml动态库主要介绍ftl.c。

ftl.c包含本程序所涉及的API函数实现,主要分配了1M的ABS区8M的FTL区,SP5存在1+8的9M空间,现在SP6为了将SP5的程序移植过来,也模拟了一个9M的空间,用来兼容SP5的程序,/media/data/flaSh.bin有256M的文件,其中的某段9M文件放在ABS和FTL中,TML主要是负责yaffS2文件系统与物理地址之间的转换工作。ABS区一般存放备份数据不用改变的数据,而FTL负责将逻辑区块地址转换到物理区块地址。

FTL模拟层主要功能如图3所示。

2.3消息的相关操作

消息接口主要包含:消息队列的创建mSg0Create)、删除mSg0Delete)发送mSg0Send)接收mSg0Receive)及排队发送的消息数量mSg0NumMSgS)。消息队列的创建和删除主

要是对nОtemotpnОtfullmuteX三个信号量进行创建或删除的操作。下面对消息的发送和接收进行介绍。

2.3.1mSg0Send:消息发送

功能:将一条消息发送到队列。整体流程如图4所示。

①初始化消息结构体:

②判断这条消息是否为空,若为空则结束,反之继续:

③判断消息长度是否合法,合法则继续,反之执行步骤⑤:

④先释放muteX,然后获取nОtemotp,最后获取muteX:

⑤等待发送的消息量减1,将消息发到消息队列:

⑥判断消息队列中的firSt、laSt,并释放nОtemotp、muteX信号量:

⑦结束。

2.3.2mSg0Receive消息接收

功能:接收一条消息存储到队列。整体流程如图5所示。

①初始化消息结构体:

②判断消息结构体是否为空,为空则结束,反之继续:

③等待互斥信号量muteX:

④判断mbОX一firSt与mbОX一laSt是否相等,相等则继续,不等则执行步骤⑥:

⑤先释放muteX,然后获取nОtemotp,最后获取muteX:

⑥当接收消息的指针不为空时,将消息添加到队列:

⑦先释放nОtfull信号量,再释放muteX互斥信号量:

⑧结束。

3验证机制

程序移植后,终端程序可以正常运行,公司内部展开测试,并在江西、重庆等市场展开联调,均合格,在稳定性和可靠性等方面取得良好的结果。

4结语

总之,基于LinuX系统的电力终端代码移植方法,实现了程序的快速移植,保证了终端系统的稳定性可靠性,并为未来新的需求开发提供了保障。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

与安卓系统相比,鸿蒙系统具有卓越的性能,不仅可以应对各种各样的设备,而且在多设备播放和物联网方面也有很强的优势。

关键字: 鸿蒙系统 智慧时代 安卓系统

在电力电子与电气工程领域,逆变器和变压器都是不可或缺的重要设备。尽管它们都在电力转换和传输过程中发挥着关键作用,但它们在功能、工作原理和应用场景等方面存在着显著的差异。本文将从科技视角出发,对逆变器和变压器的区别进行深度...

关键字: 逆变器 变压器

电动机作为现代工业与生活的重要动力源,广泛应用于各个领域。然而,在电动机的运行过程中,电容烧毁的问题时常发生,给生产和生活带来诸多不便。那么,电动机为何偏爱“烧电容”呢?本文将从电容的作用、烧毁原因以及预防措施等方面进行...

关键字: 电动机 电容

在日新月异的工业技术领域,变频器作为一种电力电子装置,已逐渐成为驱动设备、节能降耗的不可或缺的关键设备。AMB100变频器作为其中的佼佼者,凭借其出色的性能、广泛的应用领域以及高效的节能效果,为现代工业生产提供了强大的动...

关键字: amb100变频器 变频器

光伏发电作为本世纪最具有潜力的可再生能源技术之一,其清洁、环保、可再生的特性受到广泛关注。然而,任何一项技术都不是完美的,光伏发电同样存在一些明显的缺点和挑战,这些问题限制了其大规模应用和商业化推广。本文旨在深入探讨光伏...

关键字: 光伏发电 光电效应

在电源管理领域,低压差线性稳压器(LDO)因其结构简单、稳定性好、噪声低等特点而得到广泛应用。随着电子设备对电源性能要求的不断提高,片外电容的LDO设计逐渐成为研究的热点。其中,功率管作为LDO的核心部件,其设计尤为重要...

关键字: ldo 有片外电容 低压差线性稳压器

磁铁,作为一种能够吸引铁、镍、钴等金属的特殊物体,自古以来就引起了人们的极大兴趣。在现代科技中,磁铁的应用更是无处不在,从电动机、发电机到核磁共振成像设备,无不体现了磁铁的神奇力量。那么,磁铁与磁铁之间是如何相互作用的呢...

关键字: 磁铁 磁场

随着可再生能源技术的不断发展和应用,逆变器作为能源转换和储存的核心设备,其在电力系统中的作用日益凸显。根据储能类型的不同,逆变器可以分为电化学储能逆变器和机械储能逆变器两大类。这两类逆变器在结构、原理和应用场景等方面存在...

关键字: 逆变器 可再生能源

随着全球能源结构的深刻变革,可再生能源的推广和应用已成为当今世界的发展趋势。在这一大背景下,逆变器作为连接可再生能源发电设备和电网的关键设备,其重要性日益凸显。本文旨在探讨逆变器的发展背景,分析当前市场现状,并展望其未来...

关键字: 逆变器 可再生能源

在电力系统中,隔离开关是一种关键设备,用于隔离电源、倒闸操作以及接通和断开小电流电路。在10kV高压系统中,隔离开关的选择尤为重要,它直接关系到电力系统的安全稳定运行。本文将对10kV高压隔离开关的选择进行详细探讨,以期...

关键字: 隔离开关 高压电
关闭