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.

TMS320F28379D: cpu1无法唤起CPU2的IPC中断

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SECTIONS
{
/* Allocate program areas: */
.cinit : > FLASHE PAGE = 0, ALIGN(4)
.init_array : > FLASHE, PAGE = 0, ALIGN(4)
.text : >> FLASHB|FLASHC|FLASHD|FLASHE PAGE = 0, ALIGN(4)
codestart : > BEGIN PAGE = 0, ALIGN(4)
/* Allocate uninitalized data sections: */
.stack : > RAMM1 PAGE = 1
.data : > RAMGS15 PAGE = 1
.bss : >> RAMGS3 PAGE = 1
.sysmem : > RAMGS2 PAGE = 1
/* Initalized sections go in Flash */
.const : >> FLASHF | FLASHG | FLASHH PAGE = 0, ALIGN(4)
.switch : > FLASHB PAGE = 0, ALIGN(4)
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */
GROUP
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

上面是CPU1的内存分布和调用IPC的例程,使用IPC_sendcommand可以设置寄存器,但是CPU2的IPC0中断无法启动

  • 你好,CPU2的中断是怎么设置的?以及,你是基于哪个TI例程修改的呢?

  • 你好,cmd是pfc vienna例程中的,ipc的例程是参考了C2000 Academy 中的28377的IPC lab,cpu2的中断设置为:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void main(void)
    {
    // Configure system clock and PLL, enable peripherals, and configure
    // flash if used.
    Device_init();
    // Initialize the PIE module and vector table.
    // Interrupt_initModule();
    // Interrupt_initVectorTable();
    Interrupt_initModule();
    Interrupt_initVectorTable();
    // Clear any IPC flags if set already
    IPC_clearFlagLtoR(IPC_CPU2_L_CPU1_R, IPC_FLAG_ALL);
    // Enable IPC0 interrupt.
    IPC_registerInterrupt(IPC_CPU2_L_CPU1_R, IPC_INT0, ipc0_ISR);
    // Enable global interrupts.
    EINT;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 你好,是否有尝试过 C2000Ware 中提供的 C2000 Academy 解决方案?那边工程师的意思是可以先尝试C2000Ware中的解决方案,并检查是否适用。

    IPC lab的解决方案可在以下位置获得:

    C:/ti/c2000/C2000Ware_4_01_00_00/training/device/f2837xd/module11_inter_processor_communications