在线时间0 小时
UID2087484
注册时间2014-4-21
NXP金币0
该用户从未签到
新手上路

- 积分
- 15
- 最后登录
- 1970-1-1
|
TWRMPC8309和FPGA进行通讯
主要实现功能:Powerpc读fpga开关的值,并把读到的开关值写到fpga的ledr灯显示。
出现的问题:powerpc能够读到开关SW[0:7]的值,也能写到fpga的LEDR[0:7]显示。Fpga上的地址线直接连接到powerpc的MPC_LBC_ADD7-MPC_LBC_ADD0,ADDRESS[7:0]上的地址为powerpc发送的地址。但是通过fpga观察到的powerpc的地址线上的地址一直不对。
跪求高手指点!!
powerpc程序代码:
#include
asm void system_call();
asm void system_call()
{
nofralloc
sc
blr
}
asm void LBC_Init()
{
// select LBC local window 1 eLBC 32M 0xa000_0000---0xa1ff_ffff
lis r5, 0xa000
ori r5, r5, 0x0000 //r5=0xa0000000
lis r4, 0xe0000028@ha//LBLAWRAR1 LBC本地访问窗口1的基址寄存器
stw r5, 0xe0000028@l(r4) // 0xe0000028=(r5)
lis r5, 0x8000
ori r5, r5, 0x1018 //r5=0x80001018
lis r4, 0xe000002c@ha /LBLAWAR1 LBC本地访问窗口1的属性寄存器
stw r5, 0xe000002c@l(r4) //0xe000002c=0xe0001018
}
asm void LBC_config()
{
// 添加 CS3
lis r5, 0xa000
ori r5, r5, 0x1001 //BR3=0xfa001001
lis r4, 0xe0005018@ha
stw r5, 0xe0005018@l(r4) //0xe0005018=0xfa001001
lis r5, 0xfe00
ori r5, r5, 0x0e13 //OR3=0xfe000e13
lis r4, 0xe000501c@ha
stw r5, 0xe000501c@l(r4) //0xe000501c=0xfe000e13
lis r5,0x0003 //LCRR
ori r5,r5,0x0008
lis r4,0xe00050d4@ha
stw r5,0xe00050d4@l(r4)
}
asm void Testr_w()
{
lis r4, 0xa000ffff@ha
lha r5, 0xa000ffff@l(r4) //read
nop
nop
nop
sth r5,0xa000ffff@l(r4) //write
}
void main()
{
system_call(); // generate a system call exception to demonstrate the ISR
LBC_Init();
LBC_config();
while(1)
{
Testr_w();
}
}
|
|