C6416EMIFB,CE3空间连接FIFO的代码,主要部分为EMIFB的配置

#include <stdio.h>
#include <csl.h>
#include <csl_irq.h>
#include <csl_chip.h>
#include <csl_emifb.h>
#include <csl_irq.h>

static EMIFB_Config MyEmifbConfig =
{
 EMIFB_GBLCTL_RMK
 (
  EMIFB_GBLCTL_EK2RATE_FULLCLK, //1 X EMIF input clock
  EMIFB_GBLCTL_EK2HZ_CLK,  //eclkout2 continue output during hold
  EMIFB_GBLCTL_EK2EN_ENABLE, //eclkout2 enable output
  EMIFB_GBLCTL_BRMODE_MRSTATUS, //bus request is memory access or refresh pending/in progress
  EMIFB_GBLCTL_NOHOLD_ENABLE,
  EMIFB_GBLCTL_EK1HZ_CLK,  //eclkout1 continue output during hold
  EMIFB_GBLCTL_EK1EN_ENABLE //eclkout1 enable output
 ),
 0x22a28a22,
 0xffffff1f,
 0x22a28a22,
 0x22a28a12,//CE3空间16位FIFO
 EMIFB_SDCTL_DEFAULT,
 EMIFB_SDTIM_DEFAULT,
 EMIFB_SDEXT_DEFAULT,
 0x00000002,
 0x00000002,
 0x00000002,
 0x00000002
};

volatile Uint32* FIFO_FIRST_ADDRESS = (volatile Uint32 *) 0x6C000000;

#pragma DATA_SECTION(fifo_data,".off_ram");
unsigned int fifo_data[0x8000];

extern far void vectors();

void main()
{
 //初始化CSL
 CSL_init();
 //配置EMIFB
 EMIFB_config(&MyEmifbConfig);
 //设置中断向量表地址
 IRQ_setVecs(vectors);
 //NMI使能
     IRQ_nmiEnable();
           
            IRQ_map(IRQ_EVT_EXTINT6,6);
       IRQ_reset(IRQ_EVT_EXTINT6);
       IRQ_enable(IRQ_EVT_EXTINT6);
       IRQ_globalEnable();
       while(1);
}

interrupt void c_int6()
{
     for(i=0;i<0x8000;i++)
         {
            fifo_data[i]=&FIFO_FIRST_ADDRESS;
            FIFO_FIRST_ADDRESS++;
          }
     volatile Uint32* FIFO_FIRST_ADDRESS = (volatile Uint32 *) 0x6C000000;
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值