一种微控制器启动方法、装置、设备及存储介质
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及微控制器设计领域,特别涉及一种微控制器启动方法、装置、设备及存储介质。
背景技术
传统的微控制器一般包含有bootrom,bootrom无盘启动ROM(Read-Only Memory,只读存储器)接口,通过远程启动服务构造无盘工作站。微控制器设计厂商在流片阶段将bootrom相关代码固化到bootrom中,微控制器需要执行bootrom里面的代码才能完成系统的引导启动。但是这会提高芯片的成本,且会存在因为bootrom固化数据异常导致的流片失败风险。因此,如何实现微控制器不含有常规的bootrom即可正常启动是目前亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种微控制器启动方法、装置、设备及存储介质,能够实现微控制器不含有常规的bootrom即可正常启动,降低了芯片成本,同时也降低了因为bootrom固化数据异常导致的流片失败风险。其具体方案如下:
第一方面,本申请公开了一种微控制器启动方法,包括:
在系统上电启动后,检测程序有效标志位是否有效;
若所述程序有效标志位无效,则通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤;
若所述程序有效标志位有效,则将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,并将所述微控制器进行复位,以便复位后微控制器从所述随机存取存储器中获取相应的指令数据,并执行所述指令数据,以实现所述微控制器的正常启动运行。
可选的,所述检测程序有效标志位是否有效,包括:
判断所述Flash用户程序存储单元中是否存在有效的所述目标用户应用程序;
基于判断结果确定所述程序有效标志位是否有效。
可选的,所述基于判断结果确定所述程序有效标志位是否有效,包括:
若所述Flash用户程序存储单元中存在有效的所述目标用户应用程序,则判定所述程序有效标志位有效;
若所述Flash用户程序存储单元中不存在有效的所述目标用户应用程序,则判定所述程序有效标志位无效。
可选的,所述检测程序有效标志位是否有效的过程中,还包括:
通过预设处理器单元对所述随机存取存储器进行取指执行操作;其中,当所述预设处理器单元从所述随机存取存储器中获取的当前指令数据为无效指令数据时,所述预设处理器单元进入异常模式;
并且,所述通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,包括:
通过联合测试行为组织控制所述预设处理器单元将目标用户应用程序写入Flash用户程序存储单元。
可选的,所述通过联合测试行为组织控制所述预设处理器单元将目标用户应用程序写入Flash用户程序存储单元,包括:
通过联合测试行为组织控制所述预设处理器单元并基于预设Flash写入算法以及总线矩阵单元将所述目标用户应用程序写入所述Flash用户程序存储单元。
可选的,所述将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,还包括:
利用数据选择器控制Flash的读数据端口与所述随机存取存储器的写数据端口之间的通道选通。
可选的,所述方法还包括:
若需要对所述目标用户应用程序进行升级,则通过所述联合测试行为组织将新的用户应用程序写入所述Flash用户程序存储单元,以便利用所述新的用户应用程序覆盖所述目标用户应用程序。
第二方面,本申请公开了一种微控制器启动装置,包括:
标志位判断模块,用于在系统上电启动后,检测程序有效标志位是否有效;
跳转模块,用于若所述程序有效标志位无效,则通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,并在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤;
微控制器启动模块,用于若所述程序有效标志位有效,则将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,并将所述微控制器进行复位,以便复位后微控制器从所述随机存取存储器中获取相应的指令数据,并执行所述指令数据,以实现所述微控制器的正常启动运行。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的所述的微控制器启动方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的所述的微控制器启动方法的步骤。
本申请在启动微控制器时,首先在系统上电启动后,检测程序有效标志位是否有效;若所述程序有效标志位无效,则通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤;若所述程序有效标志位有效,则将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,并将所述微控制器进行复位,以便复位后微控制器从所述随机存取存储器中获取相应的指令数据,并执行所述指令数据,以实现所述微控制器的正常启动运行。可见,本申请在启动微控制器时,对程序有效标志位是否有效进行判断,若标志位无效,则等待JTAG写入用户程序至Flash,写入完成,处理器重启即可实现正常启动运行;若有效,硬件自动搬运Flash用户程序存储单元的用户应用程序至RAM,搬运完毕后复位处理器,处理器开始从RAM取指执行,完成程序的正常启动。这样一来,便可以实现微控制器不含有常规的bootrom即可正常启动,降低了芯片成本,同时也降低了因为bootrom固化数据异常导致的流片失败风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种微控制器启动方法流程图;
图2为本申请公开的一种微控制器启动方法示意图;
图3为本申请公开的一种具体的微控制器启动方法流程图;
图4为本申请公开的一种微控制器启动装置结构示意图;
图5为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
传统的微控制器一般包含有bootrom,微控制器设计厂商在流片阶段将bootrom相关代码固化到bootrom中,微控制器需要执行bootrom里面的代码才能完成系统的引导启动。但是这会提高芯片的成本,且会存在因为bootrom固化数据异常导致的流片失败风险。为了解决上述技术问题,本申请公开了一种微控制器启动方法,能够实现微控制器不含有常规的bootrom即可正常启动。
参见图1所示,本发明实施例公开了一种微控制器启动方法,包括:
步骤S11、在系统上电启动后,检测程序有效标志位是否有效。
本实施例中,在系统上电后,微控制器硬件会自动检测程序有效标志位是否有效。就是判断所述Flash用户程序存储单元中是否存在有效的所述目标用户应用程序;即Flash中是否已存在有效的用户应用程序。基于判断结果确定所述程序有效标志位是否有效。基于判断结果确定所述程序有效标志位是否有效,包括:若所述Flash用户程序存储单元中存在有效的所述目标用户应用程序,则判定所述程序有效标志位有效;若所述Flash用户程序存储单元中不存在有效的所述目标用户应用程序,则判定所述程序有效标志位无效。所述检测程序有效标志位是否有效的过程中,还包括:通过预设处理器单元对所述随机存取存储器进行取指执行操作;其中,当所述预设处理器单元从所述随机存取存储器中获取的当前指令数据为无效指令数据时,所述预设处理器单元进入异常模式;并且,所述通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,包括:通过联合测试行为组织控制所述预设处理器单元将目标用户应用程序写入Flash用户程序存储单元。也就是说在检测程序有效标志位是否有效的同时,处理器会从随机存取存储器中取指执行,因为取到的是无效指令数据,此时处理器会进入一种异常模式。流片结束后,该标志位是无效的。其中,流片是指像流水线一样通过一系列工艺步骤制造芯片。
步骤S12、若所述程序有效标志位无效,则通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤。
本实施例中,硬件检测到程序有效标志位无效,则等待JTAG(Joint Test ActionGroup,联合测试工作组)向Flash中写入用户应用程序,处理器通过Flash写入算法经由总线矩阵单元将用户应用程序写入Flash中,写入完成程序有效标志位置位有效,重启微控制器。也就是需要通过联合测试行为组织控制所述预设处理器单元并基于预设Flash写入算法以及总线矩阵单元将所述目标用户应用程序写入所述Flash用户程序存储单元。如图2所示,在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤。需要指出的是,在设计印刷电路版时,当前最主要用在测试集成电路的副区块,而且也提供一个在嵌入式系统很有用的调试机制,提供一个在系统中方便的“后门”。当使用一些调试工具像电路内模拟器用JTAG当做信号传输的机制,使得程序员可以经由JTAG去读取集成在CPU(Central Processing Unit,中央处理器)上的调试模块。调试模块可以让程序员调试嵌入式系统中的软件。同时,由于在判断无效后,已经通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,因此Flash中已存在有效的用户应用程序,故在重新跳转至所述检测程序有效标志位是否有效的步骤后,一般情况下,此次的程序有效标志位已经为有效。
步骤S13、若所述程序有效标志位有效,则将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,并将所述微控制器进行复位,以便复位后微控制器从所述随机存取存储器中获取相应的指令数据,并执行所述指令数据,以实现所述微控制器的正常启动运行。
本实施例中,硬件检测到程序有效标志位有效,则硬件开始搬运Flash中的用户应用程序至随机存取存储器RAM(Random Access Memory,随机存取存储器)中。所述将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,还包括:利用数据选择器控制Flash的读数据端口与所述随机存取存储器的写数据端口之间的通道选通。也就是此时MUX(Multiplexer,多路选择器)单元控制Flash读数据端口至RAM写数据端口选通,搬运完毕后,微控制器并不能立即正常运行,因为步骤S11中处理器实际已处于一种异常模式,此时需要复位微控制器,复位后微控制器从RAM中重新取指执行,微控制器即可正常运行。
另外,若需要对所述目标用户应用程序进行升级,则通过所述联合测试行为组织将新的用户应用程序写入所述Flash用户程序存储单元,以便利用所述新的用户应用程序覆盖所述目标用户应用程序。因为JTAG对处理器有最高的优先级,新的用户应用程序会覆盖旧的用户应用程序。由此,通过上述步骤S11至步骤S13即可实现微控制器的无bootrom启动、烧写、升级。
由上可知,本申请在启动微控制器时,首先在系统上电启动后,检测程序有效标志位是否有效;若所述程序有效标志位无效,则通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤;若所述程序有效标志位有效,则将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,并将所述微控制器进行复位,以便复位后微控制器从所述随机存取存储器中获取相应的指令数据,并执行所述指令数据,以实现所述微控制器的正常启动运行。可见,本申请在启动微控制器时,对程序有效标志位是否有效进行判断,若标志位无效,则等待JTAG写入用户程序至Flash,写入完成,处理器重启即可实现正常启动运行;若有效,硬件自动搬运Flash用户程序存储单元的用户应用程序至RAM,搬运完毕后复位处理器,处理器开始从RAM取指执行,完成程序的正常启动。这样一来,便可以实现微控制器不含有常规的bootrom即可正常启动,降低了芯片成本,同时也降低了因为bootrom固化数据异常导致的流片失败风险。
参见图3所示,本发明实施例公开了一种具体的微控制器启动方法,包括:
本实施例中,在实现微控制器启动的方法中,具体的实现包括了处理器单元、总线矩阵单元、随机存取存储器(RAM)单元、JTAG调试单元、Flash用户程序存储单元、MUX单元、用户外设单元这些单元之间的相互作用,具体如下:
其中,RAM单元储存程序运行过程中的指令与数据。处理器单元通过总线矩阵单元实现与随机存取存储器单元、Flash用户程序存储单元、MUX单元、用户外设单元互联。Flash用户程序存储单元写数据端口连接总线矩阵单元,Flash读数据端口通过MUX单元连接RAM写数据端口,MUX单元实现处理器写RAM、Flash写RAM的数据选择。处理器单元与JTAG调试单元连接,JTAG调试单元对于处理器单元有最高的操作优先级,用户可通过上位机连接JTAG单元,JTAG单元可以控制处理器单元向Flash写入用户应用程序,写入完成,Flash中程序有效标志位置位。微控制器上电运行时,硬件检测程序有效标志位是否有效,若标志位无效,则等待JTAG写入用户程序至Flash,写入完成,处理器重启即可实现正常启动运行;若有效,硬件自动搬运Flash用户程序存储单元的用户应用程序至RAM,搬运完毕后复位处理器,处理器开始从RAM取指执行,完成程序的正常启动。若需对用户应用程序升级,只需通过JTAG向Flash写入新的用户应用程序即可,因为JTAG对处理器有最高的优先级,新的用户应用程序会覆盖旧的用户应用程序。
有上可知,本申请在启动微控制器时,对程序有效标志位是否有效进行判断,若标志位无效,则等待JTAG写入用户程序至Flash,写入完成,处理器重启即可实现正常启动运行;若有效,硬件自动搬运Flash用户程序存储单元的用户应用程序至RAM,搬运完毕后复位处理器,处理器开始从RAM取指执行,完成程序的正常启动。这样一来,便可以实现微控制器不含有常规的bootrom即可正常启动,降低了芯片成本,同时也降低了因为bootrom固化数据异常导致的流片失败风险。
参见图4所示,本发明实施例公开了一种微控制器启动装置,包括:
标志位判断模块11,用于在系统上电启动后,检测程序有效标志位是否有效;
跳转模块12,用于若所述程序有效标志位无效,则通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,并在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤;
微控制器启动模块13,用于若所述程序有效标志位有效,则将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,并将所述微控制器进行复位,以便复位后微控制器从所述随机存取存储器中获取相应的指令数据,并执行所述指令数据,以实现所述微控制器的正常启动运行。
由上可知,本申请在启动微控制器时,首先在系统上电启动后,检测程序有效标志位是否有效;若所述程序有效标志位无效,则通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,在写入成功后,重新启动微控制器,并重新跳转至所述检测程序有效标志位是否有效的步骤;若所述程序有效标志位有效,则将所述Flash用户程序存储单元中的所述目标用户应用程序写入至随机存取存储器中,并将所述微控制器进行复位,以便复位后微控制器从所述随机存取存储器中获取相应的指令数据,并执行所述指令数据,以实现所述微控制器的正常启动运行。可见,本申请在启动微控制器时,对程序有效标志位是否有效进行判断,若标志位无效,则等待JTAG写入用户程序至Flash,写入完成,处理器重启即可实现正常启动运行;若有效,硬件自动搬运Flash用户程序存储单元的用户应用程序至RAM,搬运完毕后复位处理器,处理器开始从RAM取指执行,完成程序的正常启动。这样一来,便可以实现微控制器不含有常规的bootrom即可正常启动,降低了芯片成本,同时也降低了因为bootrom固化数据异常导致的流片失败风险。
在一些具体的实施例中,所述标志位判断模块11,具体可以包括:
应用程序判断子模块,用于判断所述Flash用户程序存储单元中是否存在有效的所述目标用户应用程序;
标志位有效确定子模块,用于基于判断结果确定所述程序有效标志位是否有效。
在一些具体的实施例中,所述标志位有效确定子模块,具体可以包括:
第一判定单元,用于若所述Flash用户程序存储单元中存在有效的所述目标用户应用程序,则判定所述程序有效标志位有效;
第二判定单元,用于若所述Flash用户程序存储单元中不存在有效的所述目标用户应用程序,则判定所述程序有效标志位无效。
在一些具体的实施例中,所述标志位判断模块11,还可以包括:
取值执行单元,用于通过预设处理器单元对所述随机存取存储器进行取指执行操作;其中,当所述预设处理器单元从所述随机存取存储器中获取的当前指令数据为无效指令数据时,所述预设处理器单元进入异常模式;
并且,所述通过联合测试行为组织将目标用户应用程序写入Flash用户程序存储单元,包括:
通过联合测试行为组织控制所述预设处理器单元将目标用户应用程序写入Flash用户程序存储单元。
在一些具体的实施例中,所述跳转模块12,具体可以包括:
应用程序写入单元,用于通过联合测试行为组织控制所述预设处理器单元并基于预设Flash写入算法以及总线矩阵单元将所述目标用户应用程序写入所述Flash用户程序存储单元。
在一些具体的实施例中,所述微控制器启动模块13,还可以包括:
选通单元,用于利用数据选择器控制Flash的读数据端口与所述随机存取存储器的写数据端口之间的通道选通。
在一些具体的实施例中,所述装置,还可以包括:
新应用程序写入单元,用于若需要对所述目标用户应用程序进行升级,则通过所述联合测试行为组织将新的用户应用程序写入所述Flash用户程序存储单元,以便利用所述新的用户应用程序覆盖所述目标用户应用程序。
进一步的,本申请实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的微控制器启动方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的微控制器启动方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的微控制器启动方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 一种虚拟机启动方法、装置、存储介质和计算机设备质
- 一种后端存储设备的管理方法、装置、设备以及存储介质
- 一种数据存储方法及装置、一种计算设备及存储介质
- 一种数据存储方法及装置、一种计算设备及存储介质
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 一种基于多核微控制器的软件启动方法、装置、设备及存储介质
- 一种微控制器芯片启动控制方法、装置、芯片及存储介质