ZYNQ 可以无DDR 启动吗? 网上的方法试了个遍 都没成功
如题, 工程BLOCK DESIGN 阶段没有使能DDR网上的方式基本上都试验过了 大部分都是在FSBL 中修改DDR 地址,并且把DDR 初始化部分去掉,然后把FSBL工作的堆栈定义到RAM0 基本上是一步一步操作, 但是下载到ZYNQ的QSPI 里面就是不工作 {:dizzy:} 你jtag能跑通?还有,pl部分初始化bit代码貌似必须得放ddr,所以你得屏蔽掉fpga初始化部分才有可能当纯arm跑。。 wye11083 发表于 2022-3-2 11:16
你jtag能跑通?还有,pl部分初始化bit代码貌似必须得放ddr,所以你得屏蔽掉fpga初始化部分才有可能当纯arm ...
(引用自2楼)
JTAG 可以跑通, 网上的方法是用OCM 来替代DDR 实现 芯片的启动和初始化 ram0来存放 FSBL RAM1来存放应用APP的data
暂时还没成功 能固化进去 但是启动后 完全没工作,而且芯片固化后,开机JTAG 反而不认识芯片了,除非JTAG TEST模式下启动
现在在还原整个代码,先确保证有DDR状态下可以固化
后面进度 会放上来 ackyee 发表于 2022-3-2 11:26
JTAG 可以跑通, 网上的方法是用OCM 来替代DDR 实现 芯片的启动和初始化 ram0来存放 FSBL RAM1来存放 ...
(引用自3楼)
fsbl也可以打uart输出。 ackyee 发表于 2022-3-2 11:26
JTAG 可以跑通, 网上的方法是用OCM 来替代DDR 实现 芯片的启动和初始化 ram0来存放 FSBL RAM1来存放 ...
(引用自3楼)
lz可以分享下工程吗?谢谢 我问过FAE,至少7020是可以的,但是原厂没有公开的方法。 licheng0620 发表于 2022-3-2 12:20
lz可以分享下工程吗?谢谢
(引用自5楼)
暂时没有成功的工程, 等成功后再上传 hugohehuan 发表于 2022-3-2 12:42
我问过FAE,至少7020是可以的,但是原厂没有公开的方法。
(引用自6楼)
7020可以的话7010应该也是可以的 ,感觉网上好多教程都是贴着DDR再测试,根本都没拆掉DDR过
我直接拆了DDR进行调试的,没有固化 直接用JTAG 都是可以工作的,一固化 就崩 ackyee 发表于 2022-3-2 12:51
7020可以的话7010应该也是可以的 ,感觉网上好多教程都是贴着DDR再测试,根本都没拆掉DDR过
我直接拆了 ...
(引用自8楼)
ZYNQ 自带一个DDR的memtest案例。 那个案例就是跑在内部的OCM。 如果那个案例你固化不了,那就基本没可能了 myiccdream 发表于 2022-3-2 12:57
ZYNQ 自带一个DDR的memtest案例。 那个案例就是跑在内部的OCM。 如果那个案例你固化不了,那就基本没可能 ...
(引用自9楼)
光跑官方DEMO肯定不行的FSBL 默认都是需要DDR 才能工作, 必须要改底层 才能 绕过DDR ackyee 发表于 2022-3-2 13:08
光跑官方DEMO肯定不行的FSBL 默认都是需要DDR 才能工作, 必须要改底层 才能 绕过DDR ...
(引用自10楼)
Memtest 不需要DDR 。这个例程本身就是用来测试DDR 是否正确的。 我跑过这个例程。DDR是坏的都能跑 我觉得理论上肯定是可以的 最新情况 按照网上教程 初始化的时候使能 DDR然后在PS 代码里把DDR部分都注释掉,固化后,PS部分可以启动, PL 部分要单独JTAG 下载 ,尚未完全成功 wye11083 发表于 2022-3-2 11:39
fsbl也可以打uart输出。
(引用自4楼)
我这边 下午改结合了网上的两个网站 内容 竟然成功了 不可思议
回头我整理下过程 https://blog.csdn.net/zhaoxinfan/article/details/100999822 莫非你为了节约成本准备把DDR干掉? 本帖最后由 ackyee 于 2022-3-2 23:59 编辑
dellric 发表于 2022-3-2 21:56
莫非你为了节约成本准备把DDR干掉?
(引用自16楼)
确实是的,芯片大涨价,现在换了zynq重新开发,打算把成本往死里干了,哈哈
趁现在还在移植阶段,就试着把ddr去掉,否则后面做完了,再来重新去ddr就没激情去做了
不光节约成本,还能省出一大块pcb空间出来,可以放更多的器件了,还有ddr过孔都可以加大一号,现在按8x16孔,bga也少贴一块,这加起来不是很赞么
主要现在arm核工作负担不大,都是拿来当单片机跑的,pl部分负责了大部分的算法 浮生莫若闲 发表于 2022-3-2 17:08
https://blog.csdn.net/zhaoxinfan/article/details/100999822
(引用自15楼)
我今天的成功的方法好像没有这么复杂 只是简单的屏蔽了一些 位置然后重新定义了地址然后把FSBL 跑在RAM0 APP跑在RAM1 就成功了 本帖最后由 ackyee 于 2022-3-3 11:11 编辑
wye11083 发表于 2022-3-2 11:39
fsbl也可以打uart输出。
(引用自4楼)
RAM0 有192k 空间 给 FSBL 用完了
RAM1 有64K 空间 给APP跑, 如果程序小没问题, 如果程序中涉及存储UI 图片, 那还得把 变量丢 FLASH 然后发现就是个大工程了{:mad:}
如果只是简单的 APP还好 其实只要定义完程序编译后的地址就可以了
如果代码比较大 那得参考以下 链接(这种情况下 国内写的教程网站都不用看了)
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842377/Zynq-7000+AP+SoC+Boot+-+Booting+and+Running+Without+External+Memory+Tech+Tip 本帖最后由 wye11083 于 2022-3-3 11:56 编辑
ackyee 发表于 2022-3-3 11:03
RAM0 有192k 空间 给 FSBL 用完了
RAM1 有64K 空间 给APP跑, 如果程序小没问题, 如果程序中涉及存储UI ...
(引用自19楼)
Z7本来就不是给你无DDR用的{:sweat:} {:sweat:} 无DDR请用STM32系列。。Z7的寄存器初始化非常难配置,各种外设占了不少比例。
其实最关键的是你没有DDR的话,PL。。。貌似都没法加载了。你看看是DMA启动还是怎么启动的。如果是CPU一行一行去配置PL,那么你可以改成读一段SPI配一点PL。 本帖最后由 ackyee 于 2022-3-3 12:47 编辑
wye11083 发表于 2022-3-3 11:55
Z7本来就不是给你无DDR用的无DDR请用STM32系列。。Z7的寄存器初始化非常难配置,各 ...
(引用自20楼)
我觉得我这边的问题出现在ZYNQ 所有的PS 代码都是预加载的,连CODE区都加载到内存了, 不是像 单片机那样 CODE区可以存放在FLASH
早上和YANG 沟通了下,他说可以调用内部的L2 ,这里有512K的资源, 我觉得难度超过了我的能力了, 还是先用DDR继续做项目的 ,回头再研究的
对了 PS区代码 如果简单的 ,可以控制在64K以内的, 完全可以做到无DDR启动, 连PL 都可以部分都可以加载成功,这部分我已经成功了
我参考这个网站,和他不一样的 是我在BLOCK DESIGN阶段 禁用了DDR没有问题
http://xinzero.com/zynq-drrless-ocm-fsbl-boot.html 浮生莫若闲 发表于 2022-3-2 17:08
https://blog.csdn.net/zhaoxinfan/article/details/100999822
(引用自15楼)
这个方式你试过么? 本帖最后由 ackyee 于 2022-3-21 14:17 编辑
wye11083 发表于 2022-3-3 11:55
Z7本来就不是给你无DDR用的无DDR请用STM32系列。。Z7的寄存器初始化非常难配置,各 ...
(引用自20楼)
wiki 上那个xilinx 官方的帖子验证通过 , 确实可以, 程序 从 FLASHXIP 直接启动而不是加载到RAM里再启动,并且 调用L2 的512K缓存 整体运行效率挺高的,功耗也从 PS的1.2W 直接降到 PS部分 0.5W了,芯片温度下降10度
测试了下 删除了DDR部分的电源 芯片, 和拆掉DDR部分电路 都可以工作
缺点:不能在线调试 所有的代码必须下载到FLASH 才能运行, 过程很是复杂,踩了一星期的坑
优点 :可以省BOM省空间省功耗省一颗电源芯片 更方便布局布线了,过孔也能打大一号的了{:lol:}
页:
[1]