基于龙芯 CPU 的气井控制器的软件设计
Posted 深圳信迈科技DSP+ARM+FPGA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于龙芯 CPU 的气井控制器的软件设计相关的知识,希望对你有一定的参考价值。
4.1 系统软件的总体设计 基于龙芯 CPU 的气井控制器的设计需要开发测试硬件模块的测试软件,主要对 RTC 模块、存储器模块、 4G 通信、以太网通信、 UART 串口以及 AI 模块进行了驱动程序和 应用程序设计。将各个模块设计为不同的任务,龙芯 RTU 软件设计流程图如图 4-1 所示。 4.2 嵌入式 Linux 开发环境 4.2.1 嵌入式 Linux 系统的构建 随着微处理器的迅速发展,各种成本低廉、结构紧凑的 CPU 与外围连接形成了稳定 可靠的硬件架构。二十世纪八十年代末以来, Vxwork 、 pSOS 、 Neculeus 和 Windows CE 等嵌入式操作系统相继出现逐步成熟起来。然而,对于成本要求尽可能低廉的嵌入式领 域的产品,此类针对商用而专门研发的操作系统的价格相对高昂,难以接受。此外,嵌 入式领域的产品研发对操作系统的源代码是否开源也有较高的需求,开源的操作系统代 码更能激发嵌入式领域研究人员的创造激情。而且,从上层应用程序开发人员的角度考 虑,做嵌入式系统的开发的操作系统的简洁程度、界面是否友好、价格是否低廉、系统 移植性高不高等都是非常关键的因素。随着 1991 年引入 Linux 系统, Linux 系统已发展 成为在计算机行业发挥核心作用的项目,除了在台式机和服务器系统上使用外, Linux 系 统还构成了 android 操作系统的基础,该操作系统几乎已在 15 亿移动设备上应用 [37] 。究 其原因, Linux 操作系统以其代码开源、高稳定性、软件免费、易于裁剪和移植等得天独 厚的优势 [38] ,在嵌入式系统打开了新的发展局面,因而,嵌入式 Linux 系统成为了众多 开发设计人员的首要选择 [39] 。 在嵌入式系统中, Linux 是一种应用最为广泛的开发环境。代码生成工具、项目管理 工具、版本控制工具、调试工具等是其重要的组成部分。在开发工具中,代码生成工具 是开发的重要组成部分,用于生成嵌入式可执行程序。其他工具可以帮助完成嵌入式开 发并加快开发过程。 对于 Linux 操作系统很多人都只是简单的认为是 linux 内核源码构成的操作系统,其 实, linux 系统应该包含 linux 内核、由 shell 程序、程序库、编译器及工具等组成的 GNU 软件工具包、文件系统和系统库等。这些东西才构成了完整的 Linux 系统,缺一不可。 使用 Linux 作为嵌入式操作系统具有以下优势: ( 1 )适用于多种硬件平台,开发人员通过在硬件平台上研发出原型设计图,再将硬 件设计图移植到实物,目前, Linux 已经被移植到各种硬件平台上。站在开发任务重、时 间紧迫的开发项目和团队的角度来看, Linux 系统降低了软件和硬件的开发复杂度、节 约了研发资金,加快了工作速度,因而 Linux 以其独特的魅力吸引了众多研究开发人员。 ( 2 ) Linux 可以在没有许可证或商业合作的情况下任意配置 Linux 。配置工程十分 自由。 ( 3 )免费、源代码开源这是 Linux 操作系统最吸引嵌入式研发人员的目光的优点。 毫无疑问,相对于其他收费高昂的操作系统,使用 Linux 操作系统的开发成本会大大降 低。 ( 4 ) Linux 内部设有网络支持,网络功能相当强大。 ( 5 ) Linux 模块化程度较高,易于添加各种小部件。 基于 Linux 操作系统的以上优势,开发者在实际运用系统的过程中,可根据开发需 求对 Linux 系统展开裁剪或者移植等工作,以便于该系统获得稳定的运行环境,系统间 良好的兼容性。嵌入式 Linux 系统通过其出色的性能、易于裁剪和开发的优势支持各类 架构的 CPU 和硬件平台的研究开发。 嵌入式 Linux 操作系统主要由 BootLoader 、内核以及根文件系统组成 [39] 。如图 4-2 所示。 PMON 是一个主要用于嵌入式系统的开源软件,具备基本输入输出系统( Bios )和 引导程序( BootLoader )的某些功能 [40,41] 。此外, PMON 支持 BIOS 启动配置,内核加 载,程序调试,内存寄存器显示、设置和内存反汇编等功能 [42] 。基于龙芯的系统在 PMON 上做了大量的改进工作,使得作为基本输入输出系统和引导程序的替代系统的 PMON 更 加完善。 对于 Linux 应用软件的开发人员来说,基于设计需求,首先要对复杂的 Linux 内核 进行配置,即可裁剪出满足设计需求的量身定制的内核,然后对内核进行编译,将编译 好的内核移植到硬件目标板中进行操作。 Linux 内核的编译过程主要分为两步:第一要 进行根据需求配置内核。第二进要行内核编译。 Linux 内核启动之后,因系统要实现最基本的一些功能,所以首先必须加载根文件 系统。根文件系统制作完成后,再使用各类文件系统镜像制作工具制作根文件系统目录 对应类型的文件系统镜像。 4.2.2 在主机搭建 Linux 环境 在嵌入式 Linux 系统开发过程中,毕竟硬件电路板上的支持软件的开发和调试的各 类系统资源有限,往往无法进行软件开发和调试,因此本文将 PC 机上装有 Linux 的发 行版本 Ubuntu 的 VMware Workstation 虚拟机作为交叉编译环境的主机 [41] ,进而采用串 口通信或者以太网通信等通信方式进行软件开发与调试工作。 ( 1 )安装虚拟机 在没有虚拟机出现之前,开发嵌入式 Linux 系统通常会在一台机子上安装双操作系 统,当进入程序编辑、程序编译、程序调试时要进入到 PC-Linux 系统中,当进行调试或 配置、文档编写时要进入到 Windows 。双系统的切换就是启动计算机再启动计算机或者 是将 Linux 系统或 windows 系统分装到两台计算机上,两者之间通过共享的方式进行数 据传输。虚拟机出现后,双系统就犹如一台电脑上的两个软件或两个磁盘而已。通常是 在 Win10 系统中通过虚拟机软件模拟 PC 机,再在虚拟机软件中搭建 Linux 系统 [43] 。 VMware Workstation 是一个虚拟 PC 的软件,由于我们的日常使用的大多数计算机 都安装了 Windows 操作系统, VMware workstation 虚拟机可以在现有的 Windows 操作系 统上创建一个甚至多个新的硬件环境,即模拟一台甚至多台 PC 机。 Linux 操作系统即可 在搭建好的虚拟的 PC 机上运行。本文安装的是 VMware Workstation 15.5 Pro 版本的虚 拟机。如图 4.3 所示是安装后的虚拟机界面。 ( 2 )安装 Ubuntu 系统 桌面环境、数据库、媒体播放器、办公套件等是目前 Linux 的发行版本必不可少的 应用程序。目前, Ubuntu 作为一款相当完善的 Linux 操作系统发行版本,以其出色的桌 面应用环境和便于开发等优势备受嵌入式系统开发人员的青睐。本文安装的 Ubuntu16.04 LTS 版本,安装好后的 Ubuntu 桌面环境如图 4-4 所示。 要开发嵌入式 Linux 的应用软件,由于该开发过程是要通过跨平台开发,所以应该 搭建一个交叉开发环境 [44] 。进行应用软件开发的通用计算机一般为装有 Windows 操作系 统的 PC 机。在 windows 平台上开发应用程序的很多程序并不了解交叉编译器,因为它 已经集成到很多的 IDE 软件中。交叉编译器是在一个计算机环境中运行并生成在另一个 环境中可以运行的代码的独立的编译工具。这个编译过程就叫交叉编译。通俗点讲,即 需要在 A 平台上编译生成 B 平台上的可执行程序。如果要运行在嵌入式 Linux 开发平台 上的为嵌入式目标板上编写的源代码,则需要在运行前使用交叉编译器对其进行编译。 要进行交叉编译,我们必须在宿主平台上安装相应的交叉编译工具链,我们编写的源代 码经过交叉编译工具链编译后,即可在相应的目录找到在嵌入式目标板中可运行的程序。 我们目前采用的是针对平台编译好的二进制工具包为 buildroot-2016.02-glibc-gcc-4.7.x mips32-nofpu.tar.bz2 ,把制作好的交叉工具解压至 Linux 系统的根目录下,此外,还要设 置工具链的路径到系统环境变量。如图 4-5 所示,我们可看到 gcc 版本号为 4.7.4 ,即为 建立好的交叉编译环境。
以上是关于基于龙芯 CPU 的气井控制器的软件设计的主要内容,如果未能解决你的问题,请参考以下文章
基于龙芯 2K1000 的嵌入式 Linux 系统移植和驱动程序设计