主题中讨论的其他器件:TMS320F28335、 TMS320F28379D
您好!
非常感谢您的支持。 我们一直与 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 中断
}