查看: 5484|回复: 8

[其他] 关于XEP100的XGATE(已解决)

[复制链接]

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
发表于 2014-6-27 11:57:54 | 显示全部楼层 |阅读模式
//==============以下是XGATE 的初始化
#define PORTPISR_VEC 0x8E  //想要使用P口的外部中断
 
 static void SetupXGATE(void) {
  /* initialize the XGATE vector block and
     set the XGVBR register to its start address */
  XGVBR= (unsigned int)(void*__far)(XGATE_VectorTable - XGATE_VECTOR_OFFSET);
 
  /* switch software trigger 0 interrupt to XGATE */
  ROUTE_INTERRUPT(PORTPISR_VEC, 0x81); /* RQST=1 and PRIO=1 */
 
  /* when changing your derivative to non-core3 one please remove next five lines */
  XGISPSEL= 1;
  XGISP31= (unsigned int)(void*__far)(XGATE_STACK_L + 1);
  XGISPSEL= 2;
  XGISP74= (unsigned int)(void*__far)(XGATE_STACK_H + 1);
  XGISPSEL= 0;
 
  /* enable XGATE mode and interrupts */
  XGMCTL= 0xFBC1; /* XGE | XGFRZ | XGIE */
 
  /* force execution of software trigger 0 handler */
  //XGSWT= 0x0101;
}
 
设置之后在xgate.cxgate里边加入中断服务子程序
interrupt void portp_isr(MyDataType* __restrict pData) {
   PIFP_PIFP0 = 1 ;   //清除中断标志位
   PORTB = 0xf0 ;
  }
 
改变中断向量表
  {(XGATE_Function)portp_isr, (int)&MyData},  // Channel 47 - Port P Interrupt  
 
结果程序在不给P0口加脉冲时正常执行主程序,在给P0口加脉冲,使用XGATE时 死掉了,求大神帮助!!!!
我知道答案 目前已有7人回答
回复

使用道具 举报

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
 楼主| 发表于 2014-6-27 11:59:29 | 显示全部楼层

回复:关于XEP100的XGATE

求帮助
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-27 13:32:22 | 显示全部楼层

RE:关于XEP100的XGATE

楼主,你有没有通过仿真看看你的程序是死在什么地方了呢?
你这个芯片除了模块中断使能外,还有没有使能其他的总中断呢?
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

147

帖子

0

中级会员

Rank: 3Rank: 3

积分
343
最后登录
1970-1-1
发表于 2014-6-27 13:37:41 | 显示全部楼层

RE:关于XEP100的XGATE

楼主在中断子程序里加个断点看看,进没进去,然后跟踪看看死在什么地方了。
应该还是配置没配全。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
 楼主| 发表于 2014-6-27 13:46:34 | 显示全部楼层

回复:关于XEP100的XGATE

回复第 3 楼 于2014-06-27 13:32:22发表:
楼主,你有没有通过仿真看看你的程序是死在什么地方了呢?
你这个芯片除了模块中断使能外,还有没有使能其他的总中断呢?
 
额,仿真那边直接断开复位了,但是单片机明显还在运行(灯还在变换着亮)
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
 楼主| 发表于 2014-6-27 13:48:16 | 显示全部楼层

回复:关于XEP100的XGATE

回复第 4 楼 于2014-06-27 13:37:41发表:
楼主在中断子程序里加个断点看看,进没进去,然后跟踪看看死在什么地方了。
应该还是配置没配全。
 
我也觉得配置没配全,可是按照资料上来的,还有就是,仿真器那边直接断开复位了,但单片机明显还在运行
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

89

帖子

0

中级会员

Rank: 3Rank: 3

积分
378
最后登录
1970-1-1
 楼主| 发表于 2014-6-27 14:01:08 | 显示全部楼层

回复:关于XEP100的XGATE

回复第 3 楼 于2014-06-27 13:32:22发表:
楼主,你有没有通过仿真看看你的程序是死在什么地方了呢?
你这个芯片除了模块中断使能外,还有没有使能其他的总中断呢?
 
还有就是该工程使用的是 对外部的脉冲进行计数,整个程序是
P0口使用外部中断 将其由XGATE负责中断,减轻XEP100主处理器的压力
T4口采用脉冲累加,有主处理器直接产生的PIT中断,进行数据读取。
在整个程序运行过程中:在P0口未加入脉冲时,单片机正常工作,但一但P0口有脉冲,即引发XGATE负责的P0口的外部中断时,这时候仿真器那边复位了,程序那边 几个接了B口灯还在那边无规律的 亮灭,程序好像跑飞了.....................
 
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-27 14:09:31 | 显示全部楼层

RE:关于XEP100的XGATE

楼主这样吧,
由于我们这么目前没有16位的工程师支持。
所以你可以建立一个技术服务请求,那边会有我们相关的工程师帮你解决。
建立服务请求的链接:
https://www.nxpic.org.cn/bbs/article_1280_578569.html
2楼,申请SR按钮,然后按照流程走。
建议采用英文书写方式,工程师会通过邮件方式为你解决。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2019-4-1 22:48
  • 签到天数: 302 天

    连续签到: 1 天

    [LV.8]以坛为家I

    87

    主题

    7322

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    4614
    最后登录
    2021-1-25
    发表于 2014-7-3 00:23:53 | 显示全部楼层

    RE:关于XEP100的XGATE

    脉冲对计数的程序有没有错呢,检查下啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 21:36 , Processed in 0.246730 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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