打印

用MB控制器,在sdk中操作信号线方法

[复制链接]
2654|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
千山万水js|  楼主 | 2013-3-27 20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天跟一个同学请教了一下!把flash的挂在mb控制器的总线上,在sdk中对flash擦除,读写操作时。不需要对地址线,信号线,还有使能线这下信号线直接操作。而是像这样,*(base_address+address)=data,就是往flash的address地址中写入数据data,只需要这一条赋值语句,cpu就会自动对flash的地址线,数据线,使能线,这些信号线操作。同理data=*(base_address+address)时,cpu也会自动对flash的地址线,数据线,使能线,这些信号线进行赋值操作,把flash中address中存储的数据读出来保存到data中!
  这种说法应该是对的吧?

相关帖子

沙发
qin552011373| | 2013-3-27 23:09 | 只看该作者
应该对吧

使用特权

评论回复
板凳
GoldSunMonkey| | 2013-3-27 23:23 | 只看该作者
你得符合总线标准,比方AXI总线,XILINX提供IPIF供大家使用

使用特权

评论回复
地板
千山万水js|  楼主 | 2013-3-28 08:58 | 只看该作者
qin552011373 发表于 2013-3-27 23:09
应该对吧

是不是在sdk中直接调用API操作呢?

使用特权

评论回复
5
千山万水js|  楼主 | 2013-3-28 08:59 | 只看该作者
GoldSunMonkey 发表于 2013-3-27 23:23
你得符合总线标准,比方AXI总线,XILINX提供IPIF供大家使用

是不是在sdk中直接调用API操作呢?不需要管那么多呢

使用特权

评论回复
6
ifpga| | 2013-3-28 09:08 | 只看该作者
这不就是我在私信里跟你说的吗,就是这样

使用特权

评论回复
7
Backkom80| | 2013-3-28 10:33 | 只看该作者

使用特权

评论回复
8
千山万水js|  楼主 | 2013-3-28 10:57 | 只看该作者
ifpga 发表于 2013-3-28 09:08
这不就是我在私信里跟你说的吗,就是这样

可能那天我没有理解你的意思!
但现在还有个问题是,在sdk中对flash读写不可能这么简单吧?在读写之前还要先设置flash的配置寄存器,擦除,这些命令啊?是不是应该调用api进行操作呢?

使用特权

评论回复
9
ifpga| | 2013-3-28 11:39 | 只看该作者
你用的是什么型号的FLASH,如果SST这一类的,驱动写起来很简单的
官网上一般都有的,稍微改改就好了

使用特权

评论回复
10
千山万水js|  楼主 | 2013-3-28 13:07 | 只看该作者
ifpga 发表于 2013-3-28 11:39
你用的是什么型号的FLASH,如果SST这一类的,驱动写起来很简单的
官网上一般都有的,稍微改改就好了 ...

XCF128,是开发板上的platform flash,我把它当做普通的flash进行操作

使用特权

评论回复
11
ifpga| | 2013-3-28 13:13 | 只看该作者
你把芯片 DATASHEET 传上来,我看看

使用特权

评论回复
12
千山万水js|  楼主 | 2013-3-28 14:27 | 只看该作者
一个是flash芯片的手册,一个是EDK上那个接口ip的手册。谢谢了

ds762_axi_emc-1.02.pdf

2.14 MB

XCF128X-FTG64C.pdf

2.3 MB

使用特权

评论回复
13
千山万水js|  楼主 | 2013-3-28 14:28 | 只看该作者
ifpga 发表于 2013-3-28 13:13
你把芯片 DATASHEET 传上来,我看看

我传上来了,谢谢你!

使用特权

评论回复
14
ifpga| | 2013-3-28 14:35 | 只看该作者
第二个文档里写得很清楚啊
从第12页里好好看看
读数据就是直接对某个地址读就可以了
写数据和擦除操作相对复杂,要按文档里的流程进行即可

使用特权

评论回复
15
ifpga| | 2013-3-28 14:43 | 只看该作者
你可以去网上找一下 sst32vf1601的驱动看一下
它的操作模式跟这个差不多
可能只是寄存器地址不一样
应该会对你有所帮助

使用特权

评论回复
16
千山万水js|  楼主 | 2013-3-28 14:45 | 只看该作者
ifpga 发表于 2013-3-28 14:35
第二个文档里写得很清楚啊
从第12页里好好看看
读数据就是直接对某个地址读就可以了

因为我现在不会在sdk里操作。所以我直接用逻辑实现的,我写了几个状态机,上电复位之后,设置配置寄存器,然后再读配置寄存器,发现读出来的不对,一直为0,或者ff

使用特权

评论回复
17
GoldSunMonkey| | 2013-3-28 21:24 | 只看该作者
千山万水js 发表于 2013-3-28 14:45
因为我现在不会在sdk里操作。所以我直接用逻辑实现的,我写了几个状态机,上电复位之后,设置配置寄存器 ...

驱动用逻辑搭?

使用特权

评论回复
18
千山万水js|  楼主 | 2013-3-28 21:35 | 只看该作者
GoldSunMonkey 发表于 2013-3-28 21:24
驱动用逻辑搭?

是啊,这样写很麻烦。要写好多状态机

使用特权

评论回复
19
GoldSunMonkey| | 2013-3-29 22:42 | 只看该作者
千山万水js 发表于 2013-3-28 21:35
是啊,这样写很麻烦。要写好多状态机

估计不好实现。逻辑的优势不在于此

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
wmsk + 4 很给力!
20
wmsk| | 2013-3-29 22:46 | 只看该作者
应该听猴哥的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

98

帖子

0

粉丝