UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Observer andy_lvjing
Observer

fsbl代码size缩减

转到解答

Hi,    

   我最近发现引导用的fsbl编译后的size太大。由于我们项目没有使用ddr,所以只有内部的256KBiram可以使用。

我们期望fsbl可以压缩到64kB以下,这样我们应用的代码才可以放的下。原始的fsbl代码编译出来在83KB大小,我通过裁剪到我们项目不使用的代码和修改编译选项优化,现在压缩到73KB,如下图所示:无标题4.png

 

无标题5.png

 

    请问这个还有什么办法可以缩减fsbl的尺寸?

0 项奖励
1 个已接受解答

已接受的解答
Xilinx Employee
Xilinx Employee

回复: fsbl代码size缩减

转到解答
5 条回复
Xilinx Employee
Xilinx Employee

回复: fsbl代码size缩减

转到解答

从编译结果来看,大部分空间被text段占用了,可以节省的空间不大。对于ddrless系统来说,你可以让fsbl在flash上面运行,即XIP。你可以参考这个链接,

 

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842377/Zynq-7000+AP+SoC+Boot+-+Booting+and+Running+Without+External+Memory+Tech+Tip

 

里面提到的L2 cache操作,你可以不用,只让fsbl在flash上面运行,你自己的app在OCM运行。

Observer andy_lvjing
Observer

回复: fsbl代码size缩减

转到解答

你好,

      按你说的,我把fsbl的代码在生成bin文件的时候加了xip _mode,让fsbl在flash上运行,当我的运行地址设置成flash首地址0xFC000000时,生成的bin文件为4M多,我烧写到flash的首地址时,上电后运行ok。

     但是我们项目中要求支持多个boot版本,所以我需要将bin文件放在0x600000的地址,但是我修改fsbl的ld文件到0xFC600000时,生成的bin文件大小为10M。这超过我们给bin文件预留的5M空间了,请问这次生成的bin为什么会超那么多呢?

     按我的理解,我们只是运行地址不一样,代码是完全一样的,生成的bin文件应该还是一样的啊,麻烦帮我分析下,谢谢!

0 项奖励
Visitor darrenzhou
Visitor

回复: fsbl代码size缩减

转到解答
hi yong 还得麻烦你帮忙看下原因,XIP修改后客户的BIN文件差异很大,可能原因是什么?多谢!
“我把fsbl的代码在生成bin文件的时候加了xip _mode,让fsbl在flash上运行,当我的运行地址设置成flash首地址0xFC000000时,生成的bin文件为4M多,我烧写到flash的首地址时,上电后运行ok。

但是我们项目中要求支持多个boot版本,所以我需要将bin文件放在0x600000的地址,但是我修改fsbl的ld文件到0xFC600000时,生成的bin文件大小为10M。这超过我们给bin文件预留的5M空间了,请问这次生成的bin为什么会超那么多呢?”
0 项奖励
Xilinx Employee
Xilinx Employee

回复: fsbl代码size缩减

转到解答
Observer andy_lvjing
Observer

回复: fsbl代码size缩减

转到解答

是的,就是这个问题,用2018.1重新生成后就好了,谢谢啦

0 项奖励