Other Parts Discussed in Thread: SYSCONFIG
Ran into an issue with the F28388D using both CPU1 and CPU2 and all the FSI TX and RX channels.
I was trying to assign ownership of FSITXA and RXA,B,C,D to CPU1 and FSITXB and RXE,F,G,H to CPU2. I'm new to the dual-core processors and tried to leverage SysConfig\SysCtl to come up with the initialization settings.
After much troubleshooting I finally looked directly at DevCfgRegs_CPUSEL16 in the Memory Browser and saw the bits for the RX channels were not being set. Looking back at the generated code from SysConfig\SysCtl, it is not populating the SysCtl_selectCPUForPeripheral() function calls correctly for the RX channels.
The solution was already written in the comments of the SysCtl_selectCPUForPeripheral() function - for peripherals with different TX and RX, like FSI.
Code generated by SysConfig\SysCtl for the desired cpu assignments using the drop-down list selects
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 1, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 2, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 3, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 4, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 5, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 6, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 7, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 8, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 9, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 10, SYSCTL_CPUSEL_CPU2);
Fixed function calls to assign cpu for RX channels (had to make the function calls manually outside of the SysConfig generated files)
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 1, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 2, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 17, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 18, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 19, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 20, SYSCTL_CPUSEL_CPU1);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 21, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 22, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 23, SYSCTL_CPUSEL_CPU2);
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL16_FSI, 24, SYSCTL_CPUSEL_CPU2);
I'm working to leverage as much SysConfig initializations as I can - if this can be fixed I'd like to use the SysCtl for FSI too.
Thank you