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.

[参考译文] LAUNCHXL-F28379D:RTOS SYS/BIOS - TMS320F28379D PIE - ISR - SCI Rx 中断

Guru**** 2539500 points
Other Parts Discussed in Thread: TMS320F28335, TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/998411/launchxl-f28379d-rtos-sys-bios---tms320f28379d-pie---isr---sci-rx-interrupt

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:TMS320F28335TMS320F28379D

您好!

非常感谢您的支持。 我们一直与 TMS320F28335在同一个公主上工作、取得了巨大成功、但我们在将其移植到 TMS320F28379D 方面遇到了困难。
将 RTOS SYS/BIOS 与 LaunchPad TMS320F28379D 配合使用时、您是否需要将 PieVectTable 初始化为初始化的一部分、或者 RTOS SYS/BIOS 是否做出相应的规定?
由于某种原因、不提供饼状中断、我们将批准您的建议和建议、

非常感谢、-c-

-*。cfg --
BIOS.addUserStartupFunction ('&BiosStartFxn');

/* PIE 组9、中断3、矢量编号98 */
VAR interruptNum98=98;
var HWI_SCIRXBParams =新的 Hwi.Params ();
Hwi_SCIRXBParams.arg = interruptNum98;
Hwi_SCIRXBParams.enableAck = true;
Hwi_SCIRXBParams.maskSetting = Hwi.MaskingOption_bitmask;
Hwi_SCIRXBParams.disableMask = 0x0;
Hwi_SCIRXBParams.restoreMask = 0x0;
HWI_SCIRXBParams.instance.name ="HWI_SCIRXB";
program.global.HWI_SCIRXB = Hwi.create (interruptNum98、"&SCIB_RX_ISR"、HWI_SCIRXBParams);

var vm_SwiParams =新的 Swi.Params();
VM_SwiParams.instance.name ="VM_Swi";
program.global.VM_Swi = Swi.create ("&VM_Fxn"、VM_SwiParams);

---- Main.c --
int main (空)

init_ctrl_Sys ();//初始化 CPU
init_Ctrl_Pie ();//初始化并启用 PIE
init_ctrl_gpio();//初始化共享的 GPIO 引脚
init_ctrl_adc ();//初始化 ADC 模数转换器
init_ctrl_dac ();//初始化 DAC 数模转换器
init_ctrl_Flash();//初始化闪存
init_ctrl_sci ();//初始化 SCI 控制器进行通信
BIOS_start();
返回(0);

void BiosStartFxn (void)

Hwi_enablePIEIER (9、3);//启用中断寄存器9.3 SCIB-RX、矢量编号98

void VM_Fxn (void)

CTRL_VirtualMenu();

-- DefaultIsrBioc.c --
中断空 SCIB_RX_ISR (空)

PieCtrlRegs.PIEACK.all = PIEACK_group9;//必须确认 PIE 组
Swi_post (VM_Swi);//布置一个 SWI

-- VitualMenu.c --

void Ctrl_VirtualMenu (空)

uint16 i;
n_NbrChar = ScibRegs.SCIFFRX.bit.RXFFST;

DINT;//禁用 CPU 中断

for (i=0;<n_NbrChar;i++))

rdataA[i]= ScibRegs.SCIRXBUF.all;//读取数据

n_Option = rdataA[0];

开关(n_选项)

案例150:
G_VIMU_bfSW.bit.on = rdataA[1]和0x0001;
中断;

判例151:
G_VIMU_bfSW.bit.run = rdataA[1]和0x0001;
中断;

情况152:
G_VIMU_IQ_IqSupRef =(((rdataA[1]和0x00FF)|(rdataA[2]<< 8))* 0.000244141);
中断;

案例153:
G_VIMU_bfSW.bit.reset = rdataA[1]和0x0001;
中断;

ScibRegs.SCIFFRX.bit.RXFFOVRCLR = 1;//清除溢出标志
ScibRegs.SCIFFRX.bit.RXFFINTCLR = 1;//清除中断标志

EINT;//启用 CPU 中断

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

    您无需初始化 PIE 矢量表- SYS/BIOS 将为您管理它。 您也不需要在 Hwi 函数上使用"中断"键字、因此请将其删除。

    如果您在 CCS 寄存器视图中查看 SCI 寄存器、您能否查看是否设置了中断标志?

    惠特尼

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

    尊敬的惠特尼:

    非常感谢您的支持、我们遵循了您的建议、并更新了需要分配给 CPU1/2的 GPIO 配置(... 不是 F28335所必需的)、我们使 SCI 能够完美地与 SYS/BIOS 配合工作。

    非常感谢、Charles