前言
在进行嵌入式开发过程中,寄存器可以说是与嵌入式工程师打交道最多的东西,因为偏向底层的驱动开发,几乎都是利用寄存器完成的。那么,寄存器到底是什么呢?下面为自己的一些理解,如有错误之处,还望海涵与纠正,谢谢!
内存映射
在正式进入寄存器的知识之前,首先对内存映射进行简单的介绍。此处以TI公司的DSP28335芯片为例。通过查询该芯片的官方数据手册,可获知该芯片的内存分配图。由于该图比较大,即使贴出来也会很模糊,所以此处仅展示一部分截图,如下:

由上图可知,由于该芯片是32位,所以整个芯片支持的最大寻址范围为4GB,只是芯片厂商没有完全使用罢了。而整个芯片的内存空间又被分为很多块,用于不同的功能。
在简单了解了内存映射之后,我们开始进行寄存器的讲解。
寄存器到底是什么
实际上,我们在操作芯片的寄存器时,其实操作的是寄存器对应的地址虽然直接操作地址的方式,会使得代码的执行效率稍微高一点,但是可读性和可维护性便会大大降低,这样的代价对于绝大部分应用而言是不可以接受的。如果对于关键代码而言,需要确保它的执行效率,那么可以小范围的使用操作地址的方式进行。
那我们为什么在实际编程时,并没有对相应的地址与寄存器之间建立联系呢?其实,是TI官方的文件已经帮我们完成了这个工作。其中,DSP2833x_Headers_nonBIOS.cmd文件为各个寄存器分配了地址,DSP2833x_Gpio.h文件为寄存器创建相应的结构体,而<

本文介绍了嵌入式开发中寄存器的基本概念,结合TI DSP28335芯片说明内存映射的重要性,并阐述了寄存器与地址的关系以及在实际编程中的使用方式,强调了寄存器映射的概念。
最低0.47元/天 解锁文章
1000

被折叠的 条评论
为什么被折叠?



