multiboot 的golden image 和update image的 mcs文件的生成及调试
multiboot的功能对于不同的FPGA应该是相同的,但是具体的配置可能不一样。基本流程如下:
上图来源是xapp1246, 明显分为5个步骤,在FPGA启动时是有flash的0地址开始,但是因为golden image加了一些配置,在FPGA接收到这些配置是会转到其他的地址,继续读update image的内容。这些配置需要在生成golden bit的时候加约束命令如下:
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] //可选的压缩项
set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design] //使能回读功能
set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 'h00800000 [current_design] //update image 的起始地址
如果在加载update image 出错时,又要能够返回到golden image区,这需要在生成update image时添加如下约束:
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]
意义如同golden image。生成这两个bit 后使用如下命令生成mcs文件。
write_cfgmem -force -format mcs -interface bpix16 -size -loadbit "up 0x0 led_icape_golden.bit up 0x00800000 led_light_update_error.bit" -file icape_golden_light_update_error.mcs
这些参数和具体的flash 和bit文件的大小有关。比如 bpix16表示16位的bpi flash, up 0x0 led_icape_golden.bit表示 这个bit 的开始地址是0x0, 最后是生成的mcs文件。前提是当前的工作目录存在这两个bit。 pwd命令查看当前的工作目录,cd命令可以切换当前工作目录。
为了验证,update 配置错时可以返回到golden 配置,可以将bit更改其中的数据,再生成mcs文件,烧录到flash中,即可完成验证。
但是,在本实验中发现了一个有趣的问题:
测试1:led1工程,做为golden image 并加了golden的约束。 led2工程, 做为update image 并加了update的约束。 最后将两个bit 合并为一个mcs。结果是没问题,而且也能在update image有错的情况下,返回到golden区。
测试2:flash系统的升级工程,做为golden image 添加和测试1一样的golden 约束。led2工程和测试1一致。生成mcs的命令也是一样只是bit不同。结果是不能启动update image,而只是返回到golden image。
可能产生的原因:golden image没有尝试跳转。golden image 跳转地址有误。update image bit写入flash中有误。
同事直接看生成的mcs文件,发现跳转的地址是00。但是我已添加了约束命令,为什么没有效果?惊人的结果截图看效果:
在Linux系统下多了一些符号,这些符号导致了跳转的地址没有写入到bit文件中。入下图:是bit的开头。为啥能在这看出重启地址没有写入,我不说,有兴趣可以查查。当然我也不是特别清楚,我也需要在查查。
为什么会牵涉到linux我也先不说。。。哈哈。
multiboot 的golden image 和update image的 mcs文件的生成及调试的更多相关文章
- cvs update后输出的文件标志 和 update常用的几个参数
(1)update 和 checkout 在执行中,会为每个文件打印一行提示信息,文件的状态通过前面的单个字符指明: U file 文件按要求从仓库得到更新.用在那些仓库里面 ...
- mysql update 忘加 where 文件恢复
前提条件:mysql :data_row_format=rowmysql> show variables like '%image%';+------------------+-------+| ...
- 路由器逆向分析------QEMU的下载和安装(Linux平台)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68953160 一.QEMU源码的下载和编译 QEMU源码的github下载地址:h ...
- 【Spring Framework】Spring入门教程(六)Spring AOP使用
Spring的AOP 动态代理模式的缺陷是: 实现类必须要实现接口 -JDK动态代理 无法通过规则制定拦截无需功能增强的方法. Spring-AOP主要弥补了第二个不足,通过规则设置来拦截方法,并对方 ...
- Xilinx 7 series FPGA multiboot技术的使用
Xilinx 7 series FPGA multiboot技术的使用 当升级程序有错误的时候,系统会启动golden bitstream 注意:需要在源工程与升级工程中添加如下约束语句 生成组合mc ...
- svn自动update到指定目录
对于开发和测试环境来说,可以使用svn自动update 到指定目录,这样就省去每次提交代码都要去服务器上手动update.对于团队来说,省时省力. 看下怎么做吧,在服务器svnserver安装 目录下 ...
- 解决maven项目update project会更改jdk版本问题
一.问题描述 在Eclipse中新建了一个Maven工程, 然后更改JDK版本为1.6, 结果每次使用Maven > Update project的时候JDK版本都恢复成 ...
- 【转】MySQL外键约束On Delete、On Update各取值的含义
转载地址:http://hi.baidu.com/jxqlovejava/item/3d2cc5b5d689917c244b0920 先看On Delete属性,可能取值如上图为:No Actio ...
- MySQL外键约束On Delete、On Update各取值的含义
主键.外键和索引的区别? 主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...
随机推荐
- 用PendingIntent传送数据丢失解决办法
当要设置一个闹钟时,可以把数据放在Intent里,再用intent对象生成一个PendingIntent对象,然后用AlarmManager 来邦定PendingIntent对象设置闹钟,具体代码如下 ...
- thinkphp5的auth权限认证(转自thinkphp官方文档+自己总结)
thinkphp5的auth权限认证(转自thinkphp官方文档+自己总结) 一.总结 一句话总结:相当于就是用其它thinkphp的扩展一样,都是引入扩展,配置扩展,然后使用 引入 配置 使用 基 ...
- poj3436网络流之最大流拆点
这题看了半天看不懂题意...还是看的网上题意写的 加一个源点一个汇点,把每个点拆成两个,这两个点的流量是v,其他联通的边都设为无穷大 输入没有1的点就与源点连接,输出只有1的点就与汇点连接 还有这个输 ...
- log4j日志文件配置
### set log levels ### ### debug (打印代码中logger.debug(xx)的信息)> info(打印代码中logger.info(xx)的信息) log4j. ...
- Access数据库 更新 "延时" 现象
最近发现 Access数据库执行Update或Delete操作成功后,执行select回来的数据未更改.打开数据库查看时却发现已更改,再次执行select 后却发现正常了. 经调试发现:Access数 ...
- Java 调用PHP的Web Service(三)
usoap是PHP环境中的开源soap工具,算是用得比较多的一个工具了. 在utf-8环境中,nusoap可以工作得很好.但是当用于中文环境中时,nusoap经常会出现一些让人不得其解的问题. 最近一 ...
- plsql安装图解
Plsqldev安装步骤
- scikit-learn 学习笔记-- Generalized Linear Models (一)
scikit-learn 是非常优秀的一个有关机器学习的 Python Lib,包含了除深度学习之外的传统机器学习的绝大多数算法,对于了解传统机器学习是一个很不错的平台.每个算法都有相应的例子,既可以 ...
- (转)ZooKeeper-3.3.4集群安装配置
转载于 千与 的 http://blog.csdn.net/shirdrn/article/details/7183503 ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向 ...
- pandas groupby 使用
so useful~ refer to: http://kekefund.com/2016/06/17/pandas-groupby/