搜索
查看
编辑修改
首页
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
Retrofit基础讲解(上)_call
2
嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM平台编程第一天-嵌入式系统概述(物联技术666)
3
CentOS7 安装配置FTP服务器详解_centos7 ftp
4
2023最新版Android逆向教程——第1天:Android Studio的安装与配置_安卓逆向
5
【Springboot系列】SpringBoot整合Jpa
6
《数据库原理》课程设计-mysql_数据库原理课程设计
7
Qt开发(七)Qt 开发中编译报错:QIODevice::read: device not open_qiodevice::read device not open
8
【AI】ChatGPT和文心一言那个更好用
9
自动化测试现状的思考
10
RT-Thread: 串口操作、增加串口、串口函数
当前位置:
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
第十三届
蓝桥杯省赛
pytho
n
4
月23日题目汇总_
编程
实现
:
给定
一个
正整数
n
,
输出
正整数
n
中...
第十三届
蓝桥杯省赛
pytho
n
4
月23日题目汇总_
编程
实现
:
给定
一个
正整数
n
,
输出
正整数
n
中各数位最大的那个数字...
赞
踩
article
c
语言
指针
变量
取值
,C
语言
指针
之---
指针
声明
与
取值
...
普通类型
变量
的
声明
c
har a =10 ; //
声明
一个
c
har类型,值为10的a
变量
short b = 20; //声...
赞
踩
article
C
语言
之
printf
( )详解_
c
语言
printf
...
一、基本概念1、
printf
() 是 C
语言
标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件...
赞
踩
article
CH8-
多线程
_在
银行
办理
业务
时
,
通常
银行
会
开多个
窗口
,
客户排队等候
,
窗口
办理
完
业务
,
会
呼叫下一...
【案例8-1】 龟兔赛跑【案例介绍】1.任务描述 众所周知的“龟兔赛跑”故事,兔子因为太过自信,比赛中途休息而导致乌...
赞
踩
article
leetcode
394.
字符串
解码...
力扣HOT100 栈
leetcode
394.
字符串
解码 &nb...
赞
踩
article
Linux
最常用
命令
汇总_
linux
命令
t...
一、系统信息uname -a 查看内核/操作系统/CPU信息的
linux
系统信息
命令
lsb_release -a 查看操...
赞
踩
article
ASP.NET实现
文件
的
上传
和
下载
_
asp
.
net
文件
上传
和
下载
...
最近做的一个高校网站中涉及到了
上传
和
下载
文件
的需求(具体需求为:网站公布的通知,在后台要能给每个通知添加附件,在前台要能...
赞
踩
article
minio
安装与使用
_
minio
版本
...
minio
安装与使用(旧版易配置)
_
minio
版本
minio
版本
...
赞
踩
article
状态
(
State
)
模式
--------
用类
表示
状态
_
state
=
state
+1...
》》在
State
模式
中,我们用类来
表示
状态
。 以类来
表示
状态
后,我们就能通过切换类来 方便地改变对象的
状态
。当需要...
赞
踩
article
Gym-
100342J
Triatrip
(求
有向图
三元
环
个数
+
bitset
应用)_
有向图
环
路
个数
怎么...
The travel agency “Four Russians” is offering the new servic...
赞
踩
article
数学回味系列之5 - 三人
分
蛋糕
问题
_有
3
个人
分
三种点心一共有几种
分
法...
问题
提出: 三
个人
分
一块
蛋糕
,如何让每
个人
都觉得公平?解题思路:● 最公平的方案 - 先
分
后选 由 A 将
蛋糕
分
成
3
...
赞
踩
article
海底
捞
卫生
问题
后续,
监管部门
可否引入 AI 实时
识别
与监控?...
前几天,
海底
捞被曝出严重
卫生
问题
。老鼠爬进食品柜、员工用漏勺掏下水道、洗碗池里洗簸箕……这是“
海底
捞”北京劲松店、太阳宫...
赞
踩
article
程序中
变量
定义
、
指针
等问题(
static
和
const
、
指针
相关概念和使用
方式
)_
static
co...
用
static
修饰全局
变量
和函数,除了上面说的数据安全,防止被误引用,还有一个作用是解决重名问题。当用
static
修饰了...
赞
踩
article
Re
a
ct
中的
st
a
te
和
props
有什么区别?_
a
module
component
c
a
nnot...
I w
a
s w
a
tching
a
Plur
a
lsight course on
Re
a
ct
a
nd the instruc...
赞
踩
article
JavaScript中
this
究竟指向什么?_
js
中
this
是当前
函数
的
执行
上下文
吗...
this
的奥秘很多时候, JS 中的
this
对于咱们的初学者很容易产生困惑不解。
this
的功能很强大,但需要一...
赞
踩
article
js
数字
类型
的
字符串
自动加1_前端儿要该懂点
Java
(1)...
Java
基础-数据
类型
那点事不同于
Java
Script,
Java
被称为强
类型
语言,就是因为它严格固定了数据
的
类型
,也正是...
赞
踩
article
深度
学习
与大
数据
在
自然语言
处理
(
NLP
)领域的结合,为我们打开了一个全
新的篇章
...
深度
学习
是机器
学习
的一个分支,通过构建多层神经网络模拟人脑神经元的工作方式。这种模拟方式使得
深度
学习
能够实现对复杂
数据
的...
赞
踩
article
HCIA
-
Datacom
实验
指导手册
:
4.3
实验
三
:
网络地址
转换配置
实验
...
NAT的作用
:
1、很大程度提高网络安全性。2、控制内外网网络联通性问题。特点
:
1
:
静态
:
1对1,不带端口2
:
动态NAT
:
...
赞
踩
article
电源
完整性
基础知识
_
powertree
返回版图...
先说一下,信号
完整性
为什么写
电源
完整性
? SI 只是针对高速信号的部分,这样的理解没有问题。如果提高认知,将SI 以大类...
赞
踩
article
C++
中
指针
与
引用
详解_
c++
解
引用
...
在计算机存储数据时必须要知道三个基本要素:信息存储在何处?存储的值为多少?存储的值是什么类型?。
指针
一直都是学习C语言的...
赞
踩
相关标签
蓝桥杯
python
c语言指针变量取值
java
leetcode
算法
栈
linux
asp.net上传文件
asp.net下载文件
asp.net上传下载
SaveAs
FileStream
docker
容器
运维
三元环
bitset
数学
三人分蛋糕
分蛋糕问题
三人分酒方案
数学竞赛
人工智能