This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMS320F28020:C28x CPU 中中断的程序地址

Guru**** 2235160 points
Other Parts Discussed in Thread: TMS320F28020
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/678575/ccs-tms320f28020-program-address-of-interrupts-in-c28x-cpu

器件型号:TMS320F28020

工具/软件:Code Composer Studio

尊敬的 TI 支持:

我正在通过汇编编写一个用于 TMS320F28020的程序。 我知道 C28x 有32个中断矢量:复位、INT1、INT2... 但我不知道它的地址。 那么、您能给我提供 C28x CPU 的中断地址吗?

谢谢、此致、

Phu Nguyen

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Phu、

    有关地址的相关信息、请参阅 CPU 指南第3章。

    谢谢

    Vasudha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vasudha、您好!

    我有一个新问题。 您能否举例说明如何使用外部中断 INT1对汇编代码进行编码。 我不知道如何为 INT1获取代码。

    这意味着、如果我为8051编写汇编代码、我将使用以下代码:

    org 0000H
    LJMP 主系统
    ORG 000BH ISR 定时器0。
    LJMP T0ISR ;跳转 ISR 定时器0。
    org 0013h ;ISR 1.
    LJMP EX1ISR;跳转 ISR 1.
    org 0030h ;Main

    主:
    ………………μ A

    SJMP $

    T0ISR:
    ………………μ A

    ………………μ A

    RETI

    EX1ISR:
    ………………μ A

    ………………μ A

    RETI
    结束

    在此代码中,我使用 ORG 指向地址,在 C28x CPU 中,我不知道如何操作。 可以帮帮我吗?

    谢谢、

    Phu Nguyen
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Phu Nguyen、

    在 F2802x 上、XINT1通过 PIE 路由、因此您必须使用地址0x0D46中的 ISR 地址设置中断矢量表。 除了分配地址外、还有更多工作要做。

    遗憾的是、我不允许发布 CCS 工程、但为了给您一个想法、下面是一个初始化 PIE 表的汇编代码示例。

    ;将 PIE 矢量表复制到 RAM 中
    SETCVMAP;启用 PIE 矢量表
    MOVWDP,#PIECTRL>>6;加载数据页
    或@PIECTRL、#01b;启用 PIE 矢量表[ENPIE = 1]
    MOVWDP、#_vectorTable;加载数据页
    MOVLXAR7、#_vectorTable;XAR7 =源地址
    MOVLXAR0、#0x0D00;XAR0 =目的地址[0x0D00]
    RPT#255;重复256次(矢量表= 128 x 32位字)
    ||PREAD*XAR0++、*XAR7;将半向量复制到 RAM 中


    其中 PIECTRL 是 PIE 控制寄存器的地址:
    PIECTRL.set0CE0h

    ...vectorTable 是矢量表开头的符号、定义为:
    .def_vectorTable;矢量表符号

    您的矢量表将如下所示:

    .label_PIe_vector_table_start
    矢量表(_):
    .long_UTRAP;[0x0D00]保留
    .long_UTRAP;[0x0D02]保留
    .long_UTRAP;[0x0D04]保留
    .long_UTRAP;[0x0D06]保留

    (笑声) 更多.longs ...

    .long_UTRAP;[0x0D44]保留
    .long_myIsr;[0x0D46] XINT1
    .long_UTRAP;[0x0D48] XINT2

    (笑声) 等等...


    这只是一件事:要从汇编语言中配置和使用器件、还有很多事情要做、您必须知道自己在做什么。 几乎所有 C28x 用户都使用 C 语言进行编码。您为什么更喜欢使用汇编语言?

    此致、

    Richard