• 位带操作HWREGBITW(x, b) 理解


    1、位带操作

    位带区域分直接位带区(bit-band region)和位带别名区(bit-band alias)。直接位带区是一块直接对应寄存器的地址(地址表见芯片手册Memory Map);位带别名区是直接位带区的映射,将每一位膨胀成了一个32位的字。

    2、HWREG()宏

    HWREG()宏可以直接操作硬件寄存器,里面的参数是tm4c芯片的硬件外设寄存器地址

    #define HWREG(x)                                                              
         	   (*((volatile uint32_t *)(x)))
    #define HWREGH(x)                                                             
        	    (*((volatile uint16_t *)(x)))
    #define HWREGB(x)                                                             
        	    (*((volatile uint8_t *)(x)))

    3、HWREGBITW()宏

    HWREGBITW()宏定义的是tm4c芯片的位带操作,对应地址范围是SRAM/Peripheral bit-band alias。宏定义中的“| 0x02000000”则锁定了位带别名区。

    #define HWREGBITW(x, b)                                                       
        	    HWREG(((uint32_t)(x) & 0xF0000000) | 0x02000000 |                     
           	       		(((uint32_t)(x) & 0x000FFFFF) << 5) | ((b) << 2))
    #define HWREGBITH(x, b)                                                       
        	    HWREGH(((uint32_t)(x) & 0xF0000000) | 0x02000000 |                    
           	        	(((uint32_t)(x) & 0x000FFFFF) << 5) | ((b) << 2))
    #define HWREGBITB(x, b)                                                       
        	    HWREGB(((uint32_t)(x) & 0xF0000000) | 0x02000000 |                    
            	       (((uint32_t)(x) & 0x000FFFFF) << 5) | ((b) << 2))

    (1)位带区

    TM4C芯片中位带区域包含SRAM和Peripheral,如下图所示。

    (2)参数说明

    HWREGBITW(x,b)宏中的x是所填位带区的地址,b是偏移量。 

  • 相关阅读:
    JMeter性能测试中控制业务比例
    软件版本命名规范
    软件测试方法——静态测试与动态测试
    安装BugFree 3.0.4时出现的问题
    Linux下给mysql创建用户分配权限
    LoadRunner 测试脚本
    linux dd命令详解
    Linux查看CPU和内存使用情况
    Error:java: 无效的源发行版: 10
    rf接口自动化之结果校验
  • 原文地址:https://www.cnblogs.com/shuoguoleilei/p/15103226.html
Copyright © 2020-2023  润新知