TI中文支持网
TI专业的中文技术问题搜集分享网站

tms320f2808指令跳转

我应用的控制芯片是TMS320F2808,有如下问题,等待您的帮助,我想通过自己写的can_bootloader引导程序来烧写dsp程序

1、  我在程序中应用了指针跳转指令,我想问下LB和LCR的区别是什么

2、  在应用跳转指令是不是可以任意跳到设想的区域啊,我遇到一个问题是跳到指定区域后,程序就跑飞了,不能正常的向下运行,我想问下,应用跳转指令时需要遵循什么原则吗,不同的flash区域之间跳转如何实现?

比如当我用LCR       _BOOT_MAIN指令时,跳不进这个_BOOT_MAIN函数,反而跳到如下的地址开始运行:

000066 0000        ITRAP0    

000067 0000        ITRAP0

Eric Ma:

指令说明可以查找这个文档TMS320C28x Assembly Language Tools v6.2.pdf (spru513f.pdf).

下面代码给你参考,跳转到其他地址的。

Eric

.ref _c_int00 .global code_start

************************************************************************Function : codestart section**Description : Branch to code starting point***********************************************************************

.sect "codestart"

code_start: LB check ; LB _c_int00 ;Branch to start of boot.asm in RTS library ; end codestart section

.sect ".text"check: MOVL XAR0, #0x13F780 ; left 2k for mark in sector A CMP *XAR0, #0xFFFF ; never update before B app, EQ LB searchaddPTR: ADDB XAR0, #0x4 ;#1 or #4 or#8search: CMP *XAR0, #0xFFFF B addPTR, NEQ SUBB XAR0, #0x4 CMP *XAR0, #0xFFF0 B app, EQ LB _c_int00app: MOVL XAR7, #0x13A000 ;jump to user app code LB *XAR7.end

我应用的控制芯片是TMS320F2808,有如下问题,等待您的帮助,我想通过自己写的can_bootloader引导程序来烧写dsp程序

1、  我在程序中应用了指针跳转指令,我想问下LB和LCR的区别是什么

2、  在应用跳转指令是不是可以任意跳到设想的区域啊,我遇到一个问题是跳到指定区域后,程序就跑飞了,不能正常的向下运行,我想问下,应用跳转指令时需要遵循什么原则吗,不同的flash区域之间跳转如何实现?

比如当我用LCR       _BOOT_MAIN指令时,跳不进这个_BOOT_MAIN函数,反而跳到如下的地址开始运行:

000066 0000        ITRAP0    

000067 0000        ITRAP0

user3900194:

回复 Eric Ma:

麻烦你能给我说下,不同flash区段之间的跳转指令,需要遵循什么样的原则吗

我应用的控制芯片是TMS320F2808,有如下问题,等待您的帮助,我想通过自己写的can_bootloader引导程序来烧写dsp程序

1、  我在程序中应用了指针跳转指令,我想问下LB和LCR的区别是什么

2、  在应用跳转指令是不是可以任意跳到设想的区域啊,我遇到一个问题是跳到指定区域后,程序就跑飞了,不能正常的向下运行,我想问下,应用跳转指令时需要遵循什么原则吗,不同的flash区域之间跳转如何实现?

比如当我用LCR       _BOOT_MAIN指令时,跳不进这个_BOOT_MAIN函数,反而跳到如下的地址开始运行:

000066 0000        ITRAP0    

000067 0000        ITRAP0

Eric Ma:

回复 user3900194:

这个汇编跳转我也没常用,但是用LB是可以的,你可以查看SPRU430E这个文档的汇编指令。

Eric

赞(0)
未经允许不得转载:TI中文支持网 » tms320f2808指令跳转
分享到: 更多 (0)