硬件特殊功能寄存器编程思路和RAM使用的问题?请各位大人解答!
看了一下STM32的库,对于其中的关于硬件的特殊功能寄存器的设置都是通过:1、定义一个和实际硬件地址相镜像的全局结构体变量。2、设置结构体的各个变量相对应的参数。
3、把结构体整体复制到硬件特殊功能寄存器。
个人理解,当结构体定义的时候编译器给它分配空间,且这个为全局变量一直占用RAM空间,即使初始化后也一直占用空间,编译器也不会回收其空间。到最后其实有一份硬件特殊功能寄存器的镜像一直占用着RAM。
而以前弄51,AVR,PIC的时候硬件特殊功能寄存器都是一个一个设置。
请教一下这两个方法各有什么有点和缺点。
个人感觉:
第一个方法 缺点:RAM来说是一直浪费的,优点:还没发现。
第二个方法 缺点:以前51,avr,pic都可以用没发现什么问题,优点:直接设置寄存器,省RAM
不知道我理解的对不对,为什么STM32的库里面要采用第一个方法???请各位大人解答一下!!!
出处:tsb0574
RE:硬件特殊功能寄存器编程思路和RAM使用的问题?请各位大人解答!
不一定要分配全局变量,可以使用局部变量,用完了就可以释放了。还可以使用const常量,也不会长期占用RAM。
页:
[1]