Tool/software:
/** @file HL_sys_main.c
* @brief Application main file
* @date 11-Dec-2018
* @version 04.07.01
*
* This file contains an empty main function,
* which can be used for the application.
*/
/*
* Copyright (C) 2009-2018 Texas Instruments Incorporated - www.ti.com
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the
* distribution.
*
* Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* USER CODE BEGIN (0) */
/* USER CODE END */
/* Include Files */
#include "HL_sys_common.h"
#include "HL_system.h"
/* USER CODE BEGIN (1) */
#include "HL_sci.h"
#include "HL_sys_core.h"
#include "HL_esm.h"
#include "HL_sys_vim.h"
#include "string.h"
#define UART sciREG3 // Use SCI3 for communication
void sciNotification(sciBASE_t *sci, uint32 flags);
void check_VIM_interrupts(void);
void check_VIM_dispatch(void);
void sci3_init();
void sci_send_string(sciBASE_t *sci, char *text, uint32 length);
uint8 message[] = "Hello, World!\r\n";
volatile uint8 received_data = 0;
/* USER CODE END */
/** @fn void main(void)
* @brief Application main function
* @note This function is empty by default.
*
* This function is called after startup.
* The user can use this function to implement the application.
*/
/* USER CODE BEGIN (2) */
/* USER CODE END */
int main(void)
{
/* USER CODE BEGIN (3) */
systemInit();
sciInit(); // Initialize SCI (Configured in HALCoGen)
// sci3_init(); // Initialize SCI3 and enable interrupts
_enable_interrupt_(); // Enable Global Interrupts
// Enable RX Interrupt for SCI3
sciEnableNotification(sciREG3, SCI_RX_INT);
//// Enable SCI3 High Interrupt in VIM (SCI3 High is on Channel 64)
vimEnableInterrupt(64, SYS_IRQ);
//
//Enable IRQ
_enable_IRQ_interrupt_();
sciSend(sciREG3, sizeof(message) - 1, message); // Send message via SCI3
volatile int i=0;
while(1) {
// sciSendByte(sciREG3, 'A'); // Send 'A' via SCI3
// for ( i = 0; i < 1000000; i++); // Small delay
// sciSend(sciREG3, sizeof(message) - 1, message); // Send message via SCI3
// for (i = 0; i < 5000000; i++); // Small delay
// if (sciIsRxReady(sciREG3)) { // Check if data is available
// received_data = sciReceiveByte(sciREG3);
// sciSendByte(sciREG3, received_data); // Echo back
// }
}
return 0;
/* USER CODE END */
// return 0;
}
/* USER CODE BEGIN (4) */
//void sci3_init() {
// sciInit(); // HALCoGen generated function
//
//// Enable RX Interrupt for SCI3
// sciEnableNotification(sciREG3, SCI_RX_INT);
//
//// Enable SCI3 High Interrupt in VIM (SCI3 High is on Channel 64)
// vimEnableInterrupt(64, SYS_IRQ);
//
//// Enable IRQ
// _enable_IRQ_interrupt_();
//}
// SCI3 Interrupt Service Routine (ISR)
void sciNotification(sciBASE_t *sci, uint32 flags) {
if (sci == sciREG3 && (flags & SCI_RX_INT)) {
received_data = sciReceiveByte(sci); // Read received byte
sciSendByte(sci, received_data); // Echo received byte
}
}
/* USER CODE END */
