集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1261|回复: 1

CPU程序设计

[复制链接]
小舍YZ 发表于 2017-7-26 14:36:02 | 显示全部楼层 |阅读模式
CPU程序设计

以MPC860为例,我们可以将转换完成的RBF文件作为二进制文件,直接写到MPC860系统的某一ROM/Flash区域。由于这段数据的起始地址和长度都是已知的,相应的软件编写是很方便的。
本设计的CPU源程序
void InitPORT(void)
{ // 初始化PB口相应位:
// PB24-输出,PB25-输入,PB26-输出,PB27-输入,PB28-输出
IMMR->pip_pbpar=0x00000000;
IMMR->pip_pbdir=0xFFFFF5AF;
IMMR->pip_pbodr=0x00000000;
IMMR->pip_pbdat=0xffffff57;
}
UBYTE Fpga_DownLoad(void)
{ // FPGA配置
UBYTE *Bootaddr;
UWORD CountNum=0x0;
UBYTE FpgaBuffer, i;
// 获得Boot区首地址
Bootaddr=(UBYTE *)(IMMR->memc_or0 & IMMR->memc_br0 & 0xFFFF8000);
Set_nCONFIG(0); // nCONFIG="0",使FPGA进入配置状态
Set_DCLK(0);
DELAY5us();
if (Read_nSTATUS() == 1)
{ // 检测nSTATUS,如果为"0",表明FPGA已响应配置要求,可开始进行配置。否则报错
Err_LED(1);
return 0;
}
Set_nCONFIG(1);
DELAY5us();

// 开始输出配置数据:
while(CountNum <= 0x0e74e)
{
FpgaBuffer= *(Bootaddr+0x70000+CountNum);
for (i=0; i<8; i++)
{ // DCLK="0"时,在Data0上放置数据(LSB first)
Set_Data0(FpgaBuffer&0x01);
Set_DCLK(1); // DCLK->"1",使FPGA读入数据
FpgaBuffer >>= 1; // 准备下一位数据
if (Read_nSTATUS() == 0)
{ // 检测nSTATUS,如果为"0",表明FPGA配置出错
Err_LED(1);
return 0;
}
Set_DCLK(0);
}
CountNum++;
}

// FPGA初始化:
// ACEX 1K和FLEX 10KE需要10个周期,APEX 20K需要40个周期
for(i=0; i<10; i++)
{
Set_DCLK(1);
DELAY100us();
Set_DCLK(0);
DELAY100us();
}
Set_Data0(0);
if (Read_nCONF_Done() == 0)
{ // 检测nCONF_Done,如果为"0",表明FPGA配置未成功
Err_LED(1);
return 0;
}
return 1; // 成功返回
}
// Data0输出
void Set_Data0(UBYTE setting)
{ // PB24
if (setting) IMMR->pip_pbdat |= 0x00000080;
else IMMR->pio_pbdat &= 0xFFFFFF7F;
}
// 读nSTATUS状态
UBYTE Read_nSTATUS(void)
{ // PB25
if (IMMR->pio_pbdat & 0x00000040) return 1;
else return 0;
}
// 设置nCONFIG电平
void Set_nCONFIG(UBYTE setting)
{ // PB26
if (setting) IMMR->pip_pbdat |= 0x00000020;
else IMMR->pio_pbdat &= 0xFFFFFFDF;
}
// 读nCONF_Done状态
UBYTE Read_nCONF_Done(void)
{ // PB27
if (IMMR->pio_pbdat & 0x00000010) return 1;
else return 0;
}
// 输出DCLK
void Set_DCLK(UBYTE setting)
{ // PB28
if (setting) IMMR->pio_pbdat |= 0x00000008;
else IMMR->pio_pbdat &= 0xFFFFFFF7;
}
// 结束

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
zxopenljx 发表于 2020-6-5 14:10:07 | 显示全部楼层
CPU程序设计
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-29 11:44 , Processed in 0.059479 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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