0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

回板后,处理器不启动,怎么办?

wFVr_Hardware_1 来源:硬件十万个为什么 2022-12-26 10:36 次阅读

电路板板回板后,如果串口能够正常打印,则我们很多调试手段都可以运用,能够运用串口打印,或者调试工具能够快速的进行问题定位。

最痛苦的就是嵌入式系统,我们的知识体系比较单一,团队中缺少软硬兼修的人。如果回板的电路板虽然不冒烟,但是无法明确是软件问题,还是硬件问题的时候,就需要我们通过一系列操作进行问题定位,然后逐步歼灭问题,最终达到串口能够正常打印的地步。

1ee8230a-83a4-11ed-bfe3-dac502259ad0.jpg

早期在X86系统中,为了帮助定位问题,会选择这样的80卡,用一个PCI外设来显示故障部件的位置,缩短调试的时间和过程。

但是最痛苦的事情是,80卡也不亮。

所以我们需要逐步排除硬件问题,捋清楚硬件启动的过程:

1、时钟问题。

一般表现在时钟配置异常,晶振的选型频率范围有问题,超出芯片主频工作范围。

还有晶体不起振,我们碰过有同事归一化电容,把晶振的负载电容容量选型选的容值过于大了。

1efa8090-83a4-11ed-bfe3-dac502259ad0.jpg

也碰过晶振的走线太长,导致处理器接收端的信号质量不好,导致无法正常启动。

2、电源问题。

电源完整性的质量差,纹波过大,尤其开关电源供电时;或者供电输出不稳定;或者系统供电能力不足而引起电源波动等。例如有一些设计错误,电压错误、电流能力不足、电源之间的相互干扰等等。我们需要仔细排查电源本身的问题。

3、上电时序的问题

电源之间的先后关系,我们设计电路板的时候,需要捋清楚每个电源上电的先后时序要求,很多芯片都会有相关的要求:处理器、FPGADSP等等一般都会有时序要求。

容易忽略的一个点是:不光是电源时序有要求,有些芯片的时钟稳定、电源稳定、复位信号之间有先后关系,或者还有时间间隔的要求。

我们需要全方位排查时钟、电源、复位信号之间的时序要求。特别是一些共用电源的芯片,很可能由于时序要求,我们要分别供电,或者需要通过MOSFET控制上电时机。

4、BOOT脚配置问题。

对于ARM芯片往往都有些BOOT配置脚。经常遇到有人因为BOOT脚的焊接或接触不良导致各类奇怪问题。这种情况多表现在芯片功能时好时坏,或者部分芯片正常,部分芯片异常。

我们不管是ARM也好、X86也好、DSP也好,以及MIPS、现在RISC-V都存在启动路径的问题。有TF启动、U盘启动、硬盘启动、光盘启动等等。

我们需要知道要么像X86那样,有BIOS来配置启动路径,或者像有的ARM通过上下拉电阻来配置启动路径。

最近在玩英伟达的Jetson,最不爽的一件事就是:不同的启动路径,使用的系统镜像不同。如果我们忽略,会导致系统无法启动。

5、启动文件问题。

经常因为选错了启动文件,导致程序无法正常运行,或者说调试时好好的,脱机运行就不行。这点在做不同系列芯片间移植时最容易碰到。

有些处理器的启动配置文件很复杂,没问题的时候容易被大家忽略,一些处理器的基础配置在配置文件里面。如果配置文件错误,会导致处理器启动异常。

6、地址空间错误

我们从软件的视角,有时候很容易忽略启动地址。地址空间有时经常会把软件人绕晕。硬件的人想搞清楚,也费尽。

1f0b0fd2-83a4-11ed-bfe3-dac502259ad0.png

对于X86系统的地址空间更复杂,内存空间分四个模式,还有IO地址空间。

1f25e23a-83a4-11ed-bfe3-dac502259ad0.png

案例:某一个多核PowerPC的处理器串口没有打印

1、现象、问题描述

单板回板后,单板启动失败,串口没有打印。这是一个典型的单板调试过程。故记录作为回板调试参考。

2、关键过程、根本原因分析

单板回板后,串口没有打印。处理器为多核PPC,小系统通过CPLD对Local Bus进行解复位。下图为P4080小系统框图, P4080小系统P4080, DDR3 SDRAM,CPLD,Flash构成。P4080通过SRIO接口实现对DSP的加载和控制,通过SGMII接口和FPGA交互媒体控制报文。

1f501a3c-83a4-11ed-bfe3-dac502259ad0.png

问题一:单板启动到什么程度。

分析一:配置字没读完,刚读32bit,处理器就挂住了,没有继续读取RCW(配置字)。

1f687802-83a4-11ed-bfe3-dac502259ad0.png

结论一:在读取RCW的阶段就挂死了。

措施一:查看和核对RCW。

问题二:RCW有什么错误,它的错误为什么会导致处理器挂死。

分析二:单板的RCW与DEMO板的RCW,除了内容不同(硬件环境,设计需求不同),同时RCW的长度也不同。

Demo板的RCW

aa55 aa55 010e 01004c50 0000 0000 0000

5050 5050 0000 cccc 58400000 c03c2000

fe80 0000 0100 0000 0000 0000 0000 0000

0000 0000 00df 07fd a000 0000 0000 0000

0000 0000 0000 0000 0813 8040 ff3041a4

我们单板烧入的RCW没有红色的字。

结论二:RCW不单单是根据硬件设计,对各个数据进行填写,同时,CPU有校验功能,在RCW的头和尾都有校验数据。这些配置字的生成,供应商提供了一个工具,按照处理器的的设计,直接进行选择,然后可以直接生成完整的RCW。而我们之前的RCW校验失败,所以启动失败。

我们的设计方法直接借鉴公司大规模使用的单核PowerPC 8321的设计方法:1、阅读器件资料,理解配置字的含义;2、列出配置字的内容;3、整理成16进制发给软件工程师

由于多核PPC的RCW变得复杂,且有校验码,所以P4080等多核PowerPC的RCW可以通过工具生成,工具如下:

措施二:利用工具生成RCW,烧入Flash。

问题三:RCW的数据正确了之后,仍然没有打印。

分析三:配置字已经跑过了,又挂在Bootrom

1f8538ca-83a4-11ed-bfe3-dac502259ad0.png

看了一下波形,配置字跑完,又跑了40字节。

先怀疑配置字问题,我觉得没有问题,依据是原来跑步起来,现在跑起来了。

我跟陈陆安又核对了一次配置字。并且发现,处理器版本选择V1.0、V2.0对于我们的单板来说,生成的配置字是一样的。

1fa5f7fe-83a4-11ed-bfe3-dac502259ad0.png

BOOTROM的启动挂死的比较前端,估计应该没有读到BOOTROM。查看Flash烧片文件,第一条指令与RCW之间预留了若干位,其中填0,软件多填了一行0.

1fb8e152-83a4-11ed-bfe3-dac502259ad0.png

发现软件的起始地址不对。

下图为我们需要的数据存储在Flash的位置,RCW的存放位置为MPI Flash能够读取的最低地址。而BOOTROM的启动地址是FFFF,FFFC。配置字的启动地址:CS0的最低地址。

如下图所示:

1fc88e54-83a4-11ed-bfe3-dac502259ad0.png

但是实际上我们是下面这样弄的:

1fe0615a-83a4-11ed-bfe3-dac502259ad0.png

结论三:由于BootRom和RCW没有存储到CPU默认读取的地址,所以导致Bootrom没有被读到,所以启动失败。

措施四:于是我们考虑在Flash里面加载现有代码两个地方,

1ff0cd9c-83a4-11ed-bfe3-dac502259ad0.png

通过设置JTAG的起始地址,实现加载。

JTAG加载起始地址:127Mbytes,但是Flash的位宽为16bit,所以JTAG加载的起始地址:

127M = 127* 1024 *1024 = 0x7F00000。

0x7F00000 /2 =3F80000

最终的交付版本,是通过CPLD地址重定向实现的RCW和BootRom存储在连续地址。

问题四:串口可以打印,但是BOOTROM下的打印正常,但是进入VxWorks之后,打印乱码。

分析四:虽然打印了一堆乱码,但是键盘可以输入。根据判断,单板已经正常工作了,但是当时怀疑是内存问题导致的数据错误,导致打印乱码。

分析四:通过仿真器,对内存进行批量读写操作,说明内存的数据是正确的,排除了内存的问题。

底软的开发人员怀疑的VxWorks下的中断错误,导致串口乱码。当时给出三条否定意见的依据:

中断服务程序很大不可能插入到前4k中,所以无法实现

为什么Demo可用,而我们单板不可用?

中断问题,只会造成发送速率慢,而不会造成乱码

通过查代码发现:

Demo板通过CS3读取了数据,用于配置处理器的大量寄存器

Demo板的所有CS都是连接到FPGA的

2000ea92-83a4-11ed-bfe3-dac502259ad0.png

2012d1c6-83a4-11ed-bfe3-dac502259ad0.png

Demo板子上面,FPGA的CS3如同我们CPLD寄存器。

里面有大量单板硬件信息。例如:

FLASH的映射方式

单板CPU主频。

后续,我们重点关注了这个:“单板CPU主频。”

启动时,BootRom是直接操作UART的,对UART初始化一次。进入Vxworks之后,又对UART初始化一次。所以有可能把UART寄存器改了。

通过CS3读出的处理器主频,直接写定。SYStemCLK是从CS3中读取的,波特率是通过SYSTEMCLK分频得出的。

1、 示波器测试UART的波特率:上电时为115200,后来乱码之后为8k左右。

修改了SYSTEMCLK之后(由于我们的单板没有CS3,所以原先从CS读取SYSTEMCLK,导致了错误),出现VxWorks界面。串口打印正常。

结论四:通过固定处理器的SYSTEMCLK,实现VxWorks下的正常打印。

3、结论、解决方案及效果

单板在回板后,有大量的问题:

配置字校验数据缺失;

BootRom的存储地址问题;

VxWorks加载过程中修改了处理器主频,导致串口乱码。

4、经验总结、预防措施和规范建议

这不是一个什么高级的案例,但是每个使用新处理器的单板返还,都会有一段曲折的路走。

单板在返还后,如何不走这段弯路?

a、 每一个操作,都需要有依据,例如BootRom的存储位置等,这些不明确的话,肯定会引入问题。

b、 不要直接套用已有的经验,例如RCW在单核PowerPC和多核PowerPC的开发模式发生了变化,需要与供应商充分沟通。

c、 硬件,软件不要划分界限,要相互渗透,在串口还没有打印前的问题,需要所有开发人员都非常清楚,而不是相互推诿,相互依赖。

d、 问题定位,下一步的猜想,需要心思缜密,不是每个猜想都要去验证。为了更好的项目进度进展,需要经过逻辑判断,否定一些错误的猜测和假象。但是这需要严密的逻辑思维,否则适得其反。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18894

    浏览量

    227097
  • 嵌入式
    +关注

    关注

    5042

    文章

    18797

    浏览量

    298258
  • 电路板
    +关注

    关注

    140

    文章

    4802

    浏览量

    96016
  • Boot
    +关注

    关注

    0

    文章

    148

    浏览量

    35667

原文标题:回板后,处理器不启动,怎么办?

文章出处:【微信号:Hardware_10W,微信公众号:硬件十万个为什么】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手机进水了怎么办

    手机进水了怎么办? 进水和摔机是手机使用的两大忌,手机进水尤为严重,下面就将手机进水的正确处理方法和大家分享。 &
    发表于 10-26 16:47 8757次阅读

    电脑进入系统卡死怎么办

    电脑进入系统卡死怎么办 症状:启动刚进入系统界面时,点什么都打不开,要等一分钟左右才能打开。     解决办法:     一
    发表于 02-24 13:46 1.3w次阅读

    显示画面扭曲怎么办

    显示画面扭曲怎么办    黑龙江常亮:我的电脑配置为PⅢ 1GHz处理器、256MB内存、40GB硬盘、ATI 9200SE显卡,显示为17英寸普通
    发表于 02-25 10:26 2515次阅读

    扫描仪灯管怎么办

    扫描仪灯管怎么办    问:玩了几年电脑一直很顺利,但是最近接二连三地出现故障,先是我的扫描仪“罢工”,进入TWAIN
    发表于 02-25 10:26 4089次阅读

    NTDETECT失败怎么办

    NTDETECT失败怎么办    问:我的电脑有时用闪存或光驱拷贝一些文件或安装程序,电脑就自动关机了。当再启动时就进不了系
    发表于 02-25 11:08 1977次阅读

    内存报警怎么办

    内存报警怎么办    近日,我的电脑无法启动,同时在开机时发出表示内存出问题的“嘀嘀”警报声,请问是什么原因,应该如
    发表于 02-25 11:37 2043次阅读

    电池换新无法可依怎么办

    电池坏了怎么办?修。修不好怎么办?换。
    发表于 03-19 11:23 1330次阅读

    电路上锡怎么办

    电路电镀镍金上锡原因分析,可以从以下几个方面进行作检查调整.后期处理不良;水洗应及时烘干,放入通风状况良好的地方,最好不要放在电镀车
    的头像 发表于 05-14 16:38 1.9w次阅读

    接触可以常年通电吗_接触连接不通电怎么办

    本文首先分析了接触是否可以常年通电,其次介绍了接触连接不通电怎么办,最后阐述了接触吸合负载不通电是怎么回事。
    的头像 发表于 03-12 09:34 1.6w次阅读

    pppoe什么意思_pppoe连接怎么办

    新一代互联网络在高性能、高可扩展性、高可用性和易部署性等方面提出了更高的要求,使得路由结构越来越复杂,我们需要掌握的相关知识也越来越多,那么你知道路由pppoe连接怎么办吗?下
    发表于 04-27 10:34 4.4w次阅读

    STM32 进入Stop模式电流还是很大怎么办

    STM32 进入Stop模式电流还是很大怎么办?STM32 进入停止模式电流还是很大,可能椒几百个uA,怎么办?通常做法有如下几点:MCU外围管脚配置检查外围有无闭合回路SWDIO
    发表于 12-08 20:51 16次下载
    STM32 进入Stop模式<b class='flag-5'>后</b>电流还是很大<b class='flag-5'>怎么办</b>?

    win7电脑的DVD驱动无法启动怎么办

    win7电脑的DVD驱动无法启动怎么办? 在日常使用电脑的过程中,我们经常需要使用到光盘来安装软件、播放影片等,而DVD驱动的正常启动是使用光盘的前提条件,因此DVD驱动无法启动会给我
    的头像 发表于 10-27 14:25 1439次阅读

    盛显科技:投影融合处理器出现颜色失真或偏色,该怎么办

    我们在使用投影融合处理器的过程中,因种种原因,有时候会遇到出现颜色失真或偏色的情况。此种情况的出现,会对视觉效果、信息传递和设备性能产生负面影响。因此,需要我们及时采取措施解决问题,以确保投影设备的正常运行和良好的展示效果表现。那么您知道投影融合处理器出现颜色失真或偏色,
    的头像 发表于 07-31 17:09 145次阅读
    盛显科技:投影融合<b class='flag-5'>处理器</b>出现颜色失真或偏色,该<b class='flag-5'>怎么办</b>?

    盛显科技:投影融合处理器画面出现闪烁或抖动,该怎么办?

    采取一系列专业而周密的处理措施来解决问题。那么您知道投影融合处理器画面出现闪烁或抖动,该怎么办吗?下面盛显科技科技小编为您介绍: 投影融合处理器画面出现闪烁或抖动,可采取以下措施进行
    的头像 发表于 08-14 17:00 202次阅读
    盛显科技:投影融合<b class='flag-5'>处理器</b>画面出现闪烁或抖动,该<b class='flag-5'>怎么办</b>?

    ddos造成服务瘫痪怎么办

    在服务遭受DDoS攻击,应立即采取相应措施,包括加强服务安全、使用CDN和DDoS防御服务来减轻攻击的影响。rak小编为您整理发布ddos造成服务瘫痪
    的头像 发表于 08-15 10:08 141次阅读