搜索
bottom↓
回复: 22

ZYNQ 可以无DDR 启动吗? 网上的方法试了个遍 都没成功

[复制链接]

出0入91汤圆

发表于 2022-3-2 09:36:23 | 显示全部楼层 |阅读模式
如题, 工程BLOCK DESIGN 阶段  没有使能DDR

网上的方式基本上都试验过了 大部分都是在FSBL 中修改DDR 地址,并且把DDR 初始化部分去掉,然后把FSBL工作的堆栈定义到RAM0    基本上是一步一步操作, 但是下载到ZYNQ的QSPI 里面就是不工作   

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入442汤圆

发表于 2022-3-2 11:16:23 来自手机 | 显示全部楼层
你jtag能跑通?还有,pl部分初始化bit代码貌似必须得放ddr,所以你得屏蔽掉fpga初始化部分才有可能当纯arm跑。。

出0入91汤圆

 楼主| 发表于 2022-3-2 11:26:07 | 显示全部楼层
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状态下可以固化

后面进度 会放上来

出0入442汤圆

发表于 2022-3-2 11:39:52 来自手机 | 显示全部楼层
ackyee 发表于 2022-3-2 11:26
JTAG 可以跑通, 网上的方法是用OCM 来替代DDR 实现 芯片的启动和初始化   ram0来存放 FSBL   RAM1来存放 ...
(引用自3楼)

fsbl也可以打uart输出。

出0入0汤圆

发表于 2022-3-2 12:20:40 来自手机 | 显示全部楼层
ackyee 发表于 2022-3-2 11:26
JTAG 可以跑通, 网上的方法是用OCM 来替代DDR 实现 芯片的启动和初始化   ram0来存放 FSBL   RAM1来存放 ...
(引用自3楼)

lz可以分享下工程吗?谢谢

出10入12汤圆

发表于 2022-3-2 12:42:33 | 显示全部楼层
我问过FAE,至少7020是可以的,但是原厂没有公开的方法。

出0入91汤圆

 楼主| 发表于 2022-3-2 12:50:09 | 显示全部楼层
licheng0620 发表于 2022-3-2 12:20
lz可以分享下工程吗?谢谢
(引用自5楼)

暂时没有成功的工程, 等成功后再上传

出0入91汤圆

 楼主| 发表于 2022-3-2 12:51:04 | 显示全部楼层
hugohehuan 发表于 2022-3-2 12:42
我问过FAE,至少7020是可以的,但是原厂没有公开的方法。
(引用自6楼)

7020可以的话  7010应该也是可以的 ,感觉网上好多教程都是贴着DDR再测试,根本都没拆掉DDR过
我直接拆了DDR  进行调试的,  没有固化 直接用JTAG 都是可以工作的,一固化 就崩

出0入45汤圆

发表于 2022-3-2 12:57:44 | 显示全部楼层
ackyee 发表于 2022-3-2 12:51
7020可以的话  7010应该也是可以的 ,感觉网上好多教程都是贴着DDR再测试,根本都没拆掉DDR过
我直接拆了 ...
(引用自8楼)

ZYNQ 自带一个DDR的memtest案例。 那个案例就是跑在内部的OCM。 如果那个案例你固化不了,那就基本没可能了

出0入91汤圆

 楼主| 发表于 2022-3-2 13:08:34 | 显示全部楼层
myiccdream 发表于 2022-3-2 12:57
ZYNQ 自带一个DDR的memtest案例。 那个案例就是跑在内部的OCM。 如果那个案例你固化不了,那就基本没可能 ...
(引用自9楼)

光跑官方DEMO肯定不行的  FSBL 默认都是需要DDR 才能工作, 必须要改底层 才能 绕过DDR   

出0入45汤圆

发表于 2022-3-2 14:16:34 | 显示全部楼层
ackyee 发表于 2022-3-2 13:08
光跑官方DEMO肯定不行的  FSBL 默认都是需要DDR 才能工作, 必须要改底层 才能 绕过DDR    ...
(引用自10楼)

Memtest 不需要DDR 。这个例程本身就是用来测试DDR 是否正确的。 我跑过这个例程。DDR是坏的都能跑

出0入0汤圆

发表于 2022-3-2 14:49:32 来自手机 | 显示全部楼层
我觉得理论上肯定是可以的

出0入91汤圆

 楼主| 发表于 2022-3-2 15:37:10 | 显示全部楼层
最新情况   按照网上教程   初始化的时候使能 DDR  然后在PS 代码里把DDR部分都注释掉,  固化后,  PS部分可以启动, PL 部分要单独JTAG 下载 ,  尚未完全成功

出0入91汤圆

 楼主| 发表于 2022-3-2 15:51:47 | 显示全部楼层
wye11083 发表于 2022-3-2 11:39
fsbl也可以打uart输出。
(引用自4楼)


我这边 下午改结合了网上的两个网站 内容 竟然成功了 不可思议

回头我整理下过程

出0入0汤圆

发表于 2022-3-2 17:08:43 | 显示全部楼层
https://blog.csdn.net/zhaoxinfan/article/details/100999822

出0入71汤圆

发表于 2022-3-2 21:56:26 | 显示全部楼层
莫非你为了节约成本准备把DDR干掉?

出0入91汤圆

 楼主| 发表于 2022-3-2 23:53:27 来自手机 | 显示全部楼层
本帖最后由 ackyee 于 2022-3-2 23:59 编辑
dellric 发表于 2022-3-2 21:56
莫非你为了节约成本准备把DDR干掉?
(引用自16楼)


确实是的,芯片大涨价,现在换了zynq重新开发,打算把成本往死里干了,哈哈
趁现在还在移植阶段,就试着把ddr去掉,否则后面做完了,再来重新去ddr就没激情去做了

不光节约成本,还能省出一大块pcb空间出来,可以放更多的器件了,还有ddr过孔都可以加大一号,现在按8x16孔,bga也少贴一块,这加起来不是很赞么

主要现在arm核工作负担不大,都是拿来当单片机跑的,pl部分负责了大部分的算法

出0入91汤圆

 楼主| 发表于 2022-3-3 00:53:49 | 显示全部楼层
浮生莫若闲 发表于 2022-3-2 17:08
https://blog.csdn.net/zhaoxinfan/article/details/100999822
(引用自15楼)

我今天的成功的方法好像没有这么复杂 只是简单的屏蔽了一些 位置  然后重新定义了地址  然后把FSBL 跑在RAM0   APP跑在RAM1 就成功了

出0入91汤圆

 楼主| 发表于 2022-3-3 11:03:45 | 显示全部楼层
本帖最后由 ackyee 于 2022-3-3 11:11 编辑
wye11083 发表于 2022-3-2 11:39
fsbl也可以打uart输出。
(引用自4楼)


RAM0 有192k 空间 给 FSBL 用完了
RAM1 有64K 空间 给APP跑, 如果程序小没问题, 如果程序中涉及存储UI 图片, 那还得把 变量丢 FLASH   然后发现就是个大工程了


如果只是简单的 APP  还好 其实只要定义完  程序编译后的地址就可以了

如果代码比较大   那得参考以下 链接(这种情况下 国内写的教程网站都不用看了)

https://xilinx-wiki.atlassian.ne ... nal+Memory+Tech+Tip

出0入442汤圆

发表于 2022-3-3 11:55:22 | 显示全部楼层
本帖最后由 wye11083 于 2022-3-3 11:56 编辑
ackyee 发表于 2022-3-3 11:03
RAM0 有192k 空间 给 FSBL 用完了
RAM1 有64K 空间 给APP跑, 如果程序小没问题, 如果程序中涉及存储UI ...
(引用自19楼)


Z7本来就不是给你无DDR用的 无DDR请用STM32系列。。Z7的寄存器初始化非常难配置,各种外设占了不少比例。

其实最关键的是你没有DDR的话,PL。。。貌似都没法加载了。你看看是DMA启动还是怎么启动的。如果是CPU一行一行去配置PL,那么你可以改成读一段SPI配一点PL。

出0入91汤圆

 楼主| 发表于 2022-3-3 12:45:08 | 显示全部楼层
本帖最后由 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

出0入91汤圆

 楼主| 发表于 2022-3-17 13:07:39 | 显示全部楼层
浮生莫若闲 发表于 2022-3-2 17:08
https://blog.csdn.net/zhaoxinfan/article/details/100999822
(引用自15楼)

这个方式你试过么?

出0入91汤圆

 楼主| 发表于 2022-3-21 14:12:53 | 显示全部楼层
本帖最后由 ackyee 于 2022-3-21 14:17 编辑
wye11083 发表于 2022-3-3 11:55
Z7本来就不是给你无DDR用的  无DDR请用STM32系列。。Z7的寄存器初始化非常难配置,各 ...
(引用自20楼)


wiki 上那个xilinx 官方的帖子验证通过 , 确实可以, 程序 从 FLASH  XIP 直接启动  而不是加载到RAM里再启动,  并且 调用L2 的512K缓存    整体运行效率挺高的,功耗也从 PS的1.2W 直接降到 PS部分 0.5W了,  芯片温度下降10度  

测试了下 删除了DDR部分的电源 芯片, 和拆掉DDR部分电路    都可以工作


缺点:不能在线调试   所有的代码必须  下载到FLASH 才能运行  ,   过程很是复杂,踩了一星期的坑

优点 :可以省BOM  省空间  省功耗  省一颗电源芯片   更方便布局布线了,  过孔也能打大一号的了   
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 17:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表