CN113741971A - 微控制芯片上的程序运行方法、装置及存储介质 - Google Patents
微控制芯片上的程序运行方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113741971A CN113741971A CN202111011858.4A CN202111011858A CN113741971A CN 113741971 A CN113741971 A CN 113741971A CN 202111011858 A CN202111011858 A CN 202111011858A CN 113741971 A CN113741971 A CN 113741971A
- Authority
- CN
- China
- Prior art keywords
- program
- address
- offset address
- application program
- access signal
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
- G06F9/265—Microinstruction selection based on results of processing by address selection on input of storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种微控制芯片上的程序运行方法、装置及存储介质。本发明将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域,获取下载应用程序的存储区域所对应的偏移地址,获取总线访问信号,并根据偏移地址对总线访问信号进行验证,若验证通过,则根据偏移地址进行地址转换,得到程序访问地址,根据程序访问地址运行应用程序。本申请实施例可以将微控制芯片上的非易失性存储器划分为多个存储区域,将多个程序下载至这些存储区域中,上电后,再根据非易失性存储器的选项,选择需要执行的程序进行调试以及运行,从而节省程序开发过程中重复的下载调试,提升微控制芯片上程序开发运行的效率。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种微控制芯片上的程序运行方法、装置及存储介质。
背景技术
微控制单元(Microcontroller Unit;MCU),又称单片微型计算机或者单片机。MCU内部一般都包含有非易失性存储器,用于存储程序指令和数据。在MCU运行时,内部的CPU会从非易失性存储器取指令并执行,然后根据程序执行的不同状态发出取指令或者取数据的总线请求。在MCU上,用户会基于MCU的特性开发出一套程序,然后把开发的程序编译后保存到MCU内部的非易失性存储器。这样MCU工作的时候就能够从内部非易失性存储器取指令和数据开始工作了。
在现有技术中基于MCU开发一套独立运行的程序后,将程序通过软件和调试器编译下载到非易失性存储器中,然后复位MCU芯片,执行用户编写的程序。如果用户的程序不太稳定,需要不同的版本来不停地调试参数时,就会变得过程重复繁琐,不停的编译、下载以及复位执行程序,然后观察调试的结果。并且当用户需要根据不同的环境,执行完全不同的几段程序时,就需要单独编译下载每段程序到MCU才能完成,这样程序的运行过程将会较为繁琐,且效率较低。
发明内容
本发明提供一种微控制芯片上的程序运行方法、装置及存储介质,可以将多个同时开发的程序下载到微控制芯片上的非易失性存储器中,然后对程序进行调试以及运行,从而提升微控制芯片上程序开发运行的效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种微控制芯片上的程序运行方法,其特征在于,所述方法包括:
将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至所述非易失性存储器中的至少一个存储区域;
获取下载应用程序的存储区域所对应的偏移地址;
获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证;
若验证通过,则根据所述偏移地址进行地址转换,以得到程序访问地址,并根据所述程序访问地址运行应用程序。
一种微控制芯片上的程序运行装置,其特征在于,包括:
划分单元,用于将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至所述非易失性存储器中的至少一个存储区域;
获取单元,用于获取下载应用程序的存储区域所对应的偏移地址;
验证单元,用于获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证;
运行单元,用于当所述验证单元验证通过时,根据所述偏移地址进行地址转换,以得到程序访问地址,并根据所述程序访问地址运行应用程序。
一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述微控制芯片上的程序运行方法中的步骤。
本申请提供的实施例可以将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域,获取下载应用程序的存储区域所对应的偏移地址,获取总线访问信号,并根据偏移地址对总线访问信号进行验证,若验证通过,则根据偏移地址进行地址转换,以得到程序访问地址,并根据程序访问地址运行应用程序。本申请实施例可以将微控制芯片上的非易失性存储器划分为多个存储区域,然后将多个程序下载这些存储区域中,芯片上电后,根据非易失性存储器选项字节,选择不同的程序进行调试以及运行,从而提升微控制芯片上程序开发运行的效率,缩短程序开发周期。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的微控制芯片上的程序运行方法的一种流程示意图;
图2是本发明实施例提供的微控制芯片上的闪存option字节区存放示意图;
图3是本发明实施例提供的微控制芯片上的程序运行方法的另一流程示意图;
图4为本发明实施例提供的微控制芯片上的程序运行装置的结构示意图;
图5为本发明实施例提供的微控制芯片上的程序运行装置的另一种结构示意图;
图6是本发明实施例提供的终端装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例提供一种微控制芯片上的程序运行方法,该微控制芯片上的程序运行方法的执行主体可以是本发明实施例提供的微控制芯片上的程序运行装置,或者集成了该微控制芯片上的程序运行装置的服务器,其中该微控制芯片上的程序运行装置可以采用硬件或者软件的方式实现。
在本实施例中,将从微控制芯片上的程序运行装置的角度进行描述,该微控制芯片上的程序运行装置具体可以集成在终端装置中,终端装置为在具备储存单元并能够运行应用程序的终端装置。
一种微控制芯片上的程序运行方法,其特征在于,所述方法包括:
将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至所述非易失性存储器中的至少一个存储区域;
获取下载应用程序的存储区域所对应的偏移地址;
获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证;
若验证通过,则根据所述偏移地址进行地址转换,以得到程序访问地址,并根据所述程序访问地址运行应用程序。
在描述本发明的技术方案之前,先对相关的技术术语进行简单解释:
MCU:微控制芯片,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
非易失性存储器:是指当电流关掉后,所存储的资料不会消失的存储器。
虚拟地址:CPU CORE发出来的读取程序数据的地址。
物理地址:访问外设时的访问地址。
地址映射:将虚拟地址转换成物理地址的方法。
Flash:闪存,一种非易失性存储器,通过特定的程序可以修改里面的数据。
Flash option字节:闪存选项字节,存放在Flash特殊位置段的字节。
请参阅图1,图1是本发明实施例提供的微控制芯片上的程序运行方法的一种流程示意图。该微控制芯片上的程序运行方法包括:
步骤101,将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域。
在一实施例中,在微控制芯片MCU的内部设计有一个数字电路模块,可以将MCU上的非易失性存储器分割为多个相互独立的区间,也即将闪存划分为多个存储区域,其中上述多个存储区域的大小可以相同也可以不同,比如可以将该非易失性存储平均划分为N个存储区域,其中N为大于等于1的正整数。
进一步的,在对非易失性存储器进行划分时,可以根据物理地址的大小来进行划分。举例来说,若需要将该非易失性存储器划分为三个存储区域,分别为第一存储区域、第二存储区域以及第三存储区域,则可以将第一存储区域的物理地址设为0,第二存储区域的物理地址设为1到X,第三存储区域的物理地址设为X+1到Y。
在一实施例中,在将非易失性存储器划分为多个存储区域之后,便可以进一步下载至少一个应用程序分别到上述多个存储区域。需要说明的是,在对非易失性存储器进行划分时,可以根据用户指令来设定每个存储区域的大小,比如用户可以根据需要下载的应用程序的容量来设定划分存储区域的大小,以存储对应需要下载的应用程序,本申请对此不做进一步限定。
步骤102,在下载应用程序的存储区域中获取偏移地址。
需要说明的是,在将非易失性存储器划分为多个存储区域时,上述每一个存储区域都有一个对应的偏移地址,偏移地址是计算机里的内存分段后,在段内某一地址相对于段首地址(段地址)的偏移量。偏移地址也成为偏移量,由于8086/8088CPU内部的算术逻辑单元只能进行16位的运算,而8086/8088有20条地址线,直接寻址能力1MB。因此,8086/8088所使用的20位物理地址,是由相应段地址加上偏移地址组成的。
在本申请实施例中,上述每个存储区域对应的偏移地址都存放在非易失性存储器的预设字节中。作为一种较优的实施例,上述预设字节可以为闪存的option字节,因此便可以从该option字节中获取下载应用程序的存储区域所对应的偏移地址。在其他实施例中,上述预设字节也可以为option字节之外的其他字节。
进一步的,在上述闪存的option字节当中还可以存储偏移地址对应的安全位和有效位。因此在获取到上述存储区域所对应的偏移地址之后,还可以进一步获取相应的有效位信息和安全位信息。其中,上述有效位信息和安全位信息可以结合偏移地址对后续获取到的总线访问信号进行验证。也即所述获取下载应用程序的存储区域所对应的偏移地址的步骤,可以包括:
在所述非易失性存储器的预设字节当中,提取所述下载应用程序的存储区域所对应的偏移地址;
获取与所述偏移地址对应的有效位信息和安全位信息。
其中,上述偏移地址表示在应用程序读取时相对于CPU CORE的逻辑地址的偏移量,安全位信息可以用于存放主机ID及特权模式是否为开启状态等信息,有效位可以用于指示当前option wn是否有效,其中闪存option字节区存放的option word也即option w1、option w2、option w3……option wn等请参阅图2。在该实施例中,闪存option字节里的option w1的值可以由芯片的生产商设定好,也可以由用户自己程序在特权模式下改动。option w1主要是指定用户默认的启动偏移地址,通常把一块闪存物理地址映射到CPUCORE启动时的逻辑地址。进一步的,option w1到option wn也可以由用户程序自己在特权模式下进行修改。比如在闪存中存放了3个应用程序,option w1对应应用程序1的偏移地址,option w2对应应用程序2的偏移地址,以此类推,用户可以同时指定该option word的安全位以及有效位。
步骤103,获取总线访问信号,并根据偏移地址对总线访问信号进行验证。
在一实施例中,在获取到总线访问信号后,需要进一步对该总线访问信号的安全性以及有效性进行验证,若该总线访问是非安全或者无效访问,就可以保存访问状态,返回错误信息给CPU CORE或者总线主机,若该总线访问是安全有效的访问,则可以继续执行后续步骤以运行应用程序。
其中,上述总线可以为AHB(Advanced High Performance Bus,高级高性能总线),AHB总线由AHB总线主机(Master)、AHB总线从机(Slave)和基础设施(Infrastructure)构成。Infrastructure比如由仲裁器、数据多路选择器、地址控制多路选择器、译码器构成。其中基本AHB信号以及对应的位宽、来源以及描述如下表所示:
在本实施例中的AHB信号可以为HTRANS,HMASTER,HPROT等信号,在确定偏移地址以及安全位信息有效后便可以从该信号中提取安全信息进行比较,若比较成功则确定总线访问信号验证通过。
步骤104,若验证通过,则根据偏移地址进行地址转换,以得到程序访问地址,并根据程序访问地址运行应用程序。
在一实施例中,若确定总线访问为安全有效访问,则可以对MCU内CORE发出的逻辑地址进行地址重映射转换。然后option字节中指定的偏移地址被成功映射后,将作为程序访问的首地址也即程序访问地址,从而对应用程序进行运行。在其他实施例中应用程序还可以修改option字节,实现当前应用程序执行完成后,MCU复位执行下一段不同的应用程序。具体来说,在MCU复位后,可以根据闪存option字节中设置的偏移地址,从而实现对闪存中独立存放的几段应用程序的运行。
举例来说,比如用户在开发应用程序的时候,分别基于MCU开发了3段独立运行的应用程序,然后都基于基地址0编译了应用程序,得到了3段镜像hex,大小都不超过256KB。在下载时候,就可以将第1、2、3段应用程序(程序1,程序2,程序3)分别下载到0x0000_0000,0x0004_0000,0x0008_0000对应的程序区间,需要说明的是,总的闪存容量大于3段镜像hex之和。下载之后,用户可以通过工具修改闪存option字节区option w1、option w2、optionw3的值。如果用户单独运行第一段,则只需要修改option w1,将应用程序下载偏移地址写入偏移地址,这里假设偏移地址以64KB为边界,将0x0000写入option w1,安全位可以设置为当前core特权模式访问(假如值为’b0011),有效位设置为有效(’b1)。写入option字节后,复位MCU芯片,MCU芯片就会执行应用程序1。当用户想切换到应用程序2时,同样,通过工具修改option w2,将对应的偏移地址0x0004写入到option w2的偏移地址位,安全位设置为core 1特权模式(’b0011),有效位设置为有效(’b1),同时将option w1有效位设置为无效(’b0)即可实现。
再比如,用户在基于MCU开发了3段独立运行的应用程序后,想要先运行应用程序1,再运行应用程序2,再运行应用程序3,然后又回到应用程序1。那么此时就可以在应用程序1开始运行时将option w1设置为无效,应用程序2的option w2偏移地址设为0x0004,安全位’b0011,有效位设置为有效’b1;同理在应用程序2开始运行时,把应用程序1的optionw1,应用程序2的option w2有效位设置为无效,应用程序3的option w3偏移地址设置为0x0008,安全位为’0011,有效位设置为有效’b1;在应用程序3开始运行时把option w3有效位设置无效,应用程序1的option w1偏移地址设置为0x0000,安全位设置为’b0011,有效位设置为有效。重新编译应用程序1、2、3,分别下载到0x0000_0000,0x0004_0000,0x0008_0000。复位MCU芯片后,执行应用程序1,再次复位后执行应用程序2,以此类推,一直重复执行这3段应用程序。
因此,通过上述实施例便可以开发不同的应用程序,编译时也不需要考虑应用程序的基地址,下载时将不同程序下载到不同偏移地址,修改对应的option字节即可。可以选择不同的应用程序启动执行,也可以在不同应用程序间互相切换。
由上可知,本申请实施例提供的微控制芯片上的程序运行方法可以将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域,获取下载应用程序的存储区域所对应的偏移地址,获取总线访问信号,并根据偏移地址对总线访问信号进行验证,若验证通过,则根据偏移地址进行地址转换,以得到程序访问地址,并根据程序访问地址运行应用程序。本申请实施例可以将微控制芯片上的非易失性存储器划分为多个存储区域,然后将多个程序下载这些存储区域中,上电后,根据非易失性存储器的选项字节,选择不同程序进行调试以及运行,从而提升微控制芯片上程序开发运行的效率。
根据上一实施例中所描述的微控制芯片上的程序运行方法,以下将举例作进一步详细说明。
在本实施例中,将以该微控制芯片上的程序运行装置具体集成在终端装置中为例进行说明。
请参阅图3,图3为本发明实施例提供的微控制芯片上的程序运行方法的另一流程示意图。该方法流程可以包括:
步骤201,将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域。
在一实施例中,在微控制芯片MCU的内部将非易失性存储器分割为多个相互独立的区间,也即将flash闪存划分为多个存储区域。具体可以在对非易失性存储器进行划分时,根据物理地址的大小来进行划分。
步骤202,在非易失性存储器的预设字节当中,提取下载应用程序的存储区域所对应的偏移地址,以及与偏移地址对应的有效位信息和安全位信息。
具体的,在将闪存划分为多个存储区域时,上述每一个存储区域都有一个对应的偏移地址,以及与该偏移地址相对应的有效位信息和安全位信息。存放在闪存option字节中。在系统上电完成后,便可以从闪存option字节自动加载读取偏移地址以及其相关的有效位和安全位,存放到其内部。
其中,上述偏移地址表示在应用程序读取时相对于CPU CORE的逻辑地址的偏移量,安全位信息可以用于存放主机ID及特权模式是否为开启状态等信息,有效位可以用于指示当前option wn是否有效。在读取到上述闪存option字节数据后,可以存放在内部数据暂存器中。
步骤203,根据有效位信息判断当前字节区中的偏移地址和安全位信息是否有效,若是,则执行步骤204。
在一实施例中,通过上述option wn的有效位,确定当前option字节区的option w中的偏移地址和安全位是否有效,若有效则继续执行下一步骤判断其安全性。若无效则可以生成中断信号提示主机并结束当前流程。
在另一实施例中,若有多个有效位,则还需要进一步确定这多个有效位的优先级,比如可以根据字节数据确定多个有效位信息的优先级。举例来说,这里确定优先级的原则是option wn中的n越小,其优先级就越高。只有当高优先级的有效位无效时,才会去检查低一级的有效位,如果所有的有效位都被设置为无效,则自动把option w1的有效位设置为有效。也即根据有效位信息判断当前字节区中的偏移地址和安全位信息是否有效的步骤,可以包括:
按照优先级依次判断有效位信息当前字节区中的偏移地址和安全位信息是否有效。
步骤204,获取总线访问信号,提取总线访问信号中的安全信息。
步骤205,将安全位信息与总线访问信号中的安全信息进行匹配。
在一实施例中,通过总线访问信号中的安全信息来确定该总线访问是否为安全有效访问,若总线访问是非安全或者无效访问,则保存当前访问状态,并返回错误信息给CORE或者总线主机。若总线访问为安全有效访问,则可以进行后续步骤以进行偏移地址的映射。
步骤206,若匹配成功,则确定总线访问信号验证通过并生成提示信息。
在匹配成功后即可确定总线访问为安全有效访问。举例来说,
在选择出option w1、option w2…option wn的有效位后,进一步获取总线访问信号,如AHB总线,HTRANS,HMASTER,HPROT等信号,提取出当前访问闪存的主机类型以及是否特权模式等安全信息,与上述安全位进行比较,以判断是否为安全位设定的主机,以及是否为特权模式下操作。比较成功的访问就会发出安全有效信号也即提示信息,否则就会发出特殊的中断信号到总线或者对应的主机。
步骤207,根据提示信息获取偏移地址以及总线访问信号中的逻辑地址,将逻辑地址重新映射到偏移地址,以得到程序访问地址,并根据程序访问地址运行应用程序。
在一实施例中,需要先选择偏移地址,比如根据上述安全有效信号选择加载的option w1、option w2…option wn中的偏移地址。偏移地址选好后,与现在CORE或者总线发出的逻辑地址在地址加法器中完成地址的修改,修改后的地址包含原总线地址以及相对偏移地址。最终以得到程序访问地址,从而根据程序访问地址运行应用程序。
因此在本实施例中能够实现MCU产品支持多镜像启动,分别开发不同的程序,编译不需要考虑程序的基地址,下载是将不同应用程序下载到不同偏移地址,修改对应的option字节即可,通过修改option字节可以选择不同应用程序启动执行,也可以在不同应用程序间互相切换,并且安全位保证只有经过认可的安全核以及特权模式才可以发起对应程序的操作。
比如用户基于MCU开发了3段应用程序,MCU开发商将第一块应用程序存放偏移地址放入地址偏移,安全位设置为core 1特权模式访问,有效位设置为有效。所以,MCU芯片上电后,默认从应用程序1启动。用户可在应用程序1(特权模式下运行)中,通过option字节设置其他应用程序区块的偏移地址及其安全有效属性,偏移地址可以是16KB,32KB,64KB,128KB为边界。
进一步的,还可以同时编辑几段应用程序并编译,编译时不考虑应用程序的基地址,下载时将不同的应用程序镜像下载到不同的程序区偏移地址。然后将上述程序区偏移地址通过工具下载到不同的option字节中option w1、option w2…等的偏移地址,同时设置对应的安全位与有效位,就可以实现不同的应用程序运行。另外,上述偏移地址也可以通过程序下载,如应用程序1中,修改option w1、option w2…等的偏移地址以及安全有效位,就可以实现应用程序1运行后,其他应用程序(应用程序2、应用程序3)的运行。因此该实施例中在根据程序访问地址运行应用程序之后,上述方法还包括:
接收针对非易失性存储器的预设字节中的偏移地址的修改信息;
根据修改信息再次确定新的程序访问地址,并运行新的程序访问地址对应的应用程序。
由上可知,本申请实施例提供的微控制芯片上的程序运行方法可以将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域。在非易失性存储器的预设字节当中,提取下载应用程序的存储区域所对应的偏移地址,以及与偏移地址对应的有效位信息和安全位信息。根据有效位信息判断当前字节区中的偏移地址和安全位信息是否有效,若是,则获取总线访问信号,提取总线访问信号中的安全信息。将安全位信息与总线访问信号中的安全信息进行匹配。若匹配成功,则确定总线访问信号验证通过并生成提示信息。根据提示信息获取偏移地址以及总线访问信号中的逻辑地址,将逻辑地址重新映射到偏移地址,以得到程序访问地址,并根据程序访问地址运行应用程序。本申请实施例可以将微控制芯片上的非易失性存储器划分为多个存储区域,然后将多个程序下载这些存储区域中,上电后,根据非易失性存储器的选项字节,选择不同程序进行调试以及运行,从而提升微控制芯片上程序开发运行的效率。
为便于更好的实施本发明实施例提供的微控制芯片上的程序运行方法,本发明实施例还提供一种基于上述微控制芯片上的程序运行方法的装置。其中名词的含义与上述微控制芯片上的程序运行方法中相同,具体实现细节可以参考方法实施例中的说明。
在本实施例中,将从微控制芯片上的程序运行装置的角度进行描述,该微控制芯片上的程序运行装置具体可以集成由多个终端装置组成的系统中,每一终端装置为在具备储存单元并安装有显示屏而具有视频播放功能的终端装置。
请参阅图4,图4为本发明实施例提供的微控制芯片上的程序运行装置300的一种结构示意图。其中,上述微控制芯片上的程序运行装置300可以包括:
划分单元301,用于将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至所述非易失性存储器中的至少一个存储区域;
获取单元302,用于获取下载应用程序的存储区域所对应的偏移地址;
验证单元303,用于获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证;
运行单元304,用于当所述验证单元303验证通过时,根据所述偏移地址进行地址转换,以得到程序访问地址,并根据所述程序访问地址运行应用程序。
在一实施例中,请参阅图5,图5为本发明实施例提供的微控制芯片上的程序运行装置300的另一种结构示意图。其中,上述获取单元302可以包括:
第一提取子单元3021,用于在所述非易失性存储器的预设字节当中,提取所述下载应用程序的存储区域所对应的偏移地址;
获取子单元3022,用于获取与所述偏移地址对应的有效位信息;
判断子单元3023,用于根据所述有效位信息判断当前字节区中的所述偏移地址是否有效。
上述验证单元303,具体用于当所述判断子单元3023判断为是时,获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证。
在一实施例中,获取子单元3022,还用于获取与所述偏移地址对应的安全位信息;
进一步的,该验证单元303可以包括:
第二提取子单元3031,用于提取所述总线访问信号中的安全信息;
匹配子单元3032,用于将所述安全位信息与所述总线访问信号中的安全信息进行匹配,若匹配成功,则确定所述总线访问信号验证通过并生成提示信息。
由上述可知,本发明实施例可以将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域,获取下载应用程序的存储区域所对应的偏移地址,获取总线访问信号,并根据偏移地址对总线访问信号进行验证,若验证通过,则根据偏移地址进行地址转换,以得到程序访问地址,并根据程序访问地址运行应用程序。本申请实施例可以将微控制芯片上的非易失性存储器划分为多个存储区域,然后将多个程序下载这些存储区域中,上电后,根据非易失性存储器的选项字节,选择不同程序进行调试以及运行,从而提升微控制芯片上程序开发运行的效率。
本发明实施例还提供一种终端装置600,如图6所示,该终端装置600可以包括射频(RF,Radio Frequency)电路601、包括有一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(WiFi,WirelessFidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图6中示出的终端装置600结构并不构成对终端装置600的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路601可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及信息处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、目标数据播放功能等)等;存储数据区可存储根据终端装置600的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。
输入单元603可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元603可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器608,并能接收处理器608发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元603还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元604可用于显示由用户输入的信息或提供给用户的信息以及终端装置600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图6中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端装置600还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端装置600移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端装置600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路606、扬声器,传声器可提供用户与终端装置600之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如另一终端装置600,或者将音频数据输出至存储器602以便进一步处理。音频电路606还可能包括耳塞插孔,以提供外设耳机与终端装置600的通信。
WiFi属于短距离无线传输技术,终端装置600通过WiFi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块607,但是可以理解的是,其并不属于终端装置600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器608是终端装置600的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行终端装置600的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器608可包括一个或多个处理核心;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。
终端装置600还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源609还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源数据指示器等任意组件。
尽管未示出,终端装置600还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端装置600中的处理器608会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器608来运行存储在存储器602中的应用程序,从而实现各种功能:
将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至所述非易失性存储器中的至少一个存储区域;
获取下载应用程序的存储区域所对应的偏移地址;
获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证;
若验证通过,则根据所述偏移地址进行地址转换,以得到程序访问地址,并根据所述程序访问地址运行应用程序。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对微控制芯片上的程序运行方法的详细描述,此处不再赘述。
由上可知,本发明实施例的终端装置600可以将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至非易失性存储器中的至少一个存储区域,获取下载应用程序的存储区域所对应的偏移地址,获取总线访问信号,并根据偏移地址对总线访问信号进行验证,若验证通过,则根据偏移地址进行地址转换,以得到程序访问地址,并根据程序访问地址运行应用程序。本申请实施例可以将微控制芯片上的非易失性存储器划分为多个存储区域,然后将多个程序下载这些存储区域中,再对程序进行调试以及运行,从而提升微控制芯片上程序运行的效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其上存储有多条指令,所述指令适于处理器进行加载,以执行上述微控制芯片上的程序运行方法中的步骤。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种微控制芯片上的程序运行方法中的步骤,因此,可以实现本发明实施例所提供的任一种微控制芯片上的程序运行方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的微控制芯片上的程序运行方法、装置及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种微控制芯片上的程序运行方法,其特征在于,所述方法包括:
将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至所述非易失性存储器中的至少一个存储区域;
获取下载应用程序的存储区域所对应的偏移地址;
获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证;
若验证通过,则根据所述偏移地址进行地址转换,以得到程序访问地址,并根据所述程序访问地址运行应用程序。
2.根据权利要求1所述的微控制芯片上的程序运行方法,其特征在于,所述获取下载应用程序的存储区域所对应的偏移地址的步骤,包括:
在所述非易失性存储器的预设字节当中,提取所述下载应用程序的存储区域所对应的偏移地址。
3.根据权利要求1或2所述的微控制芯片上的程序运行方法,其特征在于,在获取下载应用程序的存储区域所对应的偏移地址之后,所述方法还包括:
获取与所述偏移地址对应的有效位信息;
根据所述有效位信息判断当前字节区中的所述偏移地址是否有效;
若有效,则执行获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证的步骤。
4.根据权利要求1或2所述的微控制芯片上的程序运行方法,其特征在于,在获取下载应用程序的存储区域所对应的偏移地址之后,所述方法还包括:
获取与所述偏移地址对应的安全位信息;
所述根据所述偏移地址对所述总线访问信号进行验证的步骤,包括:
提取所述总线访问信号中的安全信息;
将所述安全位信息与所述总线访问信号中的安全信息进行匹配;
若匹配成功,则确定所述总线访问信号验证通过并生成提示信息。
5.根据权利要求3所述的微控制芯片上的程序运行方法,其特征在于,所述方法还包括:
若所述有效位信息为多个,则根据存放有效位的字节号数由低到高确定所述多个有效位信息的优先级;
所述根据所述有效位信息判断当前字节区中的所述偏移地址是否有效的步骤,包括:
按照所述优先级依次判断所述有效位信息当前字节区中的所述偏移地址是否有效。
6.根据权利要求4所述的微控制芯片上的程序运行方法,其特征在于,所述根据所述偏移地址进行地址转换,以得到程序访问地址的步骤,包括:
根据所述提示信息获取所述偏移地址以及所述总线访问信号中的逻辑地址;
将所述逻辑地址重新映射到所述偏移地址,以得到程序访问地址。
7.根据权利要求2所述的微控制芯片上的程序运行方法,其特征在于,在根据所述程序访问地址运行应用程序之后,所述方法还包括:
接收针对所述非易失性存储器的预设字节中的偏移地址的修改信息;
根据所述修改信息再次确定新的程序访问地址,并运行所述新的程序访问地址对应的应用程序。
8.一种微控制芯片上的程序运行装置,其特征在于,包括:
划分单元,用于将非易失性存储器划分为多个存储区域,并下载至少一个应用程序至所述非易失性存储器中的至少一个存储区域;
获取单元,用于获取下载应用程序的存储区域所对应的偏移地址;
验证单元,用于获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证;
运行单元,用于当所述验证单元验证通过时,根据所述偏移地址进行地址转换,以得到程序访问地址,并根据所述程序访问地址运行应用程序。
9.根据权利要求8所述的微控制芯片上的程序运行装置,其特征在于,所述获取单元包括:
第一提取子单元,用于在所述非易失性存储器的预设字节当中,提取所述下载应用程序的存储区域所对应的偏移地址;
获取子单元,用于获取与所述偏移地址对应的有效位信息;
判断子单元,用于根据所述有效位信息判断当前字节区中的所述偏移地址是否有效;
所述验证单元,具体用于当所述判断子单元判断为是时,获取总线访问信号,并根据所述偏移地址对所述总线访问信号进行验证。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的微控制芯片上的程序运行方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111011858.4A CN113741971A (zh) | 2021-08-31 | 2021-08-31 | 微控制芯片上的程序运行方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111011858.4A CN113741971A (zh) | 2021-08-31 | 2021-08-31 | 微控制芯片上的程序运行方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113741971A true CN113741971A (zh) | 2021-12-03 |
Family
ID=78734233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111011858.4A Pending CN113741971A (zh) | 2021-08-31 | 2021-08-31 | 微控制芯片上的程序运行方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113741971A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115437672A (zh) * | 2022-09-15 | 2022-12-06 | 深圳思凌科技术有限公司 | 基于soc芯片的用户程序更新方法、装置、设备及存储介质 |
CN116578352A (zh) * | 2023-07-11 | 2023-08-11 | 沐曦集成电路(上海)有限公司 | 芯片初始化系统 |
-
2021
- 2021-08-31 CN CN202111011858.4A patent/CN113741971A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115437672A (zh) * | 2022-09-15 | 2022-12-06 | 深圳思凌科技术有限公司 | 基于soc芯片的用户程序更新方法、装置、设备及存储介质 |
CN116578352A (zh) * | 2023-07-11 | 2023-08-11 | 沐曦集成电路(上海)有限公司 | 芯片初始化系统 |
CN116578352B (zh) * | 2023-07-11 | 2023-09-22 | 沐曦集成电路(上海)有限公司 | 芯片初始化系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3402160B1 (en) | Service processing method and apparatus | |
US9317299B2 (en) | Method and device for cold starting android mobile terminal | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
US10628271B2 (en) | Method for information processing and related device | |
CN110046497B (zh) | 一种函数挂钩实现方法、装置和存储介质 | |
CN110457894B (zh) | root权限的分配方法、装置、存储介质及终端设备 | |
US10317931B2 (en) | Method for managing multi-core processor, and apparatus | |
CN113741971A (zh) | 微控制芯片上的程序运行方法、装置及存储介质 | |
WO2014173211A1 (en) | Code coverage testing method, device and system | |
CN114185491B (zh) | 一种分区文件的下载方法、装置、存储介质及计算机设备 | |
CN108090345B (zh) | linux系统外部命令执行方法及装置 | |
CN108984374B (zh) | 一种数据库性能的测试方法和系统 | |
CN110765085A (zh) | 日志信息写入方法、系统、存储介质及移动终端 | |
CN109145598A (zh) | 脚本文件的病毒检测方法、装置、终端及存储介质 | |
CN117150478A (zh) | 一种基于片上系统的信任根、芯片以及数据校验方法 | |
JP6641484B2 (ja) | シナリオに従いグラフィック処理解像度を変更する方法及びポータブル電子装置 | |
CN111026457A (zh) | 一种硬件配置方法、装置、存储介质及终端设备 | |
CN111182153B (zh) | 系统语言的设置方法、装置、存储介质及移动终端 | |
CN116737601B (zh) | 将外设寄存器扩展为系统ram的方法、装置及存储介质 | |
CN116028099A (zh) | 一种安装包生成的方法及相关装置、设备和存储介质 | |
CN107844382B (zh) | 卡屏检测方法、移动终端及计算机可读存储介质 | |
CN112004240A (zh) | 射频参数配置方法、装置、存储介质及移动终端 | |
CN108280798B (zh) | 一种浏览器内核渲染显示的方法和装置 | |
CN110716908A (zh) | 日志信息写入方法、系统、存储介质及移动终端 | |
CN105988801B (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 |