当前位置:   article > 正文

为海思u-boot快速生成reg_info.bin文件_找不到reg_info.bin

找不到reg_info.bin

    在海思平台的底层开发中,SoC的引脚、时钟的配置是通过一个Excel表格生成的reg_info.bin来实现的,这个reg_info.bin文件是在编译u-boot过程中需要的,可以通过查看最终的u-boot镜像文件的生成过程得知:

    为了快速生成reg_info.bin文件,需要抛弃Excel表格,在编译u-boot的过程中自动生成reg_info.bin,并重命名为.reg,放置在u-boot源码的根目录下。通过查找代码,可以确定reg_info.bin中每16个字节对应一个结构体;当u-boot启动时,会按这些结构体数据来读写Soc的一些寄存器:

    如上图,这个结构体的名称为regentry。在这里我们选择lua语言脚本来实现这一功能。首先,在Windows平台上使用Excel软件生成原始的reg_info.bin:

    查看此reg_info.bin的大小及MD5较验值:

    将该bin文件复制到GNU/Linux主机上,并将其转化为文件文件:

    接下来,就是非常重要的操作,编写LUA语言脚本,并将每行的寄存器配置重写为调用regInfo的Lua函数:

    然后,就可以使用lua解析器生成.reg文件了;经对比可知,生成的.reg与原先的reg_info.bin文件相同:

    至此,我们就可以完全脱离Excel表格了。不仅如此,若需要频繁修改海思Soc的一些寄存器配置,此方法可以大幅度加快开发效率。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/331804
推荐阅读
相关标签
  

闽ICP备14008679号