7006|6

13

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

c6678的中断和异常时怎样的一个过程 [复制链接]

大家好,我原本一直在做类似vxworks的嵌入式操作系统,因为一个项目,公司让我熟悉sys/bios+mcsdk,目标板上使用一个ppc的处理器和两个c6678.我想了解一下c6678的中断和异常的使用方式,以及触发后的流程。请大牛不吝赐教。谢谢。

最新回复

呵呵,卤煮现在还没把6678的中断整透啊  详情 回复 发表于 2014-10-20 20:26
点赞 关注
 

回复
举报

1025

帖子

1

TA的资源

纯净的硅(高级)

沙发
 
6678的中断控制主要分两部分,一部分是每个核核内的中断控制,这个狠好理解,跟普通单片机的中断功能类似,另外还有一块是整个芯片还有一个整体的中断控制器,6678的中断我还没来得及研究完,具体的目前帮不上大忙
 
 

回复

124

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
关于6678的中断处理其实可以参照6678的说明文档7.10小节,上面有详细的介绍。也可以参照sys/bios用户指南中的threading module一章,其中详细介绍了硬件中断、软件中断等几种中断模式配置和异常处理,相信楼主已经有了相关资料。另附6678说明文档和它的中断拓扑结构,希望对你有帮助,谢谢!

6678 interrupt topology.png (148.95 KB, 下载次数: 1)

interrupt topology

interrupt topology

interrupt.png (218.68 KB, 下载次数: 0)

interrupt

interrupt

tms320c6678.pdf

2.2 MB, 下载次数: 21

个人签名帮助他人,快乐自己!
 
 
 

回复

283

帖子

0

TA的资源

纯净的硅(高级)

4
 
 
 

回复

4834

帖子

4

TA的资源

版主

5
 
1.中断

中断是由异步的外部事件引起的。外部事件及中断响应与正执行的指令没有关系。通常,中断用于指示I/O设备的一次操作已完成。有两根引脚INTR和NMI接受外部中断请求信号。INTR接受可屏蔽中断请求。NMI接受不可屏蔽中断请求。标志寄存器EFLAGS中的IF标志决定是否屏蔽可屏蔽中断请求。

外部硬件在通过INTR发出中断请求信号的同时,还要向处理器给出一个8位的中断向量。处理器在响应可屏蔽中断请求时,读取这个由外部硬件给出的中断向量号。处理器对这个中断向量号并没有规定。但在具体的微机系统中,系统必须通过软件和硬件的配合设置,使得给出的这个中断向量号不仅与外部中断源对应,而且要避免中断向量号使用冲突情况的出现。可编程中断控制器芯片可配合工作,能够根据设置向处理器提供上述中断向量号,还能处理中断请求的优先级。每个芯片可以支持8路中断请求信号,如果使用9个芯片(一个主片,8个从片),就可使在单个引脚INTR上接受多达64个中断源的中断请求信号。

处理器不屏蔽来自NMI的中断请求。处理器在响应NMI中断时,不从外部硬件接收中断向量号。不可屏蔽中断所对应的中断向量号固定为2。为了不可屏蔽中断的嵌套,每当接受一个NMI中断,处理器就在内部屏蔽了再次响应NMI,这一屏蔽过程直到执行中断返回指令IRET后才结束。所以,NMI处理程序应以IRET指令结束。

2.异常

异常是在执行指令期间检测到不正常的或非法的条件所引起的。异常与正执行的指令有直接的联系。例如,执行除法指令时,除数等于0。再如,执行指令时发现特权级不正确。当发生这些情况时,指令就不能成功完成。软中断指令“INT n”和“INTO”也归类于异常而不称为中断,这是因为执行这些指令产生异常事件。

识别多种不同类别的异常,并赋予每一种类别以不同的中断向量号。异常发生后,处理器就象响应中断那样处理异常。即根据中断向量号,转相应的中断处理程序。把这种中断处理程序称为异常处理程序可能更合适。

根据引起异常的程序是否可被恢复和恢复点不同,把异常进一步分类为故障(Fault)、陷阱(Trap)和中止(Abort)。我们把对应的异常处理程序分别称为故障处理程序、陷阱处理程序和中止处理程序。
 
 
 

回复

1025

帖子

1

TA的资源

纯净的硅(高级)

6
 
呵呵,卤煮现在还没把6678的中断整透啊

点评

没有,现在多核的启动已经头大了。我们用得别人做的板子,现在出现这样的现象,请大牛帮我解决。平台:C6678我们使用别的公司做的板子,现在的情况是,在没有添加SYS/BIOS的情况下,可以通过SPI方式完成多核的启动。  详情 回复 发表于 2014-12-18 20:18
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

7
 
lelee007 发表于 2014-10-20 20:26
呵呵,卤煮现在还没把6678的中断整透啊
没有,现在多核的启动已经头大了。我们用得别人做的板子,现在出现这样的现象,请大牛帮我解决。
平台:C6678
我们使用别的公司做的板子,现在的情况是,在没有添加SYS/BIOS的情况下,可以通过SPI方式完成多核的启动。比如在main函数中添加获取coreID然后从串口进行打印输出,然后进入死循环。
问题:
但是,让在代码中添加两个循环打印任务,在main函数中调用BIOS_Start()。这样的代码没有办法使用上述方式进行启动。查看内容,core0一直在RBL中,0x87FFFC这个位子的值为0,不是core0的入口地址,请教为什么会是这个样子?谢谢。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表