[嵌入式系统-6]:龙芯1B 开发学习套件 -3-软件层次架构

目录

一、龙芯软件架构

[1.1 通用软件架构](#1.1 通用软件架构)

[1.2 龙芯软件架构](#1.2 龙芯软件架构)

[1.3 龙芯各种应用程序](#1.3 龙芯各种应用程序)

[1.4 龙芯SOC芯片硬件:龙芯1B](#1.4 龙芯SOC芯片硬件:龙芯1B)

[1.5 PMON软件](#1.5 PMON软件)

[1.6 龙芯IDE管辖的软件](#1.6 龙芯IDE管辖的软件)

[(1)CPU Core驱动程序](#(1)CPU Core驱动程序)

(2)SOC芯片外设驱动程序

(3)实时操作系统层

(4)glibc等标准库

(5)龙芯IDE第三方库

(6)应用程序

二、龙芯IDE裸机应用程序结构

[三、龙芯IDE RTThread应用程序结构](#三、龙芯IDE RTThread应用程序结构)

[3.1 RTThread](#3.1 RTThread)

[3.2 FreeRTOS](#3.2 FreeRTOS)


一、龙芯软件架构

1.1 通用软件架构

1.2 龙芯软件架构

1.3 龙芯各种应用程序

1.4 龙芯SOC芯片硬件:龙芯1B

龙芯1B是中国龙芯(Loongson)系列SOC(System on Chip)芯片的一种型号。以下是关于龙芯1B芯片的一些基本硬件信息:

  1. 处理器核心:龙芯1B采用自主设计的Loongson 1处理器核心,采用MIPS32指令集架构。

  2. 频率:1B芯片的工作频率通常在组件版本和设计参数间有所变化,常见的频率范围为200 MHz至400 MHz。

  3. 缓存:1B芯片具有L1指令缓存和L1数据缓存,每个缓存块大小为16KB。

  4. I/O接口:1B芯片提供了一些常见的外设接口,包括串行接口(UART)、并行接口(GPIO)以及SPI等。

  5. 内存控制器:1B芯片支持DDR1 SDRAM,最高支持的频率为133 MHz。

  6. 图形处理器(GPU):1B芯片未集成GPU,对于图形处理通常需要外部附加芯片或通过软件实现。

需要注意的是,这些硬件规格可能根据具体版

1.5 PMON软件

龙芯的PMON是指"Processor Monitor",是一款用于Loongson处理器的引导加载程序(Bootloader)。PMON负责引导启动计算机系统,并提供一些调试和配置功能

PMON的主要功能包括:

  1. 引导加载: PMON负责从存储设备(如硬盘、闪存等)中加载操作系统其他引导程序,并将控制权交给所加载的程序

  2. **系统监控:**PMON可以监控系统的状态和运行情况,并提供一些调试功能,例如查看和修改寄存器值、读取和写入内存等。

  3. 系统配置: PMON可以对系统进行一些基本的配置 ,例如设置启动选项、设定引导顺序、配置外设等。

  4. **固件升级:**PMON允许用户通过固件升级功能更新龙芯处理器的引导加载程序和相关固件。

需要注意的是,PMON是针对Loongson处理器架构设计的特定软件,主要用于Loongson系列计算机系统。不同版本的Loongson处理器和计算机系统可能会使用不同版本的PMON软件。因此,在具体使用和配置PMON时,可能需要参考相关的文档和指南,以确保正确操作。

1.6 龙芯IDE管辖的软件

(1)CPU Core驱动程序

CPU Core驱动程序是指用于操作系统与特定的处理器核心进行通信和协作的驱动程序。它负责初始化、配置和控制处理器核心以及与之相关的硬件资源。

CPU Core驱动程序的主要功能包括:

  1. **初始化和配置:**CPU Core驱动程序负责初始化处理器核心,设置它的工作状态、特性和功能。这包括设置处理器寄存器、启动时钟和中断等。

  2. **电源管理:**CPU Core驱动程序可能负责管理处理器核心的电源管理功能,包括频率调节、低功耗模式和休眠状态等。它可以控制处理器的运行模式,以提供最佳的性能和功耗平衡。

  3. **中断处理:**CPU Core驱动程序负责处理来自处理器核心的中断信号,并将其分发给相应的中断处理程序。它处理和管理中断请求,确保适当的响应和处理。

  4. **缓存管理:**CPU Core驱动程序可能负责管理处理器核心的缓存,包括设置缓存策略、刷新和失效操作,以提高数据访问效率和性能。

  5. **时钟管理:**CPU Core驱动程序可以管理和控制处理器核心的时钟,包括调整时钟频率和时钟源的选择。

CPU Core驱动程序的实现方式和功能范围会因处理器架构和硬件厂商的不同而有所差异。操作系统通常提供通用的CPU Core驱动程序,以支持不同的处理器架构和型号。对于特定的处理器核心和硬件配置,可能需要额外的定制或适配工作。

(2)SOC芯片外设驱动程序

SOC芯片外设驱动程序是针对特定系统芯片(SOC)中的外设组件(如UART、SPI、I2C、GPIO等)而编写的软件程序。它们负责初始化、配置和控制SOC芯片中的外设,使其能够与系统和操作系统进行正确的通信和交互。

SOC芯片外设驱动程序的主要功能包括:

  1. 初始化和配置:外设驱动程序负责初始化外设,包括设置其工作模式和寄存器配置,以适应特定的应用需求。

  2. 数据传输和操作:驱动程序通过提供接口函数,使操作系统能够与外设进行数据传输和操作。它们实现了读写外设寄存器或缓冲区的功能,以实现数据的输入和输出。

  3. 中断处理:某些外设支持中断机制,外设驱动程序负责检测和处理外设的中断信号。驱动程序会响应外设的中断请求,并通过相应的中断处理程序处理中断。

  4. 电源管理:SOC芯片外设驱动程序可能支持外设的电源管理功能,包括通过控制外设的电源模式和电源管理寄存器来控制功耗和休眠状态。

  5. 错误检测和处理:外设驱动程序会监测外设的状态和运行异常情况,并提供错误检测和处理机制,以确保外设的正确运行。

SOC芯片外设驱动程序的具体实现方式和功能范围会因SOC芯片的型号和厂商的不同而有所差异。SOC芯片供应商通常会提供相应的开发者文档、软件包和示例代码,以帮助开发者编写和集成外设驱动程序。

(3)实时操作系统层

RT-Thread、FreeRTOS和uCOS是三个常用的实时操作系统(RTOS),主要用于嵌入式系统开发。它们都提供了实时任务调度、中断处理、任务通信和内存管理等功能,以帮助开发者在嵌入式系统中有效管理和控制任务和资源。

以下是对这三个操作系统的简要介绍:

  1. RT-Thread: RT-Thread是一个开源的实时操作系统,具有小巧、高效、可裁剪和可移植的特性。它支持多种处理器架构和各种外设,可以适应不同的嵌入式硬件平台。RT-Thread提供了一套完整的组件库,包括任务管理、信号量、消息队列、定时器和文件系统等。

  2. FreeRTOS: FreeRTOS是一个免费的实时操作系统内核,广泛用于嵌入式系统中。它具有小巧、可移植和可裁剪的特点,适用于使用RAM和ROM有限的嵌入式设备。FreeRTOS提供了多任务调度、中断处理、任务通信和内存管理等核心功能,同时具有低延迟和低资源占用的优势。

  3. uCOS:uCOS是嵌入式实时操作系统(RTOS)的商业版本,也有一个开源版本uCOS-II 。它是一个可移植、可裁剪和高度可靠的操作系统,广泛用于嵌入式系统和实时应用中。uCOS提供了任务管理、事件触发、内存管理和通信机制等功能模块,支持多任务调度和优先级管理

这三个实时操作系统都有较强的嵌入式系统支持,适用于不同类型的应用和硬件平台。选择合适的操作系统取决于具体的应用需求、项目要求以及开发者的经验和偏好。建议在选择之前,先了解相关操作系统的特性、文档和社区支持,以便作出更准确的决策。

(4)glibc等标准库

glibc(GNU C Library)是一种C语言标准库,它是GNU计划的一部分,提供了许多用于编程的标准函数和接口。glibc是一个广泛使用的C库,被用于大多数基于Linux的操作系统和许多其他Unix-like系统。

glibc提供了一系列常用的函数,包括字符串处理、文件操作、内存管理、数学运算、时间和日期处理等。它还提供了操控进程和线程、网络编程和套接字操作等系统级功能的接口。

除了glibc,还有其他一些常见的标准库,包括:

  1. libc:libc是C语言的标准库,提供了基本的C语言函数和类型定义。它定义了C语言的基本操作和数据类型,是其他C库和应用程序的基础。

  2. libstdc++:libstdc++是C++语言的标准库,提供了一组用于C++编程的类和函数。它提供了许多C++标准函数和容器,包括字符串、数组、列表、映射等。

  3. libm:libm是数学库,提供了数学运算函数,如三角函数、指数函数、对数函数等。

这些标准库通常由操作系统或编译器提供,并与操作系统的API和编程语言的规范相匹配。开发人员可以使用这些标准库来编写跨平台、可移植和可靠的应用程序,因为它们已经被广泛测试和使用,并且具有良好的兼容性和稳定性。

(5)龙芯IDE第三方库

龙芯IDE(Integrated Development Environment)是一个用于开发龙芯(Loongson)处理器架构的嵌入式系统的集成开发环境。虽然我无法提供详细的信息,但是一般来说,第三方库的可用性和支持取决于龙芯IDE版本以及龙芯处理器架构的特定要求。

对于任何开发平台和工具链,第三方库通常是由开发者社区或厂商提供的,用于扩展和增强开发环境的功能。这些库可能包括用于图形界面、网络通信、数据库操作、音频处理、图像处理等不同领域的函数和模块。

在寻找与龙芯IDE兼容的第三方库时,你可以考虑以下几个途径:

  1. 龙芯IDE文档:查阅龙芯IDE相关的官方文档和用户手册,以寻找关于第三方库的详细信息。这些文档通常会提供有关支持的库和资源链接。

  2. 开发者社区:参与龙芯开发者社区,例如论坛、邮件列表、社交媒体等。这些社区是交流和分享经验的好地方,你可以了解其他开发者使用的第三方库,并获取相关建议和资源。

  3. 特定项目资源:如果你正在进行特定领域或特定应用的开发,你可以寻找与该项目相关的第三方库。这些库通常由具体的项目或领域专家维护,在龙芯IDE中使用这些库可能会得到更好的支持和集成。

  4. 开源生态系统:龙芯是基于开源原则的处理器架构,因此,你还可以查看开源软件库和项目,以寻找适用于龙芯IDE的第三方库。开源社区通常提供了许多开发工具和库,你可以找到与龙芯架构兼容的库。

需要注意的是,具体可用的第三方库取决于龙芯IDE的版本和编译工具链的支持情况。因此,请确保查阅相关文档、官方资源或与专业人士交流,以确保你选择的库与你的开发环境兼容。

(6)应用程序

当涉及到龙芯IDE上的应用程序开发时,你可以根据具体的需求和应用场景选择不同的开发方法和工具。以下是几种常见的应用程序开发方法:

  1. C/C++编程:C/C++是传统的应用程序开发语言,可以使用龙芯IDE中提供的编译器和调试工具来进行开发。你可以使用C/C++语言编写应用程序的逻辑和功能,并使用IDE提供的工具进行构建、调试和测试。

  2. Python编程:Python是一种易学易用的高级编程语言,也可以在龙芯IDE上进行开发。你可以使用Python编写应用程序的脚本和逻辑,利用IDE提供的Python解释器和工具来运行和测试应用。

  3. Java编程:如果你想开发基于Java的应用程序,你可以使用适用于龙芯IDE的Java开发工具,比如Eclipse IDE。这样,你可以使用Java语言编写跨平台的应用程序,并利用IDE的功能进行开发和调试。

  4. Web应用程序开发:对于Web应用程序开发,你可以使用龙芯IDE中的Web开发工具,如HTML、CSS和JavaScript编辑器等。你可以使用这些工具编写网页界面和前端逻辑,并配合后端服务器进行开发。

  5. 嵌入式应用程序开发:龙芯处理器架构主要用于嵌入式系统开发,因此你也可以使用龙芯IDE进行嵌入式应用程序的开发。你可以使用C/C++语言编写底层驱动程序、任务逻辑和RTOS相关的代码,利用IDE进行编译、调试和下载到目标硬件平台。

这些只是一些常见的应用程序开发方法,实际上还有更多的选择。具体选择哪种方法取决于你的应用需求、开发经验和个人偏好。在进行应用程序开发时,确保参考相关的文档、教程和资源,以便了解和使用龙芯IDE中的功能和工具。

二、龙芯IDE裸机应用程序结构

三、龙芯IDE RTThread应用程序结构

3.1 RTThread

RTThread继承了特定CPU内核的初始化!!!

3.2 FreeRTOS

相关推荐
小蜗牛慢慢爬行1 小时前
Hibernate、JPA、Spring DATA JPA、Hibernate 代理和架构
java·架构·hibernate
思忖小下3 小时前
梳理你的思路(从OOP到架构设计)_简介设计模式
设计模式·架构·eit
一个儒雅随和的男子10 小时前
微服务详细教程之nacos和sentinel实战
微服务·架构·sentinel
腾讯云开发者10 小时前
AI时代,需要怎样的架构师?腾讯云架构师峰会来了!
架构
Hello Dam13 小时前
面向微服务的Spring Cloud Gateway的集成解决方案:用户登录认证与访问控制
spring cloud·微服务·云原生·架构·gateway·登录验证·单点登录
AI人H哥会Java20 小时前
【Spring】Spring的模块架构与生态圈—Spring MVC与Spring WebFlux
java·开发语言·后端·spring·架构
小屁不止是运维20 小时前
麒麟操作系统服务架构保姆级教程(二)ssh远程连接
linux·运维·服务器·学习·架构·ssh
不会写代码的女程序猿20 小时前
关于ETL的两种架构(ETL架构和ELT架构)
数据仓库·架构·etl
剑盾云安全专家1 天前
AI加持,如何让PPT像开挂一键生成?
人工智能·aigc·powerpoint·软件
Leoysq1 天前
深度学习领域的主要神经网络架构综述
深度学习·神经网络·架构