搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
羊村懒王
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
历届蓝桥杯 青少年编程比赛 科技素养题真题讲解【已更新20套 持续更新】_蓝桥杯小学组真题
2
常用统计建模方法与MATLAB求解_matlab ecdf
3
云计算技术(ICT)课后习题答案_____将一组相关的基于云的 it 资源与云中的其他主体(如非授权用户)隔离开来,
4
OpenStack 部署运维实战_什么是openstack部署和运维经验
5
Redis-缓存问题及解决方案
6
Python实现求文本单词与构建的词典词汇的互信息并计算情感得分_python计算中文文本互信息
7
12年经验老程序员的5次转型
8
armeabi v5 v7a v8a x86对应的so库详解_eabi5
9
docker部署jar包找不到资源文件-jar包报错找不到资源文件_docker拷贝jar文件到临时目录失败
10
php调用c webservice_PHP调用.NET的WebService 简单实例
当前位置:
article
> 正文
关于CC2530存储器映射的讨论_cc2530的idata和xdata
作者:羊村懒王 | 2024-02-06 18:55:46
赞
踩
cc2530的idata和xdata
接触了一个月的zigbee,发现对cc2530的存储器映射还不是很熟悉,所以写这篇文章来和各位高手讨论一下,一下大家能指正我一些理解上的错误。
本文以CC2530的F256为例,即有256kb的flash存储器和8K的sram存储器
一、CC2530里的四种存储空间(结构上划分的存储空间,并不是实际的存储器,是一种理论上的概念)
1. CODE
程序存储器 用处存放程序代码和一些常量
有16根地址总线,所以CODE的寻址范围是 0000H~FFFFH 共64KB
2. DATA
数据存储器 用于存放程序运行过程中的数据
有8根地址总线,所以DATA的寻址空间为 00H~FFH 共256 byte.低128位可以直接寻址,高128位只能间接寻址。
3. XDATA
外部数据存储器(只能间接寻址,访问速度比较慢)
DMA是再XDATA上寻址的,这一点很重要
有16根地址总线,所以 XDATA 的寻址空间为 0000H ~ FFFFH 共64K
4. SFR
特殊功能寄存器 就是那些T1CTL, EA, P0 等配置寄存器存储的地方 共128K。因为CC2530的配置寄存器比较多,所以一些多余的寄存器就放到了
XREG
里面。XREG的大小为1K XREG的访问速度比 SFR慢。
以上4中存储空间只是4种不同寻址方式的概念,并不代表物理上具体的存储设备。例如 FLASH 或者 EEPROM都可以作为物理的存储媒介映射到CODE上,DRAM或者SRAM都可以作为存储媒介映射到DATA中。CODE和DATA是存储空间的概念,FLASH、SRAM、EEPROM等是具体的物理存储设备,这两个概念不要混淆。这好比,电脑需要RAM和ROM,这个ROM可以是西部数据的硬盘,也可以使三星的硬盘,也可以是不同材料的固态硬盘。一个是存储空间,另一个是具体的物理存储设备。
二、关于CODE存储器的映射
大家肯定会有疑问:既然CODE的寻址范围只有64KB,那CC2530F256怎么有256KB的flash呢?
正是为了解决寻址空间不足的问题,CC2530才提出了映射的概念。(当然,映射的另一重要目的是为了DMA)
CC2530把FLASH存储器分成了几个bank,每个bank的大小是32KB,即对于F256来讲,它有8个bank分别是bank0~bank7(不同芯片,bank数目不同)。通过FMAP.MAP[2:0] 控制,把不同的编号的bank映射到CODE上,解决了寻址空间受限制的问题。上图..
从图中可以看出,bank0是rootbank,就是程序开始执行的地方,这个common area始终都是对应FLASH存储器的0000H~7FFFH, 上面的另一半可以映射bank0~7. 我以前一直疑惑,为什么common area已经有bank0了,上面怎么还可以有bank0,从user guide里看,这样是可以的,就比如CC2530F32,只有一个bank0,它也只能这么映射了吧。
三、关于XDATA存储器的映射
关于XDATA的映射,可以这么说:
一切都是为了DMA!!
为了让DMA能访问所有的存储区域,所以把所有的存储器都映射到了XDATA上。上图:
从图中可以看出,XDATA中包含了所有存储器的映射,包括256kb的FLASH存储器,8K 的SRAM存储器,还有 SFR , XREG, INFORMATION FAGE。这里看出来,其实CC2530的DATA,和 XDATA,都是用SRAM作为物理存储媒介的,但是它们的寻址方式不一样,所以访问DATA,比访问XDATA要快。至于SFR,XREG,INFORMATION PAGE,我不知道它们用了什么物理存储媒介,但是它们都被映射到XDATA上,可以被DMA访问。
这里要搞清楚一个概念,映射到XDATA上,不代表就只能用XDATA的寻址方式访问。比如SFR,它虽然被映射到了XDATA上,只能说明,DMA可以通过访问XDATA来操作SFR,但是CPU还是可以通过单周期访问SRF.打个比方,我们平时坐的公交车上都有一把逃生应急锤,在紧急情况下可以敲破窗子逃生。我们平时不会使用锤子敲碎窗子进出车厢,我们平时有车门可以走。但是在特殊情况下(比如DMA要操作某个存储器中的数据时),我们可以用特殊的方法(从XDATA上的映射来得到我们想要的数据)。
四、关于从SRAM启动代码
上图
这种情况下,CC2530把SRAM存储器整个都映射到了CODE的bank area,可以从SRAM中执行代码。不要理解错了,这里只是说可以从SRAM中运行代码,不代表程序从SRAM中启动。程序还是会从 CODE的rootbank的0000H开始执行,只不过我们可以通过程序控制,让程序跳到 8000H之后,执行我们SRAM中想要的代码。
以上是我的一些个人理解,如果有错误的地方,希望各位老师及时指出,帮我这个菜鸟更正错误.... 谢谢了
还有,本人语文水平欠佳.... 请见谅
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/羊村懒王/article/detail/64031
推荐阅读
article
蓝桥
杯
青少
组
python
:
第十三届
省赛第二场_小青带着一根长为
80cm
的
竹竿
摘
苹果
,当伸手碰到
的
苹果
...
第十三届
蓝桥
杯
青少
组省赛第二场Python_小青带着一根长为
80cm
的
竹竿
摘
苹果
,当伸手碰到
的
苹果
会借助用
竹竿
摘
苹果
再给...
赞
踩
article
CrossOver
for
Mac
23.6
中文
破解版
如何激活_
crossover
激活版...
安装完成后,您可以在
CrossOver
的应用程序菜单中找到已安装的Windows软件,并直接从
Mac
上启动它们。Cros...
赞
踩
article
javascript
_
ds
javascript
...
javaScript学习笔记_
ds
javascript
ds
javascript
...
赞
踩
article
js
数字
类型
的
字符串
自动加1_前端儿要该懂点
Java
(1)...
Java
基础-数据
类型
那点事不同于
Java
Script,
Java
被称为强
类型
语言,就是因为它严格固定了数据
的
类型
,也正是...
赞
踩
article
【
JAVA
】(vip)蓝桥杯试题 基础练习 龟兔
赛跑
预测
BASIC
-24
JAVA
_写
一个
程序对于...
目录试题 基础练习 龟兔
赛跑
预测
要点本题代码试题 基础练习 龟兔
赛跑
预测
资源限制时间限制:1.0s 内存限制:512.0...
赞
踩
article
✨
数字
数组
+
1
算法_
3x4
的
数组
+
1
...
话不多说,直接上题目给定一个由 整数 组成的 非空
数组
所表示的非负整数,在该数的基础上加一。最高位
数字
存放在
数组
的首位...
赞
踩
article
【考研408】
计算机
与
组成
原理
笔记...
文章目录@[toc]
计算机
系统概述
计算机
系统层次结构
计算机
硬件的基本
组成
计算机
软件的分类
计算机
的工作过程
计算机
系统的多级...
赞
踩
article
皇后
的
控制力
(C++语言)_
python4
皇后
问题
...
题目描述:我们对八
皇后
问题
进行扩展。国际象棋中
的
皇后
非常神勇,一个
皇后
可以控制横、竖、斜线等4个方向(或者说是8个方向)...
赞
踩
article
说说我
的
PMP
认证
考试
_
pmp
代考骗局...
从踏出校门到现在,我一直从事着软件技术相关
的
工作,为跟得上节奏,也一直对技术进行不断地跟踪学习中;多年下来,感觉自己不是...
赞
踩
article
vue
官方
推荐
的
好
用
的
三方
库
_
vue
第三方
好
看字体
库
有哪些...
自述文件非常棒
的
存储
库
徽标很棒
的
Vue.js 太棒了与Vue.js相关
的
精彩内容精选清单资源资源
官方
资源外部资源工作门户...
赞
踩
article
jmeter
如何
测试
一个
post
请求
(发送
json
请求
报文)_
jmeter
发送
json
字符串
...
更详细的配置请参考另外一篇博文:
jmeter
如何
测试
一个get
请求
_
jmeter
发送
json
字符串
jmeter
发送js...
赞
踩
article
全局变量
的
声明
、
定义
及用法_
全局变量
怎么
定义
...
全局变量
的
声明
、
定义
及用法文章目录
全局变量
的
声明
、
定义
及用法1. 编译单元(模块)2.
声明
和
定义
3. extern 作...
赞
踩
article
PMP
资料
怎么
学
?
PMP
备考
经验分享...
每次
学
完一个章节要及时进行章节练习,这些题的出发点也主要在理解、运用,如果能够知道章节题意,能够解答出来也就说明这个章节...
赞
踩
article
2024年
芯片
设计
行业
趋势
...
本文由半导体产业纵横(ID:ICVIEWS)编译自dqindia2024年,在
芯片
设计
的过程中将更多地采用人工智能技术。...
赞
踩
article
【
计算机
二级考试
C
语言】
C
内存
管理
...
本章将讲解
C
中的动态
内存
管理
。
C
语言为
内存
的分配和
管理
提供了几个函数。这些函数可以在头文件中找到。在
C
语言中,...
赞
踩
article
【
js
】
ajax
加
ContentType
的方式
_
js
ajax
content
-
type
...
$.
ajax
({ url:"a/b", data : JSON.stringify(param),// co...
赞
踩
article
react
:
props
属性
&&
state
状态
介绍及使用
_
props
状态
有哪些...
Props 的只读性组件无论是使用函数声明还是通过 class 声明,都决不能修改自身的
props
。//src/ind...
赞
踩
article
JS
实现
触发
下载
内容(H5
download
)...
概述我对使用js控制
下载
非常感兴趣,在网上查资料的时候碰巧看到了相关
实现
方法,记录下来供以后开发时参考,相信对其他人也有...
赞
踩
article
php
导出
csv
超时
,关于数据
导出
超时
的问题...
实际工作中,我们经常
导出
报表的需求,当
导出
数据量过大的时候,经常会遇到
超时
和内存溢出的问题。解决方案一
超时
可用: set...
赞
踩
article
软件工程
与
项目管理
...
软件工程
与
项目管理
是成熟的博大精深的学科。所谓新视野乃是指站在“企业-产品-人”这个系统的角度看待问题,旨在创导使“企业...
赞
踩
相关标签
蓝桥杯
python
青少年编程
macos
电脑
mac
CrossOver
javascript
js 数字类型的字符串自动加1
java
蓝桥杯试题
龟兔赛跑
模拟
数组
算法
408
计算机组成原理
考研
c++
pmp
jmeter post
jmeter json
jmeter测试post
职场和发展