02_2440soc_内存地址映射和选择,寄存器地址的选择

news2025/2/27 20:49:50

大多数arm芯片从0开始启动
在这里插入图片描述

nand_flash控制器外接nand_flash 256M
cpu直接接nor_flash 2M
nor_flash启动时候 nor_flash上面烧了bin文件 nor_flash基地址为0
cpu直接读nor上的第一个指令(前4字节),执行
cpu继续读取其他指令 执行
如果使用nor启动,片内的sram的地址就是 0x4000,0000

nand_启动 片内4kram 基地址为0()cpu都从0开始启动
2440硬件把nand前4K内容复制到片内内存sram,cpu从0地址开始启动 从0地址取出第一条指令
如果用 nand启动0地址对应的是片内的ram 这时候nor_flash不能访问 也就是设置nand_flash 就用不了nor_flash

cpu写的寄存器地址,映射关系

soc上面有很多的控制器 比如 gpio控制器 uart控制器
cpu根据地址把某些值写给某些寄存器 这些对应的控制器就会发出特定的波形 满足特点的时序

因为根据地址把某些值写个某些寄存器 所以有一个新的控制单元 叫内存控制器
cpu把地址给内存控制器 内存控制来选择不同的模块 模块把数据给内存控制器 内存控制器再给cpu

一般接口中cpu发送的信号并不会传输到外面 (如gpio的管脚上拉下拉) 只是给到gpio控制器
特殊接口中 --> 内存接口(nor flash 网卡 sdram这些接口 注意nandflash不是) cpu发出来的地址会直接传给这个设备

问:cpu的地址总线和数据总线 都连接到了 nor flash 网卡 sdram 怎么才会互不干扰

答有个片选引脚 只有片选引脚状态置位 说明地址和数据总线在这上面交互

问: 给个全部图

gpio控制器 uart控制器 iic控制器 到片外的 sdram dm9000 norflash 都参与cpu的统一编址
cup也能访问nand flash控制器 nand_flash不属于cpu统一编址
nand_flash从原理图看 数据线可以从cpu得到 但是地址线没有 nand_flash不参与cpu统一编址 但是nand_flash 也在data线上
为了数据线上有数据的时候 nand_flash不受干扰 也有nand_flash一个片选信号 被nand_flash控制器控制
只有cpu访问nand_flash控制器的某个寄存器 这个nand_flash 片选信号才有用
浅蓝色都参与cpu的统一编址,cpu发送的地址能直接给这些设备 ,浅绿色通过控制器进行控制
在这里插入图片描述

问: 谁来控制片选引脚?

答:内存控制器 当cpu根据指令发出地址信号 发到内存控制器 内存控制器根据地址来控制片选引脚

问:地址和片段信号的关系怎么确认

答:datasheet 第五章有个memory_control
当使用norflash 启动时候 如果地址在 0x0000_0000~ 0x0800_0000 内存控制器会让 nGCS0输出低电平
使用nandfalsh启动时候 CPU认为的0地址 是片内的4kram 如果想获取nand_flash的0地址 只能操作nand_flash控制器去发送

自己的感觉是什么

https://www.eetopic.com/article/61725.html
自己感觉是 cpu发出的全部寄存器地址都要给内存控制器,内存控制器根据寄存器地址 来进行数据的输出和拿取
低于4000_000 当作内存,需要调用内存控制器的时序在数据线和地址线进行时序上的一些控制 更改数据传输给内存芯片
获取内存芯片的数据
如果高于这个地址,就是datasheet中的其他控制器寄存器地址,就把这个数据原封不动的给其他控制器了

问:地址的范围有多大呢

如图上的 0x0000_0000~ 0x0800_0000 = 134217728b(字节)/1024/1024 = 128M
所以每个片选信号能选择的空间范围为 128M = 2^27 也推算出至少需要 A0~A26 27根线才能访问完一个片选信号的空间

问:cpu怎么发出地址信号,为什么寄存器是32位的 数据线只有27根
比如ldr r0 = addr
	str r1 [r0]
	这些指令会让cpu把32位的addr 发给内存控制器
	如果addr的范围是偏外的内存 内存控制器就会 发出块内存的片选信号 同时发出addr0,addr1...addr26 发送到外设
	所以cpu确实发送到32位地址,但是内存控制器能力有限 只能控27根
问:为什么soc上的laddr1接到 芯片上的laddr0,为什么不是一一对应的接入呢
当使用8bitrom的时候 一一对应 使用两块芯片拼起来
一次读取的为16bit rom  因为拼接后读取的长度不一样 地址有所增加
反正cpu把想要的地址发送给内存控制器  内存控制器根据地址进行组装
不做过多解释
问:怎么根据原理图确定芯片访问地址

看见原理图上面片选引脚名字 对应datasheet里面 比如 :nGCS0
1.根据片选信号确定基地址
如nor_flash使用片选nGCS0 基地址为 0
用到A20~A0 21条线 a1~a20接到cpu发出的线,a0给内存控制器选择低八位还是高八位,共2^21 =2M
地址选中 范围 base~base+2^21 = 0~001f_ffff 访问nor_flash

	如网卡dm9000使用片选nGCS4 基地址为 0x2000_0000
		只接了addr2,没有addr1和0  还接了data15~data0(16位) ,最终内存控制器用addr0分辨低8位还是高8位
		所以用到addr2和addr0 范围是 base +二进制0b00000000~  base +二进制0b00000101 = 0x2000_0000 ~ 0x2000_0005
			地址选中0x2000_0000 ~ 0x2000_0005 访问dm9000网卡 
	如sdram使用片选nGCS6	  基地址为 0x3000_0000
		地址线接了laddr2~laddr14,laddr24,laddr25,17条地址线 2^17 =128k,但是因为分为列地址和行地址,地址总线用两次
			cpu只是发送地址,给内存控制器进行选择发往哪个内存芯片,因为是sdram,内存控制器还要拆分为列地址和行地址再进行发送
2.根据连接的地址线确定范围

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

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

相关文章

实战:内存分配与回收策略

java技术体系的自动内存管理,最根本的目标是自动化地解决两个问题:自动给对象分配内存以及自动回收分配给对象的内存。 1 前置知识 1.1 Minor GC 与Full GC Minor GC: 新生代GC,是指发生新生代的垃圾收集动作。Minor GC非常频繁&#xff0…

mac m1安装stable-diffusion

安装stable-diffusion 安装Homebrew安装python及其他依赖下载model安装Stable-Diffusion-WebUI执行./webui.sh作图http://127.0.0.1:7860 安装Homebrew 查询是否安装 brew -v安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.…

14.网络爬虫—selenium详讲

网络爬虫—selenium详讲 一selenium简介Selenium 的优点 二安装模块三设置浏览器驱动确认版本:查找对应驱动下载驱动 四使用模块selenium选取元素方法selenium嵌套页面元素定位selenium网页下拉selenium下拉表选择selenium行为链selenium等待 五错误解决方案六结束语…

[oeasy]python0135_python_语义分析_ast_抽象语法树_abstract_syntax_tree

语义分析_抽象语法树_反汇编 回忆 上次回顾了一下历史 python 是如何从无到有的看到 Guido 长期的坚持和努力 python究竟是如何理解 print(“hello”)的?这些ascii字母如何被组织起来执行? 纯文本 首先编写Guido的简历 print("1982------Gui…

LeetCode刷题集(五)(LeetCode1.两数之和)

学习目标: 掌握LeetCode第一题两数之和 学习内容: LeetCode第一题两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会…

ASEMI代理AD9951YSVZ原装ADI车规级AD9951YSVZ

编辑:ll ASEMI代理AD9951YSVZ原装ADI车规级AD9951YSVZ 型号:AD9951YSVZ 品牌:ADI/亚德诺 封装:HTQFP-48 批号:2023 引脚数量:48 安装类型:表面贴装型 AD9951YSVZ汽车芯片 特征 400 MS…

shell编程实例 — 实现4G开机自动运行,实时监测,断线自动重拨》

shell编程实例 — 实现4G开机自动运行,实时监测,断线自动重拨》 往事只能回味味道 于 2021-11-20 02:30:53 发布831 收藏 1 分类专栏: shell 文章标签: ubuntu linux udp 版权 ​编辑shell专栏收录该内容 3 篇文章0 订阅 订阅…

Mysql日志系统-InnoDB引擎层

一、redo log日志 接下来的两个日志,是innodb为解决不同问题而引出的两类日志文件。 redo log(重做日志)的设计主要是为了防止因系统崩溃而导致的数据丢失,其实解决因系统崩溃导致数据丢失的思路如下: 1、每次提交事务…

SpringBoot解决用户重复提交订单(方式二:通过Redis实现)

文章目录 前言1、方案实践1.1、引入Redis依赖1.2、添加Redis环境配置1.3、编写获取请求唯一ID的接口,同时将唯一ID存入redis 1.4、编写服务验证逻辑,通过 aop 代理方式实现1.5、在相关的业务接口上,增加SubmitToken注解即可 2、小结 前言 在…

华润数科、京东科技、京彩未来携手共进,求解“科技×产业”最大值

4月18日,华润数科、京东科技、京彩未来三方代表在中国深圳签署三方合作协议。面向产业数字化的市场机遇,华润数科物联网事业部总经理刘楚明先生表示,华润数科作为华润集团重点培育的数字科技业务单元,基于技术优势及资源整合能力&…

在SAP中使用QUERY

在SAP中使用QUERY 一、SAP query介绍 ​ QUERY是SAP提供的方便无编程基础用户的报表工具,使用图形化的界面,让用户托托拽拽就能轻松完成报表编写。我们可以将Query理解成QuickView的高级版本,它在QuickView的基础上增加的功能有&#xff1a…

一、摄影基础课

目录 第一章 控制曝光1. 曝光及曝光三要素1.1 曝光1.2 光圈1.3 快门1.4 感光度(ISO)1.5 曝光三要素之间的关系 2. 曝光模式3. 测光模式4. 曝光补偿 第二章 控制对焦1. 对焦区域2. 对焦模式 第三章 控制色彩 第一章 控制曝光 1. 曝光及曝光三要素 1.1 曝…

尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】

视频地址:【尚硅谷】大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】尚硅谷大数据技术Zookeeper教程-笔记02【服务器动态上下线监听案例、ZooKeeper分布式锁案例、企业面试真…

外包干了4年,直接废了···

有一说一,外包没有给很高的薪资,是真不能干呀! 先说一下自己的情况,大专生,19年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了&#xff0…

[java/初学者]java常用API(1)——包装类

前言 在学习本课题之前,我们首先需要知道什么是API。 API,即Application Programming Interface,中文名称是“应用程序接口", 这些接口就是"jdk所提供"给我们使用的类,我们不需要去深究它是如何实现…

STM32+EC20实现4G无线通信

EC20是一款集成度非常高的4G无线通信模块,支持多种常见通信频段,能满足几乎所有的M2M(MachinetoMachine)应用需求。模块支持TCP/UDP/FTP等一众网络协议,内置多星座高精度定位GNSS接收机,快速提供准确的经纬度信息,UART…

vscode java环境扩展

下载安装jdk: Java Downloads | Oracle 下载安装maven: Maven – Download Apache Maven windows系统选择 Binary zip archive maven目录中的conf文件中有一个settins.xml文件 镜像&#xff08;mirrors&#xff09;二选一 <mirror><id>nexus-aliyun</…

影视动画设计有些SCI期刊推荐? - 易智编译EaseEditing

以下是几本影视动画设计方向的SCI期刊&#xff1a; ACM Transactions on Graphics: 该期刊是ACM&#xff08;Association for Computing Machinery&#xff0c;美国计算机协会&#xff09;下的一个子刊&#xff0c;涵盖了计算机图形学和交互技术等领域&#xff0c;也包括了动…

虚拟化技术 — 硬件辅助的虚拟化技术

目录 文章目录 目录硬件辅助的虚拟化技术概览CPU 虚拟化技术基于二进制翻译的全虚拟化技术&#xff08;Full-Virtualization&#xff09;需要改造 GuestOS 的半虚拟化技术&#xff08;Para-Virtualization&#xff09;Intel VT-x 硬件辅助的虚拟化技术&#xff08;Hardware-ass…

智芯Z20K11x串口printf重定向

智芯Z20K11x串口printf重定向 目录 智芯Z20K11x串口printf重定向前言1 串口代码编写2 Keil勾选MicroLIB库结束语 前言 智芯Z20K11x系列是基于ARM CORTEX M0的中低端微控制器&#xff0c;高达256K P FLASH 128K D FLASH&#xff0c;2路CANFD接口&#xff0c;4路UART/LIN接口&a…