这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 单步模拟仿真时,发现箭头和时间程序执行不符。

共2条 1/1 1 跳转至

单步模拟仿真时,发现箭头和时间程序执行不符。

院士
2006-09-17 18:14:16     打赏
单步模拟仿真时,发现箭头和时间程序执行不符。



关键词: 单步     模拟     仿真     发现     箭头     时间     程序     执行         

院士
2006-12-22 22:43:00     打赏
2楼
问 单步模拟仿真时,发现箭头和时间程序执行不符。
箭头执行第N行时,发现实际程序在执行N-5 行的代码、?
为什么会这样啊,该怎么解决? 1: 重新编译,download主要是原文件和你执行文件时间修改记录不一致 2: 也有可能是流水指令造成的 3: 我重新编译、download,还是不行?该怎么办? 4: 是四级流水造成的是四级流水造成的,尤其在c 和汇编混合时,在IDE容易出现这种情况,不过,不会影响的程序的正确执行,习惯就好了 5: 1我只在CodeStartBranch.asm用汇编关闭WDT,其它都用C的 6: 同意yellowland的观点。如果用过assemly, 就遇到很多流水线的相关指令问题。这也就现在很多高级DSP 不推荐使用assembly 的原因。 7: 2我只在CodeStartBranch.asm中用汇编,是不是把该部分改成C就可以了?

/*-------------------
CodeStartBranch.asm
----------------------*/
WD_DISABLE    .set    1        ;set to 1 to disable WD, else set to 0

    .ref _c_int00

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

    .sect "codestart"

code_start:
    .if WD_DISABLE == 1
        LB wd_disable       ;Branch to watchdog disable code
    .else
        LB _c_int00         ;Branch to start of boot.asm in RTS library
    .endif

;end codestart section


***********************************************************************
* Function: wd_disable
*
* Description: Disables the watchdog timer
***********************************************************************
    .if WD_DISABLE == 1

    .text
wd_disable:
    SETC OBJMODE        ;Set OBJMODE for 28x object code
    EALLOW              ;Enable EALLOW protected register access
    MOVZ DP, #7029h>>6  ;Set data page for WDCR register
    MOV @7029h, #0068h  ;Set WDDIS bit in WDCR to disable WD
    EDIS                ;Disable EALLOW protected register access
    LB _c_int00         ;Branch to start of boot.asm in RTS library

    .endif

;end wd_disable



    .end

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]