c2000ware-core-sdk/driverlib/.meta/fsitx/fsitx.board.c.xdt

113 lines
3.3 KiB
Plaintext
Raw Permalink Normal View History

2023-06-24 09:05:38 +03:00
% var module = system.modules['/driverlib/fsitx.js'];
% let Common = system.getScript("/driverlib/Common.js");
% var nameOfModule = "fsitx";
% var nameOfPeripheral = module.peripheralName;
//*****************************************************************************
//
// FSITX Configurations
//
//*****************************************************************************
void `nameOfPeripheral`_init(){
% for(var i = 0; i < module.$instances.length; i++)
% {
% var instance = module.$instances[i];
`instance.$name`_init();
% }
}
%if (module != null)
%{
% for(var i = 0; i < module.$instances.length; i++) {
% var instance = module.$instances[i];
void `instance.$name`_init(){
% let instancePinmux = instance[nameOfModule];
//
// Setting for requested nWords and nLanes with transfers
// and desired frame configurations
//
FSI_setTxSoftwareFrameSize(`instance.$name`_BASE, `instance.softwareFrameSize`);
FSI_setTxDataWidth(`instance.$name`_BASE, `instance.dataWidth`);
FSI_setTxFrameTag(`instance.$name`_BASE, `instance.frameTag`);
FSI_setTxFrameType(`instance.$name`_BASE, `instance.frameType`);
//
// Configure start of transmission mode
//
FSI_setTxStartMode(`instance.$name`_BASE, `instance.startOfTransmissionMode`);
%if (instance.startOfTransmissionMode == "FSI_TX_START_EXT_TRIG")
%{
//
// Configure external trigger for start of tranmission
//
FSI_setTxExtFrameTrigger(`instance.$name`_BASE,
`instance.extTriggerSource`);
%}
%if (instance.enableInterrupt)
%{
%for (var index in instance.useInterrupts){
%if (instance.useInterrupts[index] == "FSI_INT1"){
% var interrupts = ""
% for (var int_index in instance.enabledINT1Interrupts)
% {
% interrupts += ((interrupts == "")?"":" | ") + instance.enabledINT1Interrupts[int_index];
% }
%if (interrupts != "")
%{
//
// Configure interrupt for INT1 line
//
FSI_enableTxInterrupt(`instance.$name`_BASE, `instance.useInterrupts[index]`,
`interrupts`);
%}
%}
%}
%}
%if (instance.enableInterrupt)
%{
%for (var index in instance.useInterrupts){
%if (instance.useInterrupts[index] == "FSI_INT2"){
% var interrupts = ""
% for (var int_index in instance.enabledINT2Interrupts)
% {
% interrupts += ((interrupts == "")?"":" | ") + instance.enabledINT2Interrupts[int_index];
% }
%if (interrupts != "")
%{
//
// Configure interrupt for INT2 line
//
FSI_enableTxInterrupt(`instance.$name`_BASE, `instance.useInterrupts[index]`,
`interrupts`);
%}
%}
%}
%}
% if (instance.pingTimeout)
%{
FSI_resetTxModule(`instance.$name`_BASE, FSI_TX_PING_TIMEOUT_CNT_RESET);
DEVICE_DELAY_US(1);
FSI_clearTxModuleReset(`instance.$name`_BASE, FSI_TX_PING_TIMEOUT_CNT_RESET);
//
// Configure Tx ping timeout mode
//
FSI_setTxPingTimeoutMode(`instance.$name`_BASE, `instance.selectPingMode`);
FSI_enableTxPingTimer(`instance.$name`_BASE, `instance.timeoutDelay`,
`instance.frameTag`);
%}
% if (instance.userCRC)
%{
//
// Configure CRC
//
FSI_enableTxUserCRC(`instance.$name`_BASE, `instance.valueCRC`);
%}
//
// Configure compute width for ECC
//
FSI_setTxECCComputeWidth(`instance.$name`_BASE, `instance.eccComputeWidth`);
//
// Initialize Tx, reset sequence, clear events
//
FSI_performTxInitialization(`instance.$name`_BASE, `instance.clkPres`);
}
%}
%}