这里是尼德兰的喵·工具相关文章,欢迎您的访问!
如果文章对您有所帮助,期待您的点赞收藏!
让我们一起为成为芯片前端全栈工程师而努力!
在进行寄存器编写时很多时候会涉及到算地址的问题,通常32bit位宽的寄存器地址每次偏移4,那么典型的场景就是下图:
那这一看显然不是直接拖鼠标就能完成的了,所以我们需要借助一些exel的内置函数。最后整合到一起呢就是这样:
="0x"&DEC2HEX(HEX2DEC(RIGHT(B4,4))+4,4)
看起来非常的乱,咱们拆解这一步步看就很清晰了:
=RIGHT(B4,4)
//把上一个单元格如0x0010,取右边四个字符0010,如果地址宽度表示不是4就改一下
//如果不确定宽度就用RIGHT(B4, len(B4)-2)把前面的0x减去就行=HEX2DEC(RIGHT(B4,4))
//把截出来的0010转成由十六进制转成十进制=HEX2DEC(RIGHT(B4,4))+4
//地址+4作为本寄存器的偏移地址=DEC2HEX(HEX2DEC(RIGHT(B4,4))+4,4)
//将计算得到的十进制地址转为十六进制,字符宽度为4,如果4个位宽不够那这里可以改="0x"&DEC2HEX(HEX2DEC(RIGHT(B4,4))+4,4)
//将得到的十六进制地址前缀0x,作为生成的字符
所以之后做寄存器文档时候,只要是连续的地址空间把第一个地址写好,之后就用这个函数顺着往下一拽就可以了!