【嘉勤点评】聆思科技发明的基于微处理器的软件模块加载方案,能够根据第一软件模块的程序和第一软件模块的数据,运行第一软件模块。从而有效节省RAM资源,以利用有限的RAM资源实现更多的功能。
集微网消息,微处理器(MCU)与传统的中央处理器相比,具有体积小、重量轻和容易模块化等优点。微处理器的基本组成部分有:寄存器堆、运算器、时序控制电路,以及数据和地址总线。
由于微处理器的资源例如随机存取存储器资源有限,从而导致运算能力较弱。但是,微处理器的成本很低,因此,其应用十分广泛。例如,物联网设备、网络设备、工业上的智能传感器、智能仪表、电动工具和智能照明设备等等设备上都有微处理器的身影。
因此,如何使用微处理器有限的资源实现更多的功能,成为目前人们研究的重点。聆思科技在2021年10月28日申请了一项名为“一种基于微处理器的软件模块加载方法及装置”的发明专利(申请号:202111266298.7),申请人为安徽聆思智能科技有限公司。
根据该专利目前公开的相关资料,让我们一起来看看这项技术方案吧。
如上图,为现有技术方案中的微处理器资源使用情况的示意图,可以看到,在微处理器上电之前,FLASH存储器中存储有主模块和各个其它软件模块(C1‑Cn)分别对应的软件程序和数据。在微处理器上电之后,FLASH存储器中存储有主模块和各个其它软件模块分别对应的软件程序和数据,在RAM中存储有主模块和各个其它软件模块分别对应的数据。
在需要运行某一软件模块(例如C1软件模块)时,可以从FALSH中读取C1软件模块的程序代码,从RAM中读取C1软件模块的数据,从而运行该软件模块。在该过程中,C1‑Cn各个软件模块分别占用RAM中的一部分存储空间,从而使得软件模块越多,所占用的RAM空间越大,这就使得在RAM资源有限的情况下,所能运行的软件模块的数量也有所限制。
因此,该专利认为:对于C1‑Cn各个软件模块而言,若C1‑Cn这些软件模块相互独立,彼此之间没有变量之间的依赖关系,也没有函数之间的依赖关系,则C1‑Cn各个软件模块不会同时执行,一般是同一时刻只会执行C1‑Cn各个软件模块中的其中一个功能模块。
若在RAM中划分出一块共享空间,该共享空间用于存储待运行的软件模块的数据,而不再存储除待运行的软件模块之外的其它软件模块的数据,则共享空间的大小会远远小于存储这n个软件模块分别对应的数据所需的空间。这样一来,即可有效减少RAM资源的占用。
基于上述思路,如上图,为该专利发明的基于微处理器的软件模块加载方法的流程示意图。首先,系统需要获取第一软件模块的程序代码和第一软件模块的数据,RAM中包括第一共享空间,第一共享空间对应多个软件模块。并且,在第一时刻第一共享空间用于存储多个软件模块中的待运行软件模块的数据,而不存储其它软件模块的数据。
在执行该步骤之前,从FLASH存储器中读取有初值的数据的初始值,并将该初始值存储到第一内存空间中。其中,有初始值的数据对应有初始值的变量,没有初始值的数据对应没有初始值的变量。对于没有初始值的变量,其初始值默认为0。
然后,该方法会根据第一软件模块的程序代码和第一软件模块的数据,运行第一软件模块。因此达到节省微处理器的资源的目的,从而使得能够利用微处理器有限的资源,实现更多的功能。
最后,如上图,为该方案的硬件结构示意图。该装置中主要包括有获取单元501和运行单元502。获取单元用于获取第一软件模块的程序代码和第一软件模块的数据;运行单元用于根据程序代码和数据,运行第一软件模块。
以上就是聆思科技发明的基于微处理器的软件模块加载方案,该方案能够根据第一软件模块的程序和第一软件模块的数据,运行第一软件模块。从而有效节省RAM资源,以利用有限的RAM资源实现更多的功能。