背景:
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]