[转载]DSP2812 ECan总线中ECanaShadow的理解

摘要:
ECanaShadow通常用于DSP2812TI给出的ecan模块的例程中,因为DSP2812的一些寄存器需要32位访问,并且不能对位进行操作。如果您想写入单个位,编译器可以使其进入16位访问。因此,有必要引入一个影子寄存器来强制它执行32位访问,将整个寄存器读入影子寄存器ECanaShadow,对相应的位执行位操作,然后将ECanaShadow的总值分配(复制)回eCAN寄存器。原始地址:DSP2812ECan总线中的ECanaShadow作者:Jun Jun

博主可否总结过在2812中配置CAN的过程中,具体对哪些寄存器的位操作需要使用影子寄存器?在TI的《eCAN参考指南》中只是说明了“控制和状态寄存器只允许32位访问”,我根据经验和例程大概圈了下,主控制寄存器(CANMC)、TX I/O控制寄存器(CANTIOC)、RX I/O控制寄存器(CANRIOC)、超时控制寄存器(CANTOC)、位-时序配置寄存器(CANBTC)、错误和状态寄存器(CANES)对位操作的时候需要使用影子寄存器,还有几个不是很确定:写覆盖保护控制寄存器(CANOPC)、消息控制寄存器(MSGCTRL或MCF)、超时状态寄存器(CANTOS)等对位操作的时候是否需要使用影子寄存器?烦请博主指点!


在DSP2812 TI公司给的ecan模块的例程中多处使用到ECanaShadow,是因为DSP2812的一些寄存器(如控制寄存器)需要32位访问,不能对位进行操作,如果想向一个单独位进行写操作,编译器可能会使其进入16位访问。所以要引入一个影子寄存器(ECanaShadow)迫使其进行32位访问,把整个寄存器读入一个影子寄存器ECanaShadow  (它是一个变量,不是寄存器),然后对相应的位进行位操作,然后再把ECanaShadow 的值整体赋值(复制)回eCAN寄存器。


原文地址:DSP2812 ECan总线中ECanaShadow的理解作者:俊俊


免责声明:文章转载自《[转载]DSP2812 ECan总线中ECanaShadow的理解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇《逐梦旅程:Windows游戏编程之从零开始》学习笔记之二:GDI框架记一次内存泄漏DUMP分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Host是如何与EC通信的

第一种方式:遵循ACPI规范完成通信,通过LPC的62h、64h偏移/端口。 此种方式适合host对EC进行读写操作。 EC提供256字节的可被系统读写的RAM空间,EC的资源在该RAM空间映射,通过访问对应偏移(0x00~0xFF),即可操作对应的资源。实际上就是外部RAM的前256字节。EC会将键盘、触摸板、电池、温度传感器等一些设备的状态信息保存在此...

Java内存模型(JMM)总结

Java内存模型(JMM) 我们常说的JVM内存模型指的是JVM的内存分区;而Java内存模型是一种虚拟机规范。 Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:...

[转] 函数调用栈

http://kingj.iteye.com/blog/1555017 http://www.cnblogs.com/rain-lei/p/3622057.html   函数调用大家都不陌生,调用者向被调用者传递一些参数,然后执行被调用者的代码,最后被调用者向调用者返回结果,还有大家比较熟悉的一句话,就是函数调用是在栈上发生的,那么在计算机内部到底是如何实...

收录 Uboot 详解

--------------------------------------------------------------------------------------------------------  我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。     在PC机上引导程序一般...

计算机基础第三章:寄存器&内存(Registers&RAM)

寄存器&内存(Registers&RAM) 前言 前面学习了逻辑门和ALU,想要制作一个“CPU”我们还需要学习内存,因为CPU所运算 数据的读写都离不开内存。 一.内存单位 学习内存首先我们要了解存储单位 1TB(太字节)=1024GB(千兆字节) 1GB=1024MB(兆字节) 1MB=1024KB(千字节) 1KB=1024byte(...

EAX、ECX、EDX、EBX寄存器的作用

一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器EAX、ECX、EDX、EBX:為ax,bx,cx,dx的延伸,各為32位元ESI、EDI、ESP、EBP:為si,di...