撸码技巧1:分段设置寄存器

背景:
1.寄存器地址0x100H-0x184H;
2.每个寄存器都是32bit的;
3.每个寄存器的bit[7-0],bit[15-8],bit[23-16],bit[24-31]分别需要一个特别的值,这些特别的值已经存入数组;
4.使用已有按位写的接口write_reg32(addr,start,enc,val);完成按位写入;

写入方法:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<stdint.h>

    #define BASE_ADDR     (0x104)

    uint32_t main(void)
    {
      uint32_t cnt=0;


      for(cnt=0;cnt<0x84;cnt++)
      {
        printf("addr[0x%x] start[%d] end[%d] \n",\
          BASE_ADDR+(((cnt)>>2)<<2),((cnt)%4)<<3,(((cnt)%4)<<3)+7);

      }

      return 0;
    }

输出结果:

 ./test 
addr[0x104] start[0] end[7] 
addr[0x104] start[8] end[15] 
addr[0x104] start[16] end[23] 
addr[0x104] start[24] end[31] 
addr[0x108] start[0] end[7] 
addr[0x108] start[8] end[15] 
addr[0x108] start[16] end[23] 
addr[0x108] start[24] end[31] 
addr[0x10c] start[0] end[7] 
addr[0x10c] start[8] end[15] 
addr[0x10c] start[16] end[23] 
addr[0x10c] start[24] end[31] 
addr[0x110] start[0] end[7] 
addr[0x110] start[8] end[15] 
addr[0x110] start[16] end[23] 
addr[0x110] start[24] end[31] 
addr[0x114] start[0] end[7] 
addr[0x114] start[8] end[15] 
addr[0x114] start[16] end[23] 
addr[0x114] start[24] end[31] 
addr[0x118] start[0] end[7] 
addr[0x118] start[8] end[15] 
addr[0x118] start[16] end[23] 
addr[0x118] start[24] end[31] 
addr[0x11c] start[0] end[7] 
addr[0x11c] start[8] end[15] 
addr[0x11c] start[16] end[23] 
addr[0x11c] start[24] end[31] 
addr[0x120] start[0] end[7] 
addr[0x120] start[8] end[15] 
addr[0x120] start[16] end[23] 
addr[0x120] start[24] end[31] 
addr[0x124] start[0] end[7] 
addr[0x124] start[8] end[15] 
addr[0x124] start[16] end[23] 
addr[0x124] start[24] end[31] 
addr[0x128] start[0] end[7] 
addr[0x128] start[8] end[15] 
addr[0x128] start[16] end[23] 
addr[0x128] start[24] end[31] 
addr[0x12c] start[0] end[7] 
addr[0x12c] start[8] end[15] 
addr[0x12c] start[16] end[23] 
addr[0x12c] start[24] end[31] 
addr[0x130] start[0] end[7] 
addr[0x130] start[8] end[15] 
addr[0x130] start[16] end[23] 
addr[0x130] start[24] end[31] 
addr[0x134] start[0] end[7] 
addr[0x134] start[8] end[15] 
addr[0x134] start[16] end[23] 
addr[0x134] start[24] end[31] 
addr[0x138] start[0] end[7] 
addr[0x138] start[8] end[15] 
addr[0x138] start[16] end[23] 
addr[0x138] start[24] end[31] 
addr[0x13c] start[0] end[7] 
addr[0x13c] start[8] end[15] 
addr[0x13c] start[16] end[23] 
addr[0x13c] start[24] end[31] 
addr[0x140] start[0] end[7] 
addr[0x140] start[8] end[15] 
addr[0x140] start[16] end[23] 
addr[0x140] start[24] end[31] 
addr[0x144] start[0] end[7] 
addr[0x144] start[8] end[15] 
addr[0x144] start[16] end[23] 
addr[0x144] start[24] end[31] 
addr[0x148] start[0] end[7] 
addr[0x148] start[8] end[15] 
addr[0x148] start[16] end[23] 
addr[0x148] start[24] end[31] 
addr[0x14c] start[0] end[7] 
addr[0x14c] start[8] end[15] 
addr[0x14c] start[16] end[23] 
addr[0x14c] start[24] end[31] 
addr[0x150] start[0] end[7] 
addr[0x150] start[8] end[15] 
addr[0x150] start[16] end[23] 
addr[0x150] start[24] end[31] 
addr[0x154] start[0] end[7] 
addr[0x154] start[8] end[15] 
addr[0x154] start[16] end[23] 
addr[0x154] start[24] end[31] 
addr[0x158] start[0] end[7] 
addr[0x158] start[8] end[15] 
addr[0x158] start[16] end[23] 
addr[0x158] start[24] end[31] 
addr[0x15c] start[0] end[7] 
addr[0x15c] start[8] end[15] 
addr[0x15c] start[16] end[23] 
addr[0x15c] start[24] end[31] 
addr[0x160] start[0] end[7] 
addr[0x160] start[8] end[15] 
addr[0x160] start[16] end[23] 
addr[0x160] start[24] end[31] 
addr[0x164] start[0] end[7] 
addr[0x164] start[8] end[15] 
addr[0x164] start[16] end[23] 
addr[0x164] start[24] end[31] 
addr[0x168] start[0] end[7] 
addr[0x168] start[8] end[15] 
addr[0x168] start[16] end[23] 
addr[0x168] start[24] end[31] 
addr[0x16c] start[0] end[7] 
addr[0x16c] start[8] end[15] 
addr[0x16c] start[16] end[23] 
addr[0x16c] start[24] end[31] 
addr[0x170] start[0] end[7] 
addr[0x170] start[8] end[15] 
addr[0x170] start[16] end[23] 
addr[0x170] start[24] end[31] 
addr[0x174] start[0] end[7] 
addr[0x174] start[8] end[15] 
addr[0x174] start[16] end[23] 
addr[0x174] start[24] end[31] 
addr[0x178] start[0] end[7] 
addr[0x178] start[8] end[15] 
addr[0x178] start[16] end[23] 
addr[0x178] start[24] end[31] 
addr[0x17c] start[0] end[7] 
addr[0x17c] start[8] end[15] 
addr[0x17c] start[16] end[23] 
addr[0x17c] start[24] end[31] 
addr[0x180] start[0] end[7] 
addr[0x180] start[8] end[15] 
addr[0x180] start[16] end[23] 
addr[0x180] start[24] end[31] 
addr[0x184] start[0] end[7] 
addr[0x184] start[8] end[15] 
addr[0x184] start[16] end[23] 
addr[0x184] start[24] end[31] 

猜你喜欢

转载自blog.csdn.net/k7arm/article/details/78730435