视频版基于飞腾芯片的设计与调试入门指导

乌拉大喵喵 乌拉大喵喵     2023-04-24     462

关键词:

飞腾爱好者技术交流群码公众号“乌拉大喵喵”


 

本文已录制讲解视频发布到B站,可以搜索UP主“乌拉大喵喵”

或者扫二维码进入B站专辑进行查看:

 

 

一、啥是自主可控

国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但是真正能叫做自主可控的CPU厂商,只有6家。那啥是自主可控?首先来不严谨的讲下现在数字芯片是怎么做的设计。FPGA大家都知道,可以通过Verilog或者VHDL等硬件编程语言实现硬件功能。比如,我要实现一个SPI控制8个LED灯的功能,可能从市面上找这种功能的芯片是没有的,那么我就可以自己指定控制LED的指令,通过使用FPGA自己编成,解析SPI传下来的指令,控制LED的亮灭。如果测试验证没有问题,那么就可以把FPGA的RTL拿出来,经过处理拿去流片,流片完成给芯片起个名字,比如YKS2D8001,这就成为了市面上能够实现SPI接口控制8个LED的ASIC芯片了。同时,咱们FPGA的实现代码,也可以拿出来当成一个IP,以后谁要想使用FPGA来实现这个功能的时候,就可以拿来用而不用再单独购买咱们流片完成的ASIC芯片YKS2D8001。

那么,咱们在做复杂功能FPGA的时候,比如xilinx的,咱们会调用xilinx提供的现成的IP,比如它的DDR控制器IP、PCIe IP或者更简单些的串口IP、IIC IP。这些IP咱们在程序实现时,是可以直接调用,根据xilinx提供的操作手册把这个IP给用起来的,但是这个IP核的实现代码,咱们是看不到的,如果咱们想改IP核内的代码,那肯定是没办法的。这就是非自主可控。自主可控,就是能够掌握IP的所有代码,自己想改就改。

飞腾就是国内自主可控6家之一。也就是可以简单的理解为飞腾芯片内的每行代码,每一个功能实现,都是自己实现的。这里有人会说,飞腾不是arm64的么,那是arm的呀。是的,飞腾是arm64的,但是飞腾是购买的arm的指令集授权。指令集授权大家可以通俗的认为就是购买了函数名,但是函数实现是自己做的。所以即使是arm64,也是自主可控的。

 

二、基于飞腾芯片的设计

2.1 最小系统硬件设计

要想让飞腾CPU加电后跑起来,硬件设计上有几个部分是必须有的。时钟、供电、内存、调试串口、QSPI Flash接口、存储。下面就针对每个部分详细说一下。

 

2.1.1 时钟

时钟不用多说,所有的芯片都需要时钟。飞腾芯片需求的时钟主要就是两种,1是芯片的主时钟48MHz,2就是芯片的PCIe控制器PEU的时钟100MHz。这个100MHz时钟要求PEU和外设同源,也就是从同一个时钟发生器产生,HSCL电平标准,AC耦合。并且设计时,即使PEU不用,PCIe时钟也是要接的。

图 CPU总的时钟框图

图 PEU0的时钟

图 PEU1的时钟

2.1.2 供电和电源管理

飞腾的电源种类并不多,需要0.8V(核电)、1.2V(VDDQ)、1.8V(IO)三种。其他电源域基本都可以直连或者通过磁珠连接到这三个电源中,这里就参考demo设计就可以了。

这里需要提示的是:

1.就近放置在芯片电源管脚下的电容为4.7uF,这里尽量不要修改。

2.CPU有一个3.3V的电源管脚,这里给供一个3.3V过来即可。

3.各个电的最大电流一定要查手册,设计电源时一定要保证满足。

4.各个电的纹波不能超5%。注意,这里说的是整个运行状态下,就是BIOS阶段、OS系统启动和运行阶段,是都不能超的。这里特别强调,非常重要!

说到电源,就不得不说电源管理。借鉴x86的电源管理状态,飞腾CPU也有电源管理的几个状态。

图 飞腾CPU电源状态

S0就是正常工作的状态,S3就是类似window的睡眠,即待机状态压到内存中,所以要求内存一直带电。S4/S5就是类似window的休眠和关机,即待机状态压到硬盘,或者就是直接关机了,这个时候整板都会掉电。

那么有人问了,S4/S5是俩状态呀?一个是休眠系统状态压到硬盘,一个是关机,这俩放一起咋区分呢?其实不用区分,系统状态压到硬盘了,就已经是被固定保存了,即使掉电也不会有数据丢失,这里应该没错吧。所以对于电源管理来说,S4/S5状态时都是要掉电的。那么S4、S5的区别,主要在下一次开机时。如果去看系统下去执行休眠和关机时的log信息,可以看出,休眠和关机系统处理是不同的,他们会置不同的标志。那么在下次开机的时候,这个置的标志,就能够告知系统要从哪种状态启动。

到这里,供电和电源管理的几个状态应该就说清了,那么现在实际问题来了,供电我能明白,就是使用电源芯片供电嘛。那么这个电源管理,我咋做?

那么下面,我们就一个一个的来说。

首先,我们一个板子肯定是从未加电状态转为加电状态,让CPU跑起来。那么对应上面的状态,那就是S4/S5状态到S0状态,也就是断电关机状态到上电工作状态。这个状态的控制,其实就是对CPU各个电源域上电时序的控制。所以,做硬件不用想太多,从未加电到加电让CPU跑起来,换句话说就是从S4/S5状态到S0状态的实现,就是你想办法把你给CPU的各个电按下面时序跑完就好了。在保证电路设计的情况下哈,只要你按时序跑完,CPU肯定就启动了,也就到了S0阶段。

图 S4/S5到S0开机时序图

那么,你能猜到了吧,S0到S4/S5是咋弄,其实也一样,也是跑电时序。但是……硬件工程师又问了,板子系统正好好的跑着呢,我咋知道要去跑掉电时序呢?这个问题问的很好。去执行掉电时序,总是要收到信号的,那么这个信号在时序图中是能够看出来的,就是图中标绿的部分。PWR_CTR0、PWR_CTR1这两个是CPU芯片上的两个管脚,当我们在OS系统下点了休眠或者关机命令时,系统肯定是要先去保存自己的状态到硬盘,当保存完了,OS会通过PWR_CTR0、PWR_CTR1这两个管脚,发送脉冲出来(应该是4脉冲代表重启,8脉冲代表转S3状态,12脉冲代表转S4/S5状态),告诉外边可以去跑掉电时序了。外边收到这个脉冲后,自己根据掉电时序去跑就可以了。

图 S0到S4/S5关机时序图

图 PWR_CTR0、PWR_CTR1两管脚

前面提到了PWR_CTR0、PWR_CTR1这两个管脚把脉冲发给外边,那么这个外边是啥呢?这里外边其实就是个控制器,单片机也好,CPLD也好,只要能够数脉冲,能够控电时序就好了。Demo图一般用的都是CPLD。

图 demo图一般都是用CPLD做电源管理

那么又有人问了,我做笔记本难道还需要上一个CPLD控制电源么,一般笔记本都有EC呀,EC能用么?答案当然是肯定的。所以这里又要说明一个事情,电源管理接口不只有上面PWR_CTR0、PWR_CTR1这两管脚,也可以通过LPC,也可以通过IIC。要是外边电源管理控制器使用CPLD或者MCU等,那么建议就接到CPU PWR_CTR0、PWR_CTR1这两管脚,通过数脉冲去判断要执行的状态跳转。要是使用EC的话,就要求把EC接到CPU的LPC接口上,通过LPC去通信状态跳转。要是用飞腾的套片X100做电源管理,就要求把CPU的IIC1接到X100的IIC上。那么OS系统在发送状态跳转的时候是怎么知道外边接的是什么,要从哪个接口去传输命令呢,这个就是在BIOS生成的时候,有个配置选项,来告诉OS系统我外边接的什么。

表 不同电源管理控制器使用的通讯接口和配置方式

 

 

涉及S3状态,有个管脚要特别说明一下:GPIO0_A1,这个脚的使用一定要好好看下手册说明。当主机从S3恢复到S0状态时,板上的CPLD控制单位会通过信号引脚 K17(信号名 UART_0_CTS_N/GPIO0_A1)向CPU发送主板当前的是否满足S3→S0状态的S3_OK信号。S3_OK 信号为高电平时候,表示可以正常恢复到S0。S3_OK信号为低时,通知CPU主板出现异常状态(内存掉电等情况),系统将重新启动,而不是从 S3 恢复。如果设计上没有S3的需求,那么这个GPIO0_A1要做拉低处理,不能不管,要不会出错的。

 

2.1.3 内存

飞腾CPU的内存控制器做的还是比较好的,如果设计没有硬伤,走线没有太差,不管使用内存条还是DDR颗粒,都会得到一个很好的训练参数支撑系统的运行。

首先要说的是,飞腾桌面CPU,FT-2000/4是支持DDR3和DDR4的,到D2000芯片是只支持DDR4的。这些内容在芯片手册中都有说明,这里特别拿出来提醒大家一下。

芯片是有两个DDR控制器的,我们可以称为两个通道。每个控制器有4个片选信号,我们可以叫做4rank。所以,我们一个CPU最大的设计是这样的:2个通道×4rank。像下图一样的设计,就可以插4条双rank的内存条。

图 双通道×4rank的D2000板卡

内存控制器若按照 8bit 划分为一个 slice,一个通道 72bit 可划分为 9 个 slice(第9个,即slice[8]为ECC)。

DQ交换:在进行X8兼容内存的设计时,slice内部的8个DQ可以自由互换。

Slice交换:slice[0:7]可以进行slice之间交换。Slice[8]为ECC用途,不能与其它slice交换。若用户需要使用ECC的内存条,slice[8]必须与DIMM条上的slice [8]进行连接。若确认无需ECC功能,将slice [8]信号浮空即可。

这里还有个特别说明的地方,就是DDR控制器有个MEMRESET,这个是输出到DDR上给DDR做复位的。前面在供电和电源管理章节里提到过,S3状态是需要将待机状态压到内存的,那么待机时就要求DDR不能掉电,当然更不能被复位。因为S3状态下除了DDR,包括CPU在内的其他无用的电都是需要被关闭的,那么CPU这个MEMRESET一定是个无效的状态。所以,如果我们的板卡应用会有S3,也就是睡眠状态的,这个MEMRESET就需要控制一下。

这个就是demo图中的这个电路。可以看到,CPU输出的MEM_RST是过了一个MOS的,这个MOS的控制端是接到了CPLD上,因为是不是从S0跳转到S3状态,CPLD是可以通过PWR_CTR0、PWR_CTR1这两个脚数脉冲来知道的,那么它也就知道是否需要控制MOS将CPU输出的MEM_RST传递给DDR。

图 demo图中S3状态对于MEMRESET的处理

 

2.1.4 调试串口

调试飞腾,要是不把调试串口引出来,那基本就等死就完了。

UART 接口电平为 1.8V CMOS 电平标准,若使用的外设不兼 容 1.8V CMOS 电平,需进行电平转换;默认UART_1为系统调试串口,用于输出系统打印信息,波特率115200bps。记住,这玩意儿默认就是串口1,不能改。你要非得改,要动的代码千千万,还不是你自己能改的了的,何必动它呢。你就用串口1就行了。

是用TTL还是RS232,根据硬件需求自己设计就好。

 

2.1.5 QSPI接口

前面提到好几次CPU的BIOS,那么BIOS存放在哪?CPU启动的时候从哪里读呢?

都是从QSPI接口。QSPI 接口兼容 SPI,且作为启动加载片外固件的唯一接口。CPU 启动后,最先通过 QSPI 接口的 QSPI_CSN0 片选的 Flash 芯片加载固件,来执行相关指令。固件正常执行完成,才能在后面引导OS系统启动。

图 QSPI flash接口电路

QSPI Flash有16pin的、8pin的,1.8V的、3.3V的。设计时选取根据要自身的需求。并且最好选取大家常用的,飞腾兼容适配过的型号,同时建议flash最好16MB以上,8MB有的用起来还是小,会有问题。

 

2.1.6 存储

这里存储是个广义的概念,也就是所有能存放OS的都可以叫做存储,SD卡、NVME、SATA、NOR Flash都可以。他们作为OS存储的要求很简单,只要能放得下OS,能被固件读写就可。

一般咱们PC机都是用SATA硬盘作为存储介质,飞腾CPU上没有sata接口,如果要用sata硬盘做存储,那就需要通过PCIe外扩sata。如果不想外扩,那就用NVME SSD。如果系统比较小,比如一些实时系统Vxworks啥的,那么把系统生成bin文件,放到启动用QSPI Flash剩余的空间也是可以的,当然放到SD卡里也是可以的。要求前面也说过了,只要放的下,固件能看到这个存储,能操作它就可以。

 

2.2 如何让CPU开始工作?

2.2.1 上电时序

在前面2.1.2供电和电源管理章节讲过,要让CPU从未加电状态到加电后工作状态,就是使CPU从S4/S5状态转到S0状态。这个状态跳转其实就是通过外边的电源管理控制器(CPLD或EC或X100)跑一下CPU的上电时序。

图 CPU上电时序

这里提示一点,手册里给出了上电时序的各个时序之间的延时t值,就是上面图中的t1~t12,那就严格按照手册来做就好了。不要去问不这么做会怎么样。可能你设计的好,不这么做也能用,但是这个可法保证每次这么做都可以,手册都给参数了,就按手册做不就好了么。

上电时序跑完,CPU就会启动了,它下一步就会去QSPI CS0接口去读数据了,所以你如果不知道自己时序是不是好了,那就可以用示波器去量QSPI CS0是否有读数据的动作,同时测量一下QSPI的时钟,在固件加载前应该是380KHz。也就是CS0是否有拉低的状态。要是有拉低,那就说明CPU在尝试去读外置FLASH了,那么也就说明CPU上电正常了,已经开始工作了。

 

2.2.2 固件

固件这个名字其实应该不陌生,很多网卡,很多PCIe桥片都要烧EEPROM,那里面的Bin文件我们就叫固件。这里CPU启动用的程序,我们也叫固件,借鉴X86的叫法,那就叫BIOS。只是个名字,不要纠结,在飞腾这里基本都叫固件。

固件这里的情况汇总到下表:

表 飞腾CPU固件情况说明

固件提供方

厂家

费用

固件形式

对应OS

联系方式

飞腾

飞腾

免费

Uboot

实时系统(Vx+国内实时系统)

桌面系统(能用设备树引导的开源linux)

联系飞腾FAE

UEFI

桌面系统(麒麟+开源linux)

第三方

昆仑

收费

联系厂商

联系厂商

http://www.kunluntech.com.cn/lxwm

百敖

收费

http://www.byosoft.com.cn/rhgm/index.jhtml

国科银河

收费

http://hngkyh.com/index.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中,并且flash已经放到了调试座上,也就是CPU可以通过QSPI CS0接口去读flash里的固件了。

 

3.4 加电

3.4.1 调试串口有打印

3.4.1.1 能进shell

调试串口有打印,并且能进shell,这个真的是要恭喜你,板子调试太顺利了。不过这么顺利了,我们也要看看log,尤其是看看ddr训练部分训练的是否顺利。因为即使我们DDR部分设计如果有问题,要是不是很致命的话,控制器会尝试多次参数训练,最终找到能用的参数。我们要关心的是训练次数,正常来说我们从log上,参数训练是很短的。要是我们看到log上有很多次的参数尝试,那么说明咱们这个ddr还是有些问题。

下面是训练成功的log截图,如果我们在达到success之前,反复出现过很多次红框框出的那种信息,那么说明DDR控制器尝试了很多参数,最终才找到了一个合适。见过一些板子需要训练大概20s多,可以从log上看到很多很多个红框的信息。这种说明DDR设计上不是很好,需要再仔细查一查。

图 log中内存训练部分截图

进了shell,我们就可以敲命令了。

uboot飞腾是在公版的上面改的,所有命令都是兼容的,我们可以搜uboot命令就可以了。环境变量的:Printenv、setenv、saveenv。寄存器读写:md、mw。PCIe外设扫描:pci e。

UEFI也是兼容公版UEFI的。寄存器读写:mm。PCIe外设扫描:pci。网络:ifconfig、ping。

这个我们后面也单独出一个文档,这里也是简要说明一下。

 

3.4.1.2不能进shell

串口有打印,但是卡半截,不能跑到shell,这里绝大多数都是硬件问题。我们要根据打印来判断可能的故障点。

这个问题点很多,我们后面也是单独出文章来说明。这里单独提示一点,串口卡了这时候要用示波器测纹波了。因为固件已经开始跑了,如果纹波很大,可能会出现卡在很多位置,这个就没法判断了,所以固件咋调都过不去,纹波是必须要量的,尤其是核电的,不能超5%。

 

3.4.2 串口无打印

加电后串口都没有打印,那么我们首先就是要用示波器量下QSPI的时钟和片选。

QSPI 接口作为启动加载片外固件的唯一接口。CPU上电后后,通过QSPI接口的QSPI_CSN0片选的Flash芯片加载固件,来执行相关指令。因此需要查看 QSPI 的时钟信号(QSPI读固件之前时钟以及读完之后固件配置的时钟),QSPI读固件之前时钟频率应为380KHz左右,网安版的应该是4.6MHz。

 

表 串口无打印各种可能性分析

QSPI时钟和片选

故障可能性

解决方法

看上电时序,测量系统时钟

测量上电时序,保证与手册一致。测量系统时钟,保证满足芯片要求。

Flash是否适配过

查飞腾官网适配型号,看是否进行过兼容适配

Flash电平与CPU电平是否一致,因为有的设计可能采用了3.3V flash,接到CPU上时往了过电平转换芯片了

要是真是电压不一致,尽量就是换电平一致的flash芯片再试试了

Flash有没有虚焊。

Flash各个脚都测测,都量量的吧

测量CPU芯片调试串口的管脚处,看看是否有波形,有可能是串口通路上串口芯片或者调试串口线或者串口软件啥的有问题呢

这个就让硬件工程师来测吧,这个要不会他也做不了飞腾的板子

 

3.5 系统引导

使用uefi去安装引导系统,请看文章:

https://blog.csdn.net/yorkworlddream/article/details/124866224

使用uboot去制作系统,引导系统,请参考仓库说明:

https://gitee.com/phytium_embedded/phytium-linux-buildroot

 

 

 

附录:文中涉及到的外部文章汇总:

内容

链接

飞腾技术支持平台

https://serviceplus.phytium.com.cn/

飞腾固件编译指导

https://blog.csdn.net/yorkworlddream/article/details/125482429?spm=1001.2014.3001.5501

https://www.bilibili.com/video/BV1h94y197ry/

https://www.bilibili.com/video/BV1ce4y197ze/

https://www.bilibili.com/video/BV1Fg411Z761/

飞腾外设兼容列表

https://phytium.com.cn/class/137

飞腾gitee代码仓库

https://gitee.com/phytium_embedded

uefi去安装引导系统

https://blog.csdn.net/yorkworlddream/article/details/124866224

 

uboot去制作系统,引导系统

https://gitee.com/phytium_embedded/phytium-linux-buildroot

 

硕飞烧写器支持列表

https://www.sflytech.com/devlist.asp?model=SP20P/SP20X/SP20F/SP20B

 

昆仑固件

http://www.kunluntech.com.cn/lxwm

百敖固件

http://www.byosoft.com.cn/rhgm/index.jhtml

科华固件

http://hngkyh.com/index.php?c=about&a=detail&id=14

 

 


飞腾爱好者技术交流群码公众号“乌拉大喵喵”

基于国产银河飞腾多核dsp+fpga的图像识别硬件设计与算法实现

随着监测卫星的发展,如何快速对卫星图像中的目标物进行识别成为关键技术。为了实现星载关键器件的国产化,并为整个系统提供更高的性能和更好的实时性,本课题将以国防科技大学计算机学院自主研发的高性能... 查看详情

基于国产银河飞腾多核dsp+fpga的图像识别硬件设计与算法实现

随着监测卫星的发展,如何快速对卫星图像中的目标物进行识别成为关键技术。为了实现星载关键器件的国产化,并为整个系统提供更高的性能和更好的实时性,本课题将以国防科技大学计算机学院自主研发的高性能... 查看详情

免费申请基于飞腾硬件平台上的麒麟云试用!

...伴提供国产软硬件平台体验及产品适配提供便利,我公司基于“飞腾芯片+银河麒麟操作系统”的架构,搭建了一套银河麒麟云平台。该云平台支持飞腾1500A和飞腾2000系列国产CPU,支持KVM、D 查看详情

基于vue的电影网站的设计与实现开题报告

...s://download.csdn.net/download/qq_31293575/18338145论文(设计)题目基于vue的电影网站的设计与实现学生姓名学院(系)、专业指导教师选题目的、价值和意义近年来,我国PC电脑市场由增量向存量转变桌面版浏览器作为PC互联网的伴生行... 查看详情

60集python入门视频ppt整理|python代码的测试调试与探查

学习视频来源:《马哥教育-Python入门教程》      查看详情

18基于stm32的自动浇花系统

18、基于STM32的自动浇花系统引言1系统概述1.1设计任务1.2设计要求2方案设计与论证2.1芯片选择方案2.2系统概述2.3系统总体设计思路2.4各功能模块程序实现原理分析4系统程序主程序内容5系统调试及分析5.1系统调试5.2测试结果心得... 查看详情

18基于stm32的自动浇花系统

18、基于STM32的自动浇花系统引言1系统概述1.1设计任务1.2设计要求2方案设计与论证2.1芯片选择方案2.2系统概述2.3系统总体设计思路2.4各功能模块程序实现原理分析4系统程序主程序内容5系统调试及分析5.1系统调试5.2测试结果心得... 查看详情

嵌入式入门必看!调试工具安装——基于am64x核心板

...064bit。本文测试板卡为创龙科技SOM-TL64x核心板,它是一款基于TISitara系列AM64x双核ARMCortex-A53+单/四核Cortex-R5F+单核Cortex-M4F设计的多核工业级核心板,通过工业级B2B连接器引出5xTSNEthernet、9xUART、2xCAN-FD、GPMC、PCIe/USB3.1等接口。核心... 查看详情

国产适配新进展!思迈特软件与飞腾完成产品兼容互认证!

近日,思迈特软件与天津飞腾信息技术有限公司积极开展了兼容性适配工作,经过一系列严格测试,思迈特大数据分析软件在飞腾公司的S2500处理器平台上顺利安装,运行稳定,这意味着双方产品完成兼容性互认证。此次产品兼... 查看详情

stm32

正点原子B站视频地址:https://www.bilibili.com/video/BV1Lx411Z7Qa?p=4&spm_id_from=pageDriver目录STM32命名规则STM32芯片解读开发环境搭建(MDK-就是ARM的keil,需破解+支持包+CH340串口驱动+JLINK驱动)程序下载方法(ISP串口下载+J... 查看详情

芯片设计|fpga设计的指导原则

...式可以用设计所占用的等价逻辑门数。“速度”指设计在芯片上稳定运行,所能够达到的最高频率,这个频率由设计的时序状况决定,和设计满足的时钟周期,PADtoPADTime,ClockSetupTime,ClockHoldTime,Clock-t... 查看详情

pads9.5基于单键节能灯的原理图设计实现的——注意事项与总结

  因为最近课程要做一个由外部中断输入来控制单片机对亮灯数量的控制,模拟节能灯的功能;需要画好原理图,PCB,电路焊接以及代码的编写。  原理图事项与总结:     使用的芯片的宏晶公司... 查看详情

《算法竞赛入门经典(第2版)》pdf下载在线阅读,求百度网盘云资源

...注重学习方法和实践技巧。全书内容分为12章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、C++与STL入门、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法... 查看详情

基于δ-σ模数转换器的梳状滤波器的设计与matlab仿真(代码片段)

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》目录一、理论基础二、核心程序三、测试结果一、理论基础    Δ-Σ模数转换器是一种低速,高精度的过采样模数转换器广泛的应用于信号采集和处理、数字... 查看详情

基于stm8的数字温度计设计(代码片段)

基于STM8的数字温度计设计这是在2021年12月初完成的一次课程设计,全程自己设计组装完成,现作为记录存档发布,大家也可以借鉴本文来完成自己的课程设计。(建议使用电脑阅读)课程设计目录基于STM8的数... 查看详情

stm32视频教程分享:心率检测仪的设计与实现

STM32系列是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。本项目主要讲述了通过心律传感器采集我们的心律数据,然后通过串口传送到上位机中,上位机用Qt实现,当Qt接收数据之后,把数据绘制... 查看详情

明年毕业啦。要写个基于java的毕业设计管理与指导平台毕业设计。老师让自由发挥。求指导怎么写。

文档说明之类的。具体这个程序功能什么的毕业设计(论文)是学生毕业前最后一个重要学习环节,是学习深化与升华的重要过程。它既是学生学习、研究与实践成果的全面总结,又是对学生素质与能力的一次全面检验,而且还是... 查看详情

芯片设计|fpga设计的指导原则(代码片段)

我们接上一期的[FPGA设计的指导原则(一)给大家讲解FPGA设计的指导原则。当评估完系统的流水线时间余量后,发现整个流水线有16个时钟周期,而FHT模块的频率很高,加法本身仅仅消耗1个时钟周期,加上数据... 查看详情