轻量实时操作系统学习(二)

news2024/11/24 2:04:43

306xH系列架构

主系统包含以下部件:

  • maters:RISC-V CPU、DMA、CORESIGHT
  • slaves:嵌入式SYSRAM、嵌入式Flash memory、系统外设

这些模块通过AMBA总线架构互连,如图所示。
在这里插入图片描述

  • TCM_BUS:此总线将RISC-V CPU的TCM接口与存储器互连,其中DTCM优先级高于ITCM。
  • SYS_BUS:此系统总线实现RISC-V CPU、DMA和CORESIGHT的主接口访问系统外设与DMA主接口经RISC-V CPU TCM接口访问存储器的通路。
  • PERI_LS:此外设总线将低速外设连接到SYS_BUS,时钟频率为SYS_BUS时钟频率的1/2。
  • PERI_HS:此外设总线将高速外设连接到SYS_BUS,时钟频率为SYS_BUS时钟频率。

地址空间映射

程序存储器、数据存储器、寄存器和I/O端口排列在同一个线性(即地址连续)的4GB地址空间内。
各字节按小端格式对齐(字中编号最低的字节被视为该字的最低有效字节,而编号最高的字节被视为最高有效字节)。

嵌入式SYSRAM

嵌入式SYSRAM能够以最大系统时钟频率按字节、半字(16位)或全字(32位)访问,无需等待周期。
SYSRAM支持奇偶校验功能,数据总线宽度为36位,其中有4位用于奇偶校验(每字节1位)。奇偶校验位在写入SYSRAM时进行计算和保存,然后在读取时自动进行校验。如果某一位失败,则将生成校验错误中断。该错误也连接到APT0~8的系统事件apt_evtsys3,用于输出保护。系统控制器SYSCTRL1的SYSRAM_ERR寄存器sysram_parity_err位域存放该SYSRAM奇偶校验错误标志。
SYSRAM奇偶校验功能默认开启,建议在代码开始处使用软件初始化整个SYSRAM,以免在读取非初始化位置时出现奇偶校验错误。

系统启动与固件升级

芯片内置启动ROM(BOOTROM),当芯片复位撤销后CPU固定从BOOTROM开始执行启动引导程序。芯片支持通过UART0或JTAG对EFLASH内容进行固件升级(烧写)。

启动方式

芯片支持两种启动模式:升级模式与正常启动模式,由BOOT管脚上电锁存值决定。可通过系统控制器SYSCTRL0的SC_SYS_STAT寄存器update_mode位域查询当前启动模式。此状态标志可软件清除。

  • 正常启动模式:系统将直接从EFLASH主存储区启动用户程序。但存在以下两种状态的任意一种时,CPU将停止启动系统,此时可以通过JATG/SWD接口调试(或烧写)系统。
  • 升级模式:BOOTROM程序将初始化UART0,与上位机通信并接收固件程序。

处理器

308xH系列产品的处理器是一个基于RISC-V ISA设计的32-bit MCU核,具有以下特点:

  • 支持RV32IMCF指令集+自定义指令集。
  • 支持Machine和User特权模式。
  • 支持物理内存保护(Physical Memory Protection, PMP)。
  • 单发射3级顺序流水线微架构。
  • 支持静态分支预测。
  • 支持最大4GB Byte地址空间,具体可访问范围由芯片总线架构决定。
  • 支持通过ITCM接口访问指令和数据。
  • 支持通过DTCM接口访问数据。
  • 支持系统通过外部AHB总线接口(AHBS)访问ITCM和DTCM。
  • 支持AHB外设总线(AHBM)访问系统外设寄存器。
  • 支持小端数据排布。
  • 支持Direct和Vector中断模式。
  • 支持WIFI低功耗模式。
  • 支持RISC-V标准调试机制。

通用寄存器

RISC-V RV32I基础指令集定义了32个23bit整型通用寄存器加上32bit的PC寄存器,对于支持单精度浮点扩展(RISC-V标准F扩展)的处理器,额外定义了32个32bit的浮点通用寄存器。

**PC寄存器指示当前执行指令的地址。**除了整型寄存器X0为恒0值,对X0的写操作会被忽略,其它通用寄存器并无特殊的硬件规格差异,理论上可以互相替换使用。但RISC-V组织为了软件编程的统一性,指定了软件使用通用寄存器的一些约定,如X1作为函数调用的返回寄存器,X2作为栈指针,X3作为全局指针等。同时还约定了软件在函数调用的时候,哪些寄存器作为传入参数或返回值,哪些寄存器属于调用者(Caller)进行入栈保护,哪些寄存器属于被调用者(Callee)进行入栈保护。

浮点寄存器是独立于整型寄存器的,RISC-V规定每一条指令访问的资源是整型寄存器还是浮点寄存器,对于浮点整型转换等指令,可能需要同时用到整型和浮点寄存器。

控制与状态寄存器CSR

控制与状态寄存器CSR是用于控制CPU运行、提供CPU运行状态信息的寄存器。
CSR寄存器具有独立于系统地址空间的地址空间,所以访问系统地址空间的load/store指令并不能用于访问SCR寄存器,RISC-V提供专用的CSR指令用于读写CSR寄存器,包括CSRRW、CSRRS、CSRRC、CSRRWI、CSRRSI、CSRRCI以及一些伪汇编指令。

RISC-V标准根据CSR寄存器的可访问特权模式和是否支持写操作,将CSR寄存器分成几种类别,本处理器支持的CSR涉及到URW、URO、MRW、MRO四种类别属性。

  • URW表示该CSR是用户模式读写寄存器,支持用户模式和机器模式进行读写访问。
  • URO表示该CSR是用户模式只读寄存器,支持用户模式和机器模式进行读访问,而对URO类别的CSR操作发起写操作会触发异常。
  • MRW表示该CSR是机器模式读写寄存器,支持机器模式下进行读写访问,而处于用户模式下进行读写访问会触发异常。
  • MRO表示该CSR是机器模式只读寄存器,只支持机器模式下进行读操作,而任何模式下执行写操作或用户模式下执行读操作都会触发异常。

标准CSR寄存器描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32学习(十四)

低功耗 降低集成电路的能量消耗。 低功耗特性对用电池供电的产品: 更小电池体积(降低了大小和成本) 延长电池寿命 电磁干扰更小,提高无线通信质量 电源设计更简单,无需过多考虑散热问题 STM32具有运行、睡眠、停止和…

【SQL Server】数据库开发指南(八)高级数据处理技术 MS-SQL 事务、异常和游标的深入研究

本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计 【SQL Se…

Flutter 笔记 | Flutter 核心原理(七)The key is the key!

题外话 本文这个标题其实让我想起了电影《蝙蝠侠大战超人:正义黎明》中的一句话,在该片中,从未来穿越回来的闪电侠对蝙蝠侠发出警告: It’s Lois! She’s the key! 【布鲁斯,是露易丝&#xff…

chatgpt赋能python:Python增量备份:保障数据安全,提高效率

Python增量备份:保障数据安全,提高效率 现今,越来越多的企业和个人都需要使用计算机存储数据,这些数据可能是各种各样的,例如文件、数据库、邮件等等,这些数据的安全保障是至关重要的。 正是基于这样的背…

chatgpt赋能python:Python多行转一行:最简便的方法

Python多行转一行:最简便的方法 Python是一个既神奇又神奇(fully magical)的编程语言。但有时候,我们用Python编写的程序会产生多行代码,而需要把这些多行代码转换为一行以便于复制和粘贴。这种情况下,我们…

chatgpt赋能python:Python备份数据库——保障数据安全,防止数据丢失

Python备份数据库——保障数据安全,防止数据丢失 在现代社会,数据被称为新的石油,数据的意义愈发重要。数据的丢失可能会导致不可挽回的损失,给企业造成巨大的财务损失,更为重要的是企业形象的损失。备份数据是保护数据最好的途径…

chatgpt赋能python:Python奇偶求和函数

Python奇偶求和函数 Python是一种简单易学、高效的编程语言,具有丰富的库和工具,让程序员能够快速编写出各种各样的应用程序。Python中的函数可以让程序更加模块化,更加易于维护和扩展。其中,奇偶求和函数是一个很好的例子&#…

chatgpt赋能python:Python培训:成为一名高薪Python工程师

Python培训:成为一名高薪Python工程师 Python已成为当今最流行的编程语言之一,它广泛应用于人工智能、机器学习、数据科学和Web开发等各个领域。许多公司都在寻找经验丰富的Python工程师来开发他们的产品。如果你想成为一名高薪Python工程师&#xff0c…

创客匠人CEO蒋洪波:用门店思维做直播

互联网时代,转型线上做知识付费成为教育培训行业的主流,直播教学成为新型的教学模式受到了广泛认可。很多老师在线下培训深耕多年,知识储备丰富,但想要转型线上又缺少方法,缺少去改变的欲望,怕转型做线上直…

区块链的基本介绍

目录 1、简介 2、区块链的分类 2.1 公有链 2.2 联盟链 2.3 私有链 3、区块链特征 4、区块链结构 5、区块链对记账权利的分配方式 5.1 POW 5.2 PoS 5.3 DPoS 6、Defi、NFT、 gameFi 7、DAPP 7.1 DAPP 的核心要素 8、比特币 8.1 比特币简介 8.2 比特币数字签名…

白话ES搜索相关性问题

之前使用es,更多的是使用term查询,和agg聚合分析。对相关性关注较少。实际上es擅长的是做模糊搜索,相关性搜索。 ES是一个开源的通用的检索工具,能满足百分之八十的需求。相关性这个问题,是一个非常有意思的问题&#…

卡尔曼滤波与组合导航原理笔记(一) 第一部分 滤波的基本概念、递推最小二乘

文章目录 一、滤波的基本概念1、传统数字滤波器2、现代控制中的状态观测器3、最优估计的含义4、温度估计的例子1.问题描述2.分析 二、递推最小二乘 课程链接:https://www.bilibili.com/video/BV11K411J7gp/?p1 参考书目:《捷联惯导算法与组合导航原理》…

搭建本地MQTT服务器实现局域网通信

在这里mqtt就不多做介绍了直接上手怎么搭建本地服务器 一-. 我们先下载一个emqx,我们可以去官网下载免费的 https://www.emqx.io/https://www.emqx.io/ 下载完成之后我们打开这个文件夹 然后进入bin目录在左上角输入cmd然后回车 如果操作成功会来到这个界面 在这…

不压缩打包layui

手动打包 下载layui源码(当前版本2.6.4),并解压缩 下载地址:layui gitee 安装nodejs(v10.24.1) 下载链接 windows-x64 安装cnpm npm install -g cnpm -registryhttps://registry.npm.taobao.org全局安…

Real3D 动画书 jQuery 插件

Real3D FlipBook jQuery Plugin 插件 新 – 用于 REAL3D 动画书 JQUERY 插件的 PDF 到图像转换器 一种将 PDF 转换为图像和 JSON 的工具,用于创建带有链接、文本搜索和文本选择的优化 PDF 活页簿。 使用图像和 JSON 创建的 PDF 动画书加载页面的速度比标准 PDF 动画…

i.MX6ULL点灯

i.MX6ULL点灯 对应底板原理图找到对应的IO引脚号 CCGR寄存器共有七个,分别是0~6。 使能时钟,CCGR0~6这7个寄存器控制着6ULL所有外设时钟的使能。 为了简单,设置CCGR0~6这7个寄存器全部为0xFFFFFFFF,相当于使能所有外设时钟。 …

springboot项目外卖管理 day01-项目搭建以及后台登陆

文章目录 一、软件开发整体介绍1.1、软件开发流程1.2、角色分工1.3、软件环境1.4、技术选型1.5、功能架构1.6、角色 二、环境搭建2.1、数据库的创建2.2、创建springboot项目并添加依赖2.3、配置yml文件2.4、将前端页面配置进resource目录![在这里插入图片描述](https://img-blo…

ec-canvas 在小程序上的使用

文章目录 I. 前言echarts、ec-canvas,在小程序中进行数据可视化的意义 II. 安装ec-canvas1. 下载安装ec-canvas组件2. 配置组件参数 III. 初识ec-canvas1. echarts在微信小程序中的工作原理2. echarts小程序版的局限性与创新点3. 通过一个简单的示例了解ec-canvas的…

chatgpt赋能python:Python备份列表l:保护你的重要数据

Python备份列表l: 保护你的重要数据 当我们谈到数据的安全性时,备份是非常重要的。备份应该是在任何操作之前考虑的,因为在数据丢失或计算机崩溃时,我们需要在短时间内恢复数据。在这篇文章中,我们将讨论Python备份列表l。 什么…

【python技能树】python简介

1 Python定义 Python 是一种简单易学并且结合了解释性、编译性、互动性和面向对象的脚本语言。Python提供了高级数据结构,它的语法和动态类型以及解释性使它成为广大开发者的首选编程语言。 Python 是解释型语言: 开发过程中没有了编译这个环节。类似于…