Update repo
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
% var module = system.modules['/driverlib/lin.js'];
|
||||
% let Common = system.getScript("/driverlib/Common.js");
|
||||
% var nameOfModule = "lin";
|
||||
% var nameOfPeripheral = module.peripheralName;
|
||||
//*****************************************************************************
|
||||
//
|
||||
// LIN 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(){
|
||||
% if (instance.opMode == "LIN"){
|
||||
|
||||
//
|
||||
// Initialize the LIN Module in LIN mode
|
||||
//
|
||||
LIN_initModule(`instance.$name`_BASE);
|
||||
|
||||
//
|
||||
// Enter Software Reset State
|
||||
//
|
||||
LIN_enterSoftwareReset(`instance.$name`_BASE);
|
||||
LIN_setLINMode(`instance.$name`_BASE, `instance.linMode`);
|
||||
% if (instance.linMode == "LIN_MODE_LIN_RESPONDER" && instance.setResponderID)
|
||||
% {
|
||||
LIN_setIDResponderTask(`instance.$name`_BASE, (uint16_t)(0x`instance.responderIdByte`U));
|
||||
%}
|
||||
LIN_setCommMode(`instance.$name`_BASE, `instance.linCommMode`);
|
||||
LIN_setDebugSuspendMode(`instance.$name`_BASE, `instance.linDebugMode`);
|
||||
LIN_setChecksumType(`instance.$name`_BASE, `instance.linChecksumType`);
|
||||
LIN_setMessageFiltering(`instance.$name`_BASE, `instance.linMessageFilter`);
|
||||
% if (instance.autoBaudRate && instance.linMode == "LIN_MODE_LIN_RESPONDER")
|
||||
% {
|
||||
LIN_enableAutomaticBaudrate(`instance.$name`_BASE);
|
||||
LIN_setMaximumBaudRate(`instance.$name`_BASE, `instance.linClkValue`, `instance.mbrVal`);
|
||||
%} else {
|
||||
LIN_setBaudRatePrescaler(`instance.$name`_BASE, `instance.brPrescaler`U, `instance.brDivider`U);
|
||||
%}
|
||||
LIN_setFrameLength(`instance.$name`_BASE, `instance.linFrameLength`U);
|
||||
LIN_setSyncFields(`instance.$name`_BASE, `instance.syncBreak`U, `instance.delimiter`U);
|
||||
LIN_setTxMask(`instance.$name`_BASE, (uint16_t)(0x`instance.txMask`U));
|
||||
LIN_setRxMask(`instance.$name`_BASE, (uint16_t)(0x`instance.rxMask`U));
|
||||
% if (instance.enableParity)
|
||||
% {
|
||||
LIN_enableParity(`instance.$name`_BASE);
|
||||
%} else {
|
||||
LIN_disableParity(`instance.$name`_BASE);
|
||||
%}
|
||||
% if (instance.enableMultibuffer)
|
||||
% {
|
||||
LIN_enableMultibufferMode(`instance.$name`_BASE);
|
||||
%} else {
|
||||
LIN_disableMultibufferMode(`instance.$name`_BASE);
|
||||
%}
|
||||
|
||||
//
|
||||
// Finally exit SW reset and enter LIN ready state
|
||||
//
|
||||
LIN_exitSoftwareReset(`instance.$name`_BASE);
|
||||
% if (instance.enableLoopback){
|
||||
|
||||
//
|
||||
// Enable LIN test mode
|
||||
//
|
||||
% if (instance.loopbackMode == "LIN_TEST_INTERNAL")
|
||||
% {
|
||||
|
||||
//
|
||||
// Enable Internal Loopback mode
|
||||
//
|
||||
LIN_enableIntLoopback(`instance.$name`_BASE);
|
||||
%} else {
|
||||
|
||||
//
|
||||
// Enable External Loopback mode
|
||||
//
|
||||
LIN_enableExtLoopback(`instance.$name`_BASE, `instance.loopbackType`, `instance.analogLoopbackPath`);
|
||||
%}
|
||||
%}
|
||||
%if (instance.enableInterrupt)
|
||||
%{
|
||||
% let interrupts = ""
|
||||
% for (let int_index in instance.interruptFlags)
|
||||
% {
|
||||
% interrupts += ((interrupts == "")?"":" | ") + instance.interruptFlags[int_index];
|
||||
% }
|
||||
%if (interrupts != "")
|
||||
%{
|
||||
LIN_enableInterrupt(`instance.$name`_BASE, `interrupts`);
|
||||
%}
|
||||
% let interruptLine0Flags = ""
|
||||
% for (var int_index in instance.interruptPriorityLine0)
|
||||
% {
|
||||
% interruptLine0Flags += ((interruptLine0Flags == "")?"":" | ") + instance.interruptPriorityLine0[int_index];
|
||||
% }
|
||||
%if (interruptLine0Flags != "" && (instance.interruptLine.includes("LIN_INTERRUPT_LINE0")))
|
||||
%{
|
||||
|
||||
//
|
||||
// Set the LIN interrupt priority Line 0
|
||||
//
|
||||
LIN_setInterruptLevel0(`instance.$name`_BASE, `interruptLine0Flags`);
|
||||
LIN_enableGlobalInterrupt(`instance.$name`_BASE, LIN_INTERRUPT_LINE0);
|
||||
LIN_clearGlobalInterruptStatus(`instance.$name`_BASE, LIN_INTERRUPT_LINE0);
|
||||
%}
|
||||
% let interruptLine1Flags = ""
|
||||
% for (let int_index in instance.interruptPriorityLine1)
|
||||
% {
|
||||
% interruptLine1Flags += ((interruptLine1Flags == "")?"":" | ") + instance.interruptPriorityLine1[int_index];
|
||||
% }
|
||||
%if (interruptLine1Flags != "" && (instance.interruptLine.includes("LIN_INTERRUPT_LINE1")))
|
||||
%{
|
||||
|
||||
//
|
||||
// Set the LIN interrupt priority Line 1
|
||||
//
|
||||
LIN_setInterruptLevel1(`instance.$name`_BASE, `interruptLine1Flags`);
|
||||
LIN_enableGlobalInterrupt(`instance.$name`_BASE, LIN_INTERRUPT_LINE1);
|
||||
LIN_clearGlobalInterruptStatus(`instance.$name`_BASE, LIN_INTERRUPT_LINE1);
|
||||
%}
|
||||
%}
|
||||
% }
|
||||
% else{
|
||||
|
||||
//
|
||||
// Initialize the LIN Module in SCI mode
|
||||
//
|
||||
LIN_initSCIModule(`instance.$name`_BASE);
|
||||
|
||||
//
|
||||
// Enter Software Reset State
|
||||
//
|
||||
LIN_enterSoftwareReset(`instance.$name`_BASE);
|
||||
LIN_setSCICommMode(`instance.$name`_BASE, `instance.sciCommMode`);
|
||||
% if (instance.sleepMode)
|
||||
% {
|
||||
LIN_enableSCISleepMode(`instance.$name`_BASE);
|
||||
%}
|
||||
LIN_setDebugSuspendMode(`instance.$name`_BASE, `instance.linDebugMode`);
|
||||
LIN_setBaudRatePrescaler(`instance.$name`_BASE, `instance.brPrescaler`U, `instance.brDivider`U);
|
||||
LIN_setSCIFrameLength(`instance.$name`_BASE, `instance.sciFrameLength`U);
|
||||
LIN_setSCICharLength(`instance.$name`_BASE, `instance.sciCharLength`U);
|
||||
LIN_setSCIStopBits(`instance.$name`_BASE, `instance.sciStopBits`);
|
||||
% if (instance.enableSCIParity != "disabled")
|
||||
% {
|
||||
LIN_enableSCIParity(`instance.$name`_BASE, `instance.enableSCIParity`);
|
||||
%} else {
|
||||
LIN_disableSCIParity(`instance.$name`_BASE);
|
||||
%}
|
||||
% if (instance.enableMultibuffer)
|
||||
% {
|
||||
LIN_enableMultibufferMode(`instance.$name`_BASE);
|
||||
%} else {
|
||||
LIN_disableMultibufferMode(`instance.$name`_BASE);
|
||||
%}
|
||||
|
||||
//
|
||||
// Finally exit SW reset and enter LIN ready state
|
||||
//
|
||||
LIN_exitSoftwareReset(`instance.$name`_BASE);
|
||||
% if (instance.enableLoopback){
|
||||
|
||||
//
|
||||
// Enable SCI test mode
|
||||
//
|
||||
% if (instance.loopbackMode == "LIN_TEST_INTERNAL")
|
||||
% {
|
||||
|
||||
//
|
||||
// Enable Internal Loopback mode
|
||||
//
|
||||
LIN_enableIntLoopback(`instance.$name`_BASE);
|
||||
%} else {
|
||||
|
||||
//
|
||||
// Enable External Loopback mode
|
||||
//
|
||||
LIN_enableExtLoopback(`instance.$name`_BASE, `instance.loopbackType`, `instance.analogLoopbackPath`);
|
||||
%}
|
||||
%}
|
||||
%if (instance.enableInterrupt)
|
||||
%{
|
||||
% let interrupts = ""
|
||||
% for (let int_index in instance.sciInterruptFlags)
|
||||
% {
|
||||
% interrupts += ((interrupts == "")?"":" | ") + instance.sciInterruptFlags[int_index];
|
||||
% }
|
||||
%if (interrupts != "")
|
||||
%{
|
||||
LIN_enableSCIInterrupt(`instance.$name`_BASE, `interrupts`);
|
||||
%}
|
||||
% let interruptLine0Flags = ""
|
||||
% for (let int_index in instance.sciInterruptPriorityLine0)
|
||||
% {
|
||||
% interruptLine0Flags += ((interruptLine0Flags == "")?"":" | ") + instance.sciInterruptPriorityLine0[int_index];
|
||||
% }
|
||||
%if (interruptLine0Flags != "" && (instance.sciInterruptLine.includes("LIN_INTERRUPT_LINE0")))
|
||||
%{
|
||||
|
||||
//
|
||||
// Set the LIN SCI interrupt priority Line 0
|
||||
//
|
||||
LIN_setSCIInterruptLevel0(`instance.$name`_BASE, `interruptLine0Flags`);
|
||||
LIN_enableGlobalInterrupt(`instance.$name`_BASE, LIN_INTERRUPT_LINE0);
|
||||
LIN_clearGlobalInterruptStatus(`instance.$name`_BASE, LIN_INTERRUPT_LINE0);
|
||||
%}
|
||||
% let interruptLine1Flags = ""
|
||||
% for (let int_index in instance.sciInterruptPriorityLine1)
|
||||
% {
|
||||
% interruptLine1Flags += ((interruptLine1Flags == "")?"":" | ") + instance.sciInterruptPriorityLine1[int_index];
|
||||
% }
|
||||
%if (interruptLine1Flags != "" && (instance.sciInterruptLine.includes("LIN_INTERRUPT_LINE1")))
|
||||
%{
|
||||
|
||||
//
|
||||
// Set the LIN SCI interrupt priority Line 1
|
||||
//
|
||||
LIN_setSCIInterruptLevel1(`instance.$name`_BASE, `interruptLine1Flags`);
|
||||
LIN_enableGlobalInterrupt(`instance.$name`_BASE, LIN_INTERRUPT_LINE1);
|
||||
LIN_clearGlobalInterruptStatus(`instance.$name`_BASE, LIN_INTERRUPT_LINE1);
|
||||
%}
|
||||
%}
|
||||
% }
|
||||
% let instancePinmux = instance[nameOfModule];
|
||||
% let solution = instancePinmux.$solution;
|
||||
% let peripheral = system.deviceData.peripherals[solution.peripheralName];
|
||||
}
|
||||
%}
|
||||
%}
|
||||
@@ -0,0 +1,25 @@
|
||||
% var module = system.modules['/driverlib/lin.js'];
|
||||
%if (module != null)
|
||||
%{
|
||||
//*****************************************************************************
|
||||
//
|
||||
// LIN Configurations
|
||||
//
|
||||
//*****************************************************************************
|
||||
% for(var i = 0; i < module.$instances.length; i++) {
|
||||
% var instance = module.$instances[i];
|
||||
% let lin = instance.lin;
|
||||
% let solution = lin.$solution;
|
||||
%let peripheral = system.deviceData.peripherals[solution.peripheralName];
|
||||
#define `instance.$name`_BASE `peripheral.name`_BASE
|
||||
% if (instance.dmarx) {
|
||||
#define `instance.linRXDMA.$name`_TRIGGER DMA_TRIGGER_`peripheral.name`RX
|
||||
extern const void *`instance.linRXDMA.$name`_ADDRESS;
|
||||
% }
|
||||
% if (instance.dmatx) {
|
||||
#define `instance.linTXDMA.$name`_TRIGGER DMA_TRIGGER_`peripheral.name`TX
|
||||
extern const void *`instance.linTXDMA.$name`_ADDRESS;
|
||||
% }
|
||||
void `instance.$name`_init();
|
||||
% }
|
||||
%}
|
||||
Reference in New Issue
Block a user