【视频版】基于飞腾芯片的设计与调试入门指导(三)
ndex.php?c=about&a=detail&id=14 |
通过上面的表我们可以发现,要是使用免费的,那么就用飞腾提供的固件。飞腾固件有两种形式,uboot或者UEFI。Uboot能引导实时系统,比如vx类的,也能引导桌面系统,但是桌面系统只能引导开源linux,换句话说就是只能引导能提供设备树的桌面系统。UEFI只能引导桌面系统,比如麒麟、ubuntu这类的。
那么有人问了,我想UEFI引导vx不可以么?可以,那么就用第三方收费的,这里只是飞腾的UEFI不支持。飞腾免费提供的就是解决大家调试用,比如你板子都来了,总不能等第三方定制的固件到了才能去引导系统去测试板子吧,这会儿你就可以用飞腾提供的固件先进行测试,保证你的测试周期。同时这里也说明一点,飞腾的UEFI不是商用的交付用的固件,只是用于测试的,所以它有很多功能还是可以提升的,但是这里要是有定制功能,就需要自己去改了,飞腾只提供基础版本够你用,要是有定制功能,要么自己改,要么去找第三方固件厂商去购买。
飞腾固件我们拿uboot固件举例,它是由uboot部分和PBF部分组成的。其中uboot是提供源码的,PBF是闭源的bin文件。飞腾提供固件编译环境、编译方法指导等。这个可以查看网上的文章:
https://blog.csdn.net/yorkworlddream/article/details/125482429?spm=1001.2014.3001.5501
B站视频:
https://www.bilibili.com/video/BV1h94y197ry/
https://www.bilibili.com/video/BV1ce4y197ze/
https://www.bilibili.com/video/BV1Fg411Z761/
里面将固件编译配置方法讲的很清楚了,我这里就不展开讲了。总而言之一句话,就是飞腾提供的固件配置环境和操作方法,能让一个没有搞过配置的硬件工程师都能很容易的把CPU的核心数、内存、PCIe等进行配置。
固件编译完是一个bin文件,这个文件我们要通过烧片机写器把它烧到我们QSPI FLASH,这个flash烧好后,放到CPU QSPI CS0接口上,CPU开机后就会去读flash里的内容了。所以为了调试方便,我们需要两个东西,一个是烧片机写器,一个就是尽量在CPU QSPI CS0接口上接一个调试座。
下面展示的就是烧写器、烧写器转芯片座,和焊接到PCB板上的调试座。
烧写器产品很多,这里示例的是硕飞的烧写器和它对应的16pin的转接座,当然你要是用8pin的flash,那就用8pin的转接座。(硕飞公司看到可以联系我打钱哈,●ˇ?ˇ●)
焊接到PCB上调试座主要就是方便flash的取换,因为调试中固件可能经常要改参数,要是没有这个调试座,flash就要来来回回的拆下来烧写再焊上这样。
硕飞公司各烧写器支持器件列表:
https://www.sflytech.com/devlist.asp?model=SP20P/SP20X/SP20F/SP20B
2.2.3 系统
固件调完,就要到系统了。我们后面都是基于飞腾固件来讲的,使用第三方固件的不在我们讨论范围里。
系统的引导我们下面也要分几种不同的情况进行说明。表的形式列出:
表 不同固件下的系统引导
系统 |
采用固件 |
系统说明 |
桌面系统 |
Uboot |
系统只能是在其他地方,将硬盘分好区,在指定位置放好设备树、系统镜像、文件系统后,拔下来放到我们最终的板卡上,使用uboot通过设备引导系统启动 |
UEFI |
可以在最终板卡上,使用类似x86+windows的那种方法,把系统iso放到U盘里,在UEFI下通过U盘来安装系统。系统引导时,是采用grub启动系统。 |
实时系统 |
Uboot |
把系统镜像bin文件放到存储器中,使用uboot命令找到bin,引导启动。 |
2.3 设计资料获取
|
资源类型 |
获取渠道 |
硬件 |
芯片手册,设计demo等 |
联系飞腾FAE |
PCIe外设、QSPI Flash等硬件兼容外设列表 |
通过飞腾官网→技术支持→硬件服务 https://phytium.com.cn/class/137 |
软件 |
Uboot、UEFI源码和固件编译环境等 |
联系飞腾FAE |
飞腾linux内核 |
联系飞腾FAE |
Vx BSP、裸跑、Yocto、Android、openHarmony等其他资源 |
通过gitee代码仓库 https://gitee.com/phytium_embedded |
技术支持 |
飞腾有自己的技术支持平台,是网页版的,有基于飞腾的项目要做,通过销售渠道或者技术渠道,找到飞腾的FAE。在技术支持平台注册账号,建立项目,从项目获取资料开始,所有的技术问题,包括设计中有问题,都可以从技术支持平台上提工单要到支持,很方便。 (主要提示:一定要找飞腾技术支持部的FAE) |
注册和登录网址: https://serviceplus.phytium.com.cn/ 注册完账号,要找飞腾FAE给审核账号。 |
三、基于飞腾芯片的调试步骤
3.1 环境准备
序号 |
设备名称 |
用途 |
要求 |
1 |
串口线 |
用于连接飞腾CPU调试串口 |
根据硬件设计,要是TTL串口就用TTL串口线,要是RS232电平,就用RS232串口线 |
2 |
PC机 |
用于运行串口调试软件 |
建议有两种,一种就是SecureCRT,另外一种就是纯字符型串口助手,比如sscom。因为SecureCRT它会解析终端命令比如退格、清屏啥的,导致log存的有的时候不全。所以要用sscom这类不执行终端命令的串口调试助手把所有的串口信息都存下来。 |
3 |
万用表 |
用来测量CPU各个电阻抗,保证没有焊接短路 |
没啥要求,不是十几二十块钱那种的就行 |
4 |
示波器 |
必要时用来测量QSPI 接口波形。必要时用来测量电源纹波。 |
没啥要求,有表笔就行。要是测纹波,可是得有接地弹簧,能靠测。 |
3.2 静态测量
3.2.1 测量静态阻抗
将万用表打到电阻档位,然后分别测量 Vcore、VDDQ、VDDQ、VTT 的静态阻抗。这里要提示一点,核电阻抗很低,很多都在1Ω、2Ω、3Ω都是正常的,换句话说,只要不是0Ω就行!很多人用二极管档测阻抗,有的表一测核电阻抗就响了,不要光看响不响,要看看值。
3.2.2 测量电压
在确保电路没有存在短路的情况下,对电路板进行上电,查看电路板上的核电压、内存电压、IO 口电压、3.3V 电压、5V 电压等是否正确。
这里电压就自己去看手册去对就好了。此时要是为了稳妥,可以把纹波也量一量。但此时量到的只是静态的电压纹波,固件和系统跑起来,这个纹波和此时可能是不一致的。
3.3 加电前准备
前面静态做完,加电前的准备工作基本就没啥了,主要就是不管你是用CPLD还是EC还是X100,加电前一定要把上电时序保证了,至少你编程是照着时序去实现的。千万不要连上电时序控都没控,着急的就上电。
其次,就是固件要编好了,烧到了flash |