GEL_XMDef(0,0x1e,1,0x8000,0x7f);
//0:映射程序空间;0x1e:XPC 的地址;XPC 在数据空间中;
//0x8000:映射首地址;0x7f:XPC 的大小,128页;
GEL_XMOn();// 使能扩展地址映射
6 DSP/BIOS 函数调用和中断触发过程
6.1 DSP/BIOS 函数调用过程
DSP/BIOS API 调用过程如图3 中的实线所示。具体过程如下:
(1) 产生PRD_F_swi, 短调用C 语言封装器的PRD_F_swi(), XPC=0。
(2)C 语言封装器触发PRD_POST_SWI 时钟软中断, 然后检测SWI_PAGE1, 产生执行DSP/BIOS调度表的分支。
(3)DSP/BIOS 调度表保存当前PRD_POST_SWI上下文信息,调用函数链接器以触发SWI_PAGE1。
(4)函数链接器远调用SWI_PAGE1,执行相应的函数(Page1Func),XPC=1。
(5)SWI_PAGE1 执行结束,远返回函数链接器。
(6)函数链接器又返回到DSP/BIOS 调度表。
(7)DSP/BIOS 调度表恢复PRD_POST_SWI 信息,返回到C 语言封装器。
(8)执行上述(1)和(2),第(3)步触发SWI_PAGE2,函数链接器远调用SWI_PAGE2,执行函数(Page2Func),XPC=2。
(9)SWI_PAGE2 执行结束,远返回函数链接器,然后顺序执行上述的第(6)和(7)。
6.2 中断触发过程
中断触发过程如图3中的虚线所示。
(1)PRD_F_swi 发生,CPU 把当前的16位PC 指针压入堆栈,在中断向量表中取指令。
(2)中断向量程序把当前的XPC 压入堆栈,产生一个配置中断服务程序的分支指令,执行中断服务程序,XPC=0。
(3)中断服务程序调用HWI_enter, 触发PRD_POST_SWI
本文关键字:暂无联系方式综合-其它,单片机-工控设备 - 综合-其它