[发明专利]基于JTAG的SoC启动方法和装置在审
申请号: | 201911413691.7 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111176757A | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 王耀斌;曹杰 | 申请(专利权)人: | 盛科网络(苏州)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F15/78;G06F15/177;G06F9/455 |
代理公司: | 苏州三英知识产权代理有限公司 32412 | 代理人: | 潘时伟 |
地址: | 215000 江苏省苏州市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 jtag soc 启动 方法 装置 | ||
本发明提供了一种基于JTAG的SoC启动方法和装置,解决了现有技术中SoC启动时调试和定位问题比较困难、可靠性不高的问题。该方法包括基于JTAG启动建立SoC和仿真器之间的连接;通过仿真器的上位机软件,对SoC的DDR模块进行解复位后,进行配置和初始化,其中,SoC内部的其它模块处于复位状态;通过仿真器的上位机软件,将SoC的PC指针指向DDR地址;通过仿真器的上位机软件,将PC中SoC启动代码加载到DDR地址;释放SoC的CPU,以使SoC从DDR地址处执行SoC启动代码。
技术领域
本发明涉及嵌入式系统技术领域,具体涉及一种基于JTAG的SoC启动方法和装置。
背景技术
现有技术中,SoC通常是通过ROM结合外部存储介质的方式启动,启动过程通常分为两个阶段:
①第一阶段,将存储在SoC内部ROM中的启动代码,加载到SoC内部RAM中执行,该部分启动代码会执行一些硬件设备的初始化,比如对SoC内部控制器的解复位、DDR的初始化等;
②第二阶段,将存储在SoC外部存储介质中的启动代码,加载到DDR中执行,从而完整启动SoC,常见的外部存储介质有FLASH、eMMC和SD。
这样的启动方式存在的问题是,首先,由于一部分启动代码存储在SoC内部ROM中,一旦写入则不可修改,如果这部分启动代码存在问题,会影响整个SoC的正常启动,有一定风险;其次,启动过程中,可能会遇到SoC内部控制器或者DDR初始化失败的情况,而访问SoC内部寄存器、查看堆栈的手段有限,调试和定位问题比较困难。
因此,针对上述技术问题,有必要提供一种基于JTAG的SoC启动方法。
发明内容
有鉴于此,本发明的目的之一在于提供基于JTAG的SoC启动方法。
为了实现上述目的,本发明一实施例提供的技术方案如下:
一种基于JTAG的SoC启动方法,包括:
基于JTAG启动建立SoC和仿真器之间的连接;
通过所述仿真器的上位机软件,对所述SoC的DDR模块进行解复位后,进行配置和初始化,其中,所述SoC内部的其它模块处于复位状态;
通过所述仿真器的上位机软件,将所述SoC的PC指针指向DDR地址;
通过所述仿真器的上位机软件,将PC中SoC启动代码加载到所述DDR地址;
释放所述SoC的CPU,以使所述SoC从所述DDR地址处执行所述SoC启动代码。
一实施例中,通过仿真器的上位机软件,对所述SoC的DDR模块进行配置和初始化,具体包括:
利用仿真器的上位机软件,通过JTAG接口访问所述SOC中DDR模块的关联寄存器,并对所述DDR模块进行配置和初始化。
一实施例中,释放所述SoC的CPU,具体包括:
利用所述仿真器的上位机软件,通过所述SoC内部总线配置SoC系统管理寄存器,解除所述SoC的CPU的复位状态。
一实施例中,基于JTAG启动建立SoC和仿真器之间的连接,具体包括:
预设置SoC从JTAG启动;
设置JTAG时钟,并读取JTAG ID;
完成所述SoC的CPU设置;
建立所述SoC和仿真器之间的连接。
一实施例中,设置JTAG时钟,具体包括:
基于所述SoC,并利用所述仿真器的上位机软件设置JTAG时钟频率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛科网络(苏州)有限公司,未经盛科网络(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911413691.7/2.html,转载请声明来源钻瓜专利网。