基于龙芯 2K1000 的嵌入式 Linux 系统移植和驱动程序设计

Posted 深圳信迈科技DSP+ARM+FPGA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于龙芯 2K1000 的嵌入式 Linux 系统移植和驱动程序设计相关的知识,希望对你有一定的参考价值。

2.1 需求分析 本课题以龙芯 2K1000 处理器为嵌入式系统的处理器,需要实现一个完成的嵌入式软件系统,系统能够正常启动并可以稳定运行嵌入式 Linux 。设计网络设备驱 动,可以实现板卡与其他网络设备之间的网络连接和文件传输。设计 PCIE 设备驱 动实现对处理器外接 PCIE 设备的配置和访问。 软件系统的引导程序、Linux 内核和根文件系统三部分可实现自身功能,组合 在一起能够使系统正常工作。系统的引导程序可以实现如设置网络设备 IP 等对设 备的基本操作,可以完成对 Linux 内核的引导。引导程序的编译方法应当正确,确保源代码的更改可以生效。嵌入式 Linux 内核可以正常启动,实现进程调度、网络、 文件管理等功能子系统应有的功能。根文件系统需要实现对系统的初始化配置工作和文件的管理。 处理器内部 GMAC 控制器外接 RTL8211E 网络物理层芯片组成网络系统,当 用户使用 Linux 网络相关操作命令,网络设备驱动需要提供相应的功能函数实现 对设备的打开关闭和设置 IP 等操作。网络设备驱动需要实现与其它网络设备之间 的连通和双向的数据传输。PCIE设备驱动需要完成对 CH368 FPGA 组成 PCIE 设备的探测和移除等操 作,同时设备驱动需要为上层应用程序提供必要的软件接口。驱动程序需提供对PCIE 设备配置空间读写的方法,用于获取和更改设备的配置参数。驱动需要提供 对上层应用程序对设备文件操作的函数接口,当应用程序对设备文件操作时,驱动 中相应的功能函数被调用从而实现对设备 IO 空间的读写。 2.3 软件总体方案 2.3.1 引导程序方案 本课题需要对嵌入式 Linux 的启动流程进行分析,来明确引导程序在整个启 动流程中的作用。根据龙芯 2K1000 处理器来修改引导程序,并将引导程序移植到 存储设备中,从而使嵌入式 Linux 能够在龙芯 2K1000 处理器中正常运行。 嵌入式 Linux 系统的结构如图 2-2 所示,系统主要有四个部分, BootLoader 参数区、 Linux 内核和文件系统。 1 Bootloader 需要完成对内存和各种硬件设备完成初始化,完成分配资源等 任务,准备 Linux 内核运行所需的环境。之后检测到处理器的类型等信息,将必要 的参数信息传递给 Linux 内核,完成内核的引导工作。 2 )参数区存放内核启动和运行必要的系统参数,第一部分的 Bootloader 获取 并设置必要参数后以原始数据的格式来存放。 3 )内核镜像区为嵌入式 Linux 内核镜像,一般嵌入式系统由于存储资源有限, 一般使用压缩格式的内核文件。系统启动过程中,第一阶段的引导程序为内核运行 创造好条件之后,将内核镜像解压搬运到内存中运行。 4 )文件系统区是压缩的文件系统,文件系统用来明确存储设备上各种文件组 织的方法,是嵌入式 Linux 系统中关键的一部分,文件系统被 Linux 内核解压挂载 之后才能工作[32] 常用的引导程序主要有 U-Boot PMON U-Boot 在功能上和 PMON 基本一 致,有常规的查看设备、设置网络等操作命令,同时有多种设备的驱动,目前 UBoot 在嵌入式领域作为引导程序被广泛使用,使用规模远远大于 PMON ,对各种 硬件平台的支持都比较完善。在以 ARM 处理器为核心的嵌入式开发中, U-Boot 是 引导程序的首选,因为 U-Boot 最初是从 ARMBoot 发展而来,经过多年发展和大 量开发者的贡献,U-Boot 对于 ARM 支持非常完善 [33]

信迈提供龙芯软硬一体化方案及定制。

以上是关于基于龙芯 2K1000 的嵌入式 Linux 系统移植和驱动程序设计的主要内容,如果未能解决你的问题,请参考以下文章

迅为龙芯2K1000开发板快速体验

100%全国产龙芯2K1000设计方案

100%全国产龙芯2K1000设计方案

RT-Thread与龙芯中科完成产品兼容互认

龙芯2K1000LA处理器流片成功,龙芯业务全面转向LoongArch架构

基于龙芯 CPU 的气井控制器的软件设计