[原创]dm642_HPI调通并boot成功
一直在折腾前段时间画好的dm642+lpc4357板子,说明下这个板子的结构:
- 主芯片为DM642,这个片子很老了,但因为对这个片子熟悉,别折腾
- 没有给DM642加FLASH,配了一片LPC4357,DM642的代码需要它HPI来加载,至于为何选这个芯片,
主要是它带有USB2.0的PHY,关键是之前使用的时候都还算顺利(我都使用eclipse+arm gcc) - 两路视频输入(不能同时输入,支持切换)
- 一路LCD显示(AT070TN92的屏)
- DM642上的一路以太网(10M/100M)
- LPC4357上的USB2.0,RS485以及RS232(这个主要调试时用下)
真是好事多磨,之前因为焊接问题搞了一阵子,后来HPI也遇到问题,终于弄通了,记录下!
通过LPC4357的EMC连接DM642的HPI16,测试硬件自然力求简单,超简单的程序(本来HPI的结构也很简单):
void HPI_test(void)
{
volatile uint32_t pdat;
HPI_Init(LPC_EMC_BASE);
volatile uint32_t *pAddr=(volatile uint32_t*)HPIC_ADDR_RBASE;
uint32_t x;
while(1)
{
pAddr=(volatile uint32_t*)HPIC_ADDR_RBASE;
pdat = *pAddr;
pAddr=(volatile uint32_t*)HPIA_ADDR_RBASE;
pdat = *pAddr;
pAddr=(volatile uint32_t*)HPIDI_ADDR_RBASE;
pdat = *pAddr;
pAddr=(volatile uint32_t*)HPIDF_ADDR_RBASE;
pdat = *pAddr;
HPI_Write(0x22,0x12345678);
x=HPI_Read(0x22);
}
}
通过单步调试来查看变量值来验证正确性。一开始不如所意,偶然发现读HPIC的值是正确的,但其它的就不行了,
调整EMC的时序,折腾几晚(晚上弄的,不是公事)都不行,简单的东西不通真是想破脑袋,分析理顺了一下:
- 读HPIC的时候值正确,说明OE和CS及部分数据线(HPIC不是每个位都可以在DSP端写,不能都测试)没有问题;
- 读其它寄存器的时候虽然不正确,但不是HPIC的值,说明地址线至少有变化,时序值得怀疑;
- 但是写HPIC不成功,很有可能HRW或者WE的问题,当然还有可能是时序问题;
- 仔细看了HPI的线,似乎都没有上下拉,说明HRW悬空的可能性不大;
好吧,三个方面:时序问题、焊接问题(之前出过问题总会不那么信任),WE(严重怀疑)。异步读写是最简单的操作,
我把各个寄存器的时间都设置成最长,那么时序问题的可能性很小了,WE能有什么问题呢,想不明白。
只好继续看参考手册,又去看数据手册,想找找波形图,找到了个很简陋的波形图,发现PB=0的时候WE没有动作,而PB=1
的时候WE动作了,那么问题来了,仔细地把STATICCONFIG中的PB一个单词不放过地看,终于找到问题了:
** Remark: When PB is set to 0, the WE signal is undefined or 0.
You must set PB to 1, to use the WE signal. **
坑爹啊,本来看这个位的名称就是Byte lane state,跟WE又扯上关系了!设置好后,所有问题解决。后来HPI BOOT的问题就一次测试搞定了:
写了个小python程序将DM642的代码(中断向量需要在0地址)生成的.out文件中需要加载的段转化成c程序,并组成一个链表,然后通过HPI
写到DSP中并给一个DSPINT(需要设置DM642的启动方式为HPI),成功!
[原创]dm642_HPI调通并boot成功的更多相关文章
- 怎样调通微信支付及微信发货通知接口(Js API)
怎样调通微信支付及微信发货通知接口(Js API) 微信支付提供了一个支付測试页面,微信支付正式使用须要測通支付.发货通知接口 .告警接口.维权接口.告警接口.维权接口非常easy.支付界面调通也相对 ...
- 全志R58平台调通s5k5eya(RAW+MIPI)
全志R58平台调通s5k5eya(RAW+MIPI) 2017/5/31 10:30 版本:V1.1 1.前期使用的是s5k5eyx的ISP的固件/tuning 文件 Y:\s5k5eya_r58_d ...
- 2016最后一贴,终于调通一个测试示例,并发现一个BUG???
真的难点在于第一次调通.纠结五天,终于搞出界面. 也发现了一个书上代码,编辑用户时死活不通的情况,我将Links去了,改在data里,我X,,全OK了.. 原来的代码: onAdd: function ...
- 【二】调通单机版的thrift-C++版本
[任务2]调通单机版的thrift-C++版本 [任务2]调通单机版的thrift-C++版本 创建文件 安装boost开发工具 拷贝文件 [可忽略此步骤,如果c++代码直接编译无误的话] 编译 创建 ...
- 【一】调通单机版的thrift-python版本
开发步骤说明 [任务1]调通单机版的thrift-python版本 [任务1]调通单机版的thrift-python版本 安装thrift 创建thrift模块文件并编译 开发python版的clie ...
- [ 原创 ] centos安装tomcat,启动成功 无法访问
https://blog.csdn.net/realjh/article/details/82048492 Linux下Centos7对外开放端口 2018年08月25日 09:53:42 jeter ...
- [原创] 如何PCB通流能力计算
一.计算方法如下: 先计算Track的截面积,大部分PCB的铜箔厚度为35um(不确定的话可以问PCB厂家)它乘上线宽就是截面积,注意换算成平方毫米. 有一个电流密度经验值,为15~25安培/平方毫米 ...
- [原创-性能调优]借助AWR报告分析解决oracleCPU过高的问题
简介:在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise Manager)和AWR(Automatic Workload Repository).其中,通过AWR报告可以生 ...
- 快速调通支付宝当面付Demo
1.访问如下地址: https://auth.alipay.com/login/ant_sso_index.htm?goto=https%3A%2F%2Fopenhome.alipay.com%2Fp ...
随机推荐
- Ubuntu vim+ ctags(包含系统函数) + taglist 配置 分类: vim ubuntu 2015-06-09 18:19 195人阅读 评论(0) 收藏
阅读大型代码,我们经常需要打开很多的代码文件,搜索各种定义.windows下用惯了ide的朋友,转战Linux的时候可能会觉得很难受,找不到合适的阅读工具.其实万能的vim就可以实现.下面介绍一下vi ...
- LAMP环境部署总结
linux+apche+mysql+php 此次用到的工具有:/etc/init.d/iptables , selinux, useradd, yum,chkconfig,sshd,visudo,cr ...
- Android(java)学习笔记179:BroadcastReceiver之 有序广播和无序广播(BroadcastReceiver优先级)
之前我们在Android(java)学习笔记178中自定义的广播是无序广播,下面我们要了解一下有序广播: 1. 我们首先了解一下有序广播和无序广播区别和联系? (1) 有序广播> 接受者 ...
- SetUID、SetGID中的大小写Ss和Sticky bit中的大小写Tt
大写:原文件/目录没有执行(x)权限 小写:原文件/目录有执行(x)权限 例如: 原文件:-rwxr-xr-x 增加SetUID后 4755 变为:-rwsr-xr-x 再如: 原文件:-rwxr-- ...
- JavaScript的DOM操作(三)
1.相关元素操作: var a = document.getElementById("id"); var b = a.nextSibling,找a的下一个同辈元素,注意空格 var ...
- SharePoint SiteCollection Administrator
到网上去找怎么取到一个站点的sitecollection Administrator, 如果设置了一个站点的 sitecollection Administrator, 那么通过: SPSite ...
- wordpress密码生成与登录密码验证
一.研究wordpress时wordpess的密码密码生成与登录密码验证方式很重要 WordPress密码已成为整合的首要目标,如何征服整合,就得了解WordPress密码算法. WordPress系 ...
- (转)ie浏览器判断
常用的 JavaScript 检测浏览器为 IE 是哪个版本的代码,包括是否是最人极端厌恶的 ie6 识别与检测. var isIE=!!window.ActiveXObject; var isIE6 ...
- CI框架篇之视图篇--载入(1)
创建视图 创建视图文件很简单,只需要建立后缀名为‘.php’的文件, 然后保存文件到 application/views/ 文件夹即可 当然,随着工程的大小,你有必要对很多的视图根据控制器进行归类, ...
- Java SE (1)之 JFrame 组件 GridLayout布局
package com.sunzhiyan; import java.awt.*; import javax.swing.*; public class Demo_2 extends JFrame{ ...