dsp跳转到指定代码

dsp跳转到指定代码,第1张

跳转指令用于实现程序流程的跳转,在 ARM (同样在TI C66x DSP)程序中有两种方法可以实现程序流程的跳转:

—使用专门的跳转指令(如B指令)。

—直接向程序计数器 PC写入跳转地中带址值。

通过向程序计数器 PC写入跳转地址值,可以实现在 4GB的地址空间中的任意跳转,在跳转之前结合使用MOV LR,PC等类似指令,可以保存将来的返回地址值,从而实现在 4GB连续的线性地址空间的子程序调用。

ARM指令集中的跳转指令可以完成从当前指令向前或向后的 32MB的地址空间的跳转,包括以下4条指令:

— B 跳转指令(TI C66x DSP指令集也有该指令没培喊)

B 指令的格式为:

B 目标地址//程序跳转到枯野目标地址处执行

B Label //程序无条件跳转到标号Label处执行

//(2) 主程序

// 该程序用于实验演示模板上的8个LED的循环显示

#include "register.h"

int temp,i

main()// 初始化子程序

{

asm(" setc SXM")// 抑制符号位扩展

asm(" clrc OVM")//答模 累加器中结果正常溢出

asm(" clrc CNF")// B0被配置为数据存储空间

asm(" setc INTM")// 禁止所有中断

SCSR1=0x81FE// CLKIN=10M,CLKOUT=4*CLKIN=40M

WDCR=0x0E8// 不使能看门狗,因为SCSR2中的WDOVERRIDE

// 即WD?の桓次缓蟮娜笔≈滴?,故可以用

// 软件禁止看门狗

IMR=0x0000 // 禁止所有中断

IFR=0x0FFFF// 清除全部中断标志,"写1清0"皮举饥

MCRA=MCRA&0x00EF // IOPA4,IOPA6,IOPB端口配置为一般的I/O功能, TMS320LF240x的

// 端口均为8位,MCRA为16位因此控制了IOPA,

// 和IOPB的设置

while(1)

{

PBDATDIR=0x0FFe0 // IOPB端口设置为输出方式燃返

PFDATDIR=0x0404

PFDATDIR=0x0FFF0 // IOPF2 设置为输出方式,且IOPF2=1

}

}

// 直接返回中断服务程序

void interrupt nothing( )

{

return

}

//这是一个可用的程序,供你参考


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12359542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存