储存器和寄存器

储存器和寄存器

(1)、储存器映射
储存器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给储存器分配地址的过程称为储存器映射,如果再分配一个地址就叫重映射。
(2)、寄存器映射
通过#pragma预处理命令和DATA_SECTION将定义的寄存器指定到相应的储存单元内,然后即可通过C语言来操作这些寄存器。
例如:找到0X007010这个单元地址,那么可以通过查阅芯片数据手册了解此单元是系统控制寄存器功能。因此为了更好区分此单元的功能和方便后续的程序开发,可以给这个单元取一个别名SysCtrlRegs,那么这个SysCtrlRegs就是寄存器,并且这个寄存器地址就是0X007010。这个过程就是寄存器映射。
(3)、如何访问F28335寄存器内容
根据#pragma和DATA_SECTION的特点,可以使#pragma和DATA_SECTION将定义的寄存器与实际的储存单元对应起来,然后在使用C语言操作定义的寄存器,比如使用结构体等。
假如我们要让F28335的GPIO的第68管脚输出低电平,我怎么使用C语言来处理?
首先要知道GPIO外设每类寄存器所对应储存单元的首地址是哪个,比如GPIO控制寄存器,通过查询数据手册可知其首地址是0X006F80,然后使用#pragma和DATA_SECTION将定义的寄存器与实际的储存单元对应起来。

#pragma DATA_SECTION(GpioCtrlRegs,"GpioCtrlRegsFile");
该定义可在DSP28335x_GlobalVariableDefs.c文件中查找到volatile struct GPIO_CTRL_REGS GpioCtrlRegs;
GpioCtrlRegsFile是SECTIONS内定义的,该定义可在DSP28335_Headers_nonBIOS.cmd文件中查找到。

(如何跳转到函数的定义处:按住Ctrl+鼠标点击对应的函数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻童:CPU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值