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

2024-01-31 06:36

本文主要是介绍[嵌入式系统-6]:龙芯1B 开发学习套件 -3-软件层次架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、龙芯软件架构

1.1 通用软件架构

1.2 龙芯软件架构

1.3 龙芯各种应用程序

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

1.5 PMON软件

1.6 龙芯IDE管辖的软件

(1)CPU Core驱动程序

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

(3)实时操作系统层

(4)glibc等标准库

(5)龙芯IDE第三方库

(6)应用程序

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

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

3.1 RTThread

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

这篇关于[嵌入式系统-6]:龙芯1B 开发学习套件 -3-软件层次架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/662869

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06