在海思平台的底层开发中,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的一些寄存器配置,此方法可以大幅度加快开发效率。

为海思u-boot快速生成reg_info.bin文件相关推荐

  1. AndroidStudio快速生成JNI头文件

    依次打开Settings-->Tools-->External Tools-->点击加号创建一个快速生成jni头文件的工具 Program: javah Parameters: -v ...

  2. MDK生成的BIN文件用DNW通过USB下载RAM中运行的问题

    通过Keil编译生成的Bin文件如何用DNW的USB下载到RAM中去执行: 这里要保证DNW的设置中的USB的DOWNLOAD ADDRESS的值和KEIL工程的分散加载文件的RO的地址要一致,否则将 ...

  3. Keil MDK5生成bin文件时生成了*.bin文件夹

    在Keil魔术棒中通过以下方式生成bin文件时,看提示命令执行成功,却生成了一个*.bin文件夹,文件夹内部是两个bin文件,当时感觉很奇怪,第一次遇到这种情况. 使用的命令:fromelf.exe ...

  4. 海思IPC平台快速拔插SD卡会出现SD卡不识别解决方法

    内核需要定时检测SD卡是否插入或拔出,默认给的定时检测时间为200ms. 此定时检测时间也可通过配置内核menuconfig更改.配置路径及配置选项如下: Device Drivers ---> ...

  5. 工具-eclipse-hibernate关于快速生成*.hbm.xml文件,与bean文件的操作,不使用hibernate tool解决办法之一,主要为了快速开发,写的小工具

    实现思想:就是java对目标表的字符串的处理,以及基础的sql语句 不能使用hibernate tool ,解决办法 为了记录,以后也许还会用的小工具 **工具优点:比手打生成快,能加快hiberna ...

  6. keil编译器如何生成二进制bin文件

    keil编译器默认生成的是16进制的hex文件,但是有时候需要生成二进制的bin文件,可以使用kei自带的二进制转换工具来实现. 首先在keil安装目录中找到 ARMCC文件夹,然后打开里面bin文件 ...

  7. 疯壳出品-“鸿蒙OS”海思HI3518EV300开发快速入门

    HI3518EV300简介 Hi3518EV300 作为新一代消费类 Camera SOC,集成新一代 ISP 以及业界最新的 H265 视频压缩编码器,在低码率.高画质等方面领先业界,同时人形检测, ...

  8. pe制作linux硬盘的镜像文件_如何快速生成PE ISO文件

    在做启动U盘的时候,我们一般都会将Pe做成ISO的格式,下面就为大家提供一个能够直接生成PE ISO的源码: @Echo of COLOR 1e Set Prog=  启动ISO映像制作程序 Set ...

  9. dd命令快速生成一个大文件

    有时候测试需要生成一个临时的大文件,可以使用dd命令来完成 xxx:~/test/mnt/sdcard/capture$ dd if=/dev/zero of=test.log bs=1M count ...

最新文章

  1. 如何成功地在亚洲植入敏捷和DevOps
  2. Science:综述肠道菌群如何影响社交行为
  3. php e框架是啥,几款主流PHP框架的优缺点评比
  4. mysql 集合减法_7 SQL 集合运算
  5. PHP与SQL数据库交互中文乱码怎么办
  6. LeetCode100 相同的树-简单
  7. Google开源机器学习示例库:浏览器上可运行,免费GPU后端支持
  8. 怎样测试通达信软件,如何测试通达信指标成功率?
  9. html倒计时星期日,功能齐全的jQuery倒计时插件
  10. 教师必备,4款超实用的微信小程序分享~
  11. Android 调用Gmail发送邮件
  12. UE4 VR 模式下全屏解决办法
  13. Linux中fork函数详解
  14. Python从放弃到入门,公众号历史文章爬取成pdf的项目实践与自主学习法
  15. JAVA-数字9出现的次数
  16. 通过powerbuilder直接读和写Excel文件,支持xlsx,xls,et等格式,不需要安装office excel,WPS等依赖
  17. 双硬盘Win10+Ubuntu双系统安装
  18. 当当网窘境:快电商容不下慢当当
  19. 保姆级-MySQL 8.0的下载、安装、配置
  20. 【图解】三次握手,四次挥手 —— 用心看这一篇就够了

热门文章

  1. SAI创始人谈美股IPO:做清洁算力领域“特斯拉” 减少碳排放
  2. 阿里云 大数据DataWorks开发套件的相关操作
  3. MATLAB中自带的Classification Learner的学习资料
  4. Recap | Apache Pulsar Meetup 上海站
  5. 无法获取链接服务器 (null) 的 OLE DB 访问接口 SQLNCLI10 的架构行集
  6. js和vue调用百度地图,实现搜索功能
  7. 阿里云 语音通知 语音验证码 收不到 白名单
  8. mysql week weekofyear_MySQL WEEKOFYEAR()用法及代码示例
  9. RuoYi-Vue——图标使用
  10. 转:make cmake和catkin_make的区别