不过通常fpga厂家会提供cpu软核,altera的是NIOS,xilinx的是microblaze,所谓软核就是指利用fpga内部的可编程逻辑实现的cpu核心。在这些cpu软核上,理论上就可以跑起linux了。不过可能各家软核cpu对linux支持也不一样。xilinx的相对支持好一些。
还有一种情况是内嵌arm的soc,如zynq等,linux对这类fpga+arm的soc支持非常好,甚至直接采样linux内核主线版本就可以很好使用了。
看你提的问题,我猜你是不是linux开发的经验不足。如果FPGA带硬核,硬核也是一片ARM,其实和我们一般的ARM的Linux开发是一模一样的,只是它内部有和FPGA互联。
给你一些建议:
1、看官网提供的一些培训资料。我用的altera,它的培训资料里有很多很好的入门培训视频。
2、刚开始不要从细节入手,首先建立感性的认识,然后逐步深入。
3、一般的开发板有一些入门的资料,按照她们的步骤一点一点的入门。
回答你提的问题:
首先你提的问题太抽象,没有给出具体的FPGA型号和厂家,那么我就以altera的硬核处理器讲下它的基本流程。
首先是启动,分为两个阶段。
一、Preloader 和Uboot(新手不要作如何修改)。
二、可以是硬核(称hps)先启动然后配置FPGA,还有其它启动方式;在这里我们以hps先启动做例子。主要需要有3个文件,<1>Linux镜像zImage,<2>设备树文件dtb,<3>FPGA配置文件rbf。将上述3个文件(uboot启动后可以通过tftp来传输)放到启动分区中(一般会把磁盘分成不同的分区)。
然后是Linux内核和驱动了,这个就比较复杂了,需要掌握的知识比较多。你可以先看下国嵌的培训视频,对它有个基本的了解。然后FPGA只需把它当成一个外设来处理就好了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)