Update repo
This commit is contained in:
1 parent
ce65a0f59a
commit
ce1a3b44ad
4 files changed
+44
-274
No files matched your search
@@ -34,6 +34,11 @@
|
||||
#include "uart_drv.h"
|
||||
#include "sci.h"
|
||||
|
||||
#define LED_R 41U // Red LED
|
||||
#define LED_B 58U // Blue LED
|
||||
|
||||
#define SCI_RXDA_PIN 85U
|
||||
#define SCI_TXDA_PIN 84U
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
@@ -61,9 +66,9 @@ uint8_t ucHeap[configTOTAL_HEAP_SIZE];
|
||||
#endif
|
||||
|
||||
// UART stdout redirection configuration related functions
|
||||
int uart_count;
|
||||
void UartSetup(void);
|
||||
void UartPutChar(uint16_t charToWrite);
|
||||
extern int checkPrintf(void);
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
@@ -71,11 +76,13 @@ extern int checkPrintf(void);
|
||||
void configCPUTimer(uint32_t cpuTimer, uint32_t period_us);
|
||||
__interrupt void timer1_ISR(void);
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
void LED_TaskRed(void * pvParameters);
|
||||
void LED_TaskBlue(void * pvParameters);
|
||||
static SemaphoreHandle_t xSemaphore = NULL;
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
void main(void)
|
||||
{
|
||||
@@ -89,13 +96,13 @@ void main(void)
|
||||
|
||||
Device_initGPIO();
|
||||
|
||||
GPIO_setPadConfig(DEVICE_GPIO_PIN_LED1, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setDirectionMode(DEVICE_GPIO_PIN_LED1, GPIO_DIR_MODE_OUT);
|
||||
GPIO_writePin(DEVICE_GPIO_PIN_LED1, 0);
|
||||
GPIO_setPadConfig(LED_R, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setDirectionMode(LED_R, GPIO_DIR_MODE_OUT);
|
||||
GPIO_writePin(LED_R, 0);
|
||||
|
||||
GPIO_setPadConfig(DEVICE_GPIO_PIN_LED2, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setDirectionMode(DEVICE_GPIO_PIN_LED2, GPIO_DIR_MODE_OUT);
|
||||
GPIO_writePin(DEVICE_GPIO_PIN_LED2, 0);
|
||||
GPIO_setPadConfig(LED_B, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setDirectionMode(LED_B, GPIO_DIR_MODE_OUT);
|
||||
GPIO_writePin(LED_B, 0);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@@ -154,29 +161,6 @@ void main(void)
|
||||
// Assign stdout to be a UART device
|
||||
assert(freopen("uart:", "w", stdout) != NULL);
|
||||
|
||||
// printf() tests
|
||||
checkPrintf();
|
||||
|
||||
// Ptr string = Hello world!
|
||||
// printf test
|
||||
// (null) is null pointer
|
||||
// 5 = 5
|
||||
// 129 = - max int
|
||||
// char a = 'a'
|
||||
// hex ff = ff
|
||||
// hex 00 = 00
|
||||
// signed -3 = unsigned 65533 = hex fffd
|
||||
// 0 message(s)
|
||||
// 0 message(s) with %
|
||||
// justif: "left "
|
||||
// justif: " right"
|
||||
// 3: 0003 zero padded
|
||||
// 3: 3 left justif.
|
||||
// 3: 3 right justif.
|
||||
// -3: -003 zero padded
|
||||
// -3: -3 left justif.
|
||||
// -3: -3 right justif.
|
||||
|
||||
// ------------------------------- FreeRTOS -------------------------------
|
||||
|
||||
xSemaphore = xSemaphoreCreateBinary();
|
||||
@@ -219,7 +203,9 @@ void LED_TaskRed(void * pvParameters) {
|
||||
while(1) {
|
||||
if(xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTRUE) {
|
||||
// Toggle red LED
|
||||
GPIO_togglePin(DEVICE_GPIO_PIN_LED1);
|
||||
GPIO_togglePin(LED_R);
|
||||
uart_count++;
|
||||
printf("Hello from FreeRTOS running on the F28377S Coreboard, %d!\r\n", uart_count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -232,8 +218,8 @@ void LED_TaskRed(void * pvParameters) {
|
||||
void LED_TaskBlue(void * pvParameters) {
|
||||
while(1) {
|
||||
// Toggle blue LED
|
||||
GPIO_togglePin(DEVICE_GPIO_PIN_LED2);
|
||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||
GPIO_togglePin(LED_B);
|
||||
vTaskDelay(500);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -288,37 +274,42 @@ __interrupt void timer1_ISR(void) {
|
||||
// UartSetup - Configures SCIA
|
||||
void UartSetup(void) {
|
||||
|
||||
// DEVICE_GPIO_PIN_SCIRXDA is the SCI Rx pin
|
||||
GPIO_setMasterCore(DEVICE_GPIO_PIN_SCIRXDA, GPIO_CORE_CPU1);
|
||||
GPIO_setPinConfig(DEVICE_GPIO_CFG_SCIRXDA);
|
||||
GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_DIR_MODE_IN);
|
||||
GPIO_setPadConfig(DEVICE_GPIO_PIN_SCIRXDA, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_QUAL_ASYNC);
|
||||
// SCIA RX: GPIO85
|
||||
GPIO_setMasterCore(SCI_RXDA_PIN, GPIO_CORE_CPU1);
|
||||
GPIO_setPinConfig(GPIO_85_SCIRXDA);
|
||||
GPIO_setDirectionMode(SCI_RXDA_PIN, GPIO_DIR_MODE_IN);
|
||||
GPIO_setPadConfig(SCI_RXDA_PIN, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setQualificationMode(SCI_RXDA_PIN, GPIO_QUAL_ASYNC);
|
||||
|
||||
// DEVICE_GPIO_PIN_SCITXDA is the SCI Tx pin
|
||||
GPIO_setMasterCore(DEVICE_GPIO_PIN_SCITXDA, GPIO_CORE_CPU1);
|
||||
GPIO_setPinConfig(DEVICE_GPIO_CFG_SCITXDA);
|
||||
GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_DIR_MODE_OUT);
|
||||
GPIO_setPadConfig(DEVICE_GPIO_PIN_SCITXDA, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_QUAL_ASYNC);
|
||||
// SCIA TX: GPIO84
|
||||
GPIO_setMasterCore(SCI_TXDA_PIN, GPIO_CORE_CPU1);
|
||||
GPIO_setPinConfig(GPIO_84_SCITXDA);
|
||||
GPIO_setDirectionMode(SCI_TXDA_PIN, GPIO_DIR_MODE_OUT);
|
||||
GPIO_setPadConfig(SCI_TXDA_PIN, GPIO_PIN_TYPE_STD);
|
||||
GPIO_setQualificationMode(SCI_TXDA_PIN, GPIO_QUAL_ASYNC);
|
||||
|
||||
// Initialize SCIA and its FIFO
|
||||
// Configure SCIA
|
||||
SCI_performSoftwareReset(SCIA_BASE);
|
||||
|
||||
// Configure SCIA with FIFO
|
||||
SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 9600, (SCI_CONFIG_WLEN_8 |
|
||||
SCI_CONFIG_STOP_ONE |
|
||||
SCI_CONFIG_PAR_NONE));
|
||||
SCI_setConfig(SCIA_BASE,
|
||||
DEVICE_LSPCLK_FREQ,
|
||||
115200U,
|
||||
SCI_CONFIG_WLEN_8 |
|
||||
SCI_CONFIG_STOP_ONE |
|
||||
SCI_CONFIG_PAR_NONE);
|
||||
|
||||
SCI_resetChannels(SCIA_BASE);
|
||||
SCI_resetRxFIFO(SCIA_BASE);
|
||||
SCI_resetTxFIFO(SCIA_BASE);
|
||||
|
||||
// Recommended when using FIFO
|
||||
SCI_clearInterruptStatus(SCIA_BASE, SCI_INT_TXFF | SCI_INT_RXFF);
|
||||
|
||||
SCI_enableFIFO(SCIA_BASE);
|
||||
SCI_enableModule(SCIA_BASE);
|
||||
SCI_performSoftwareReset(SCIA_BASE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// UartPutChar - Implements SCI based putchar()
|
||||
void UartPutChar(uint16_t charToWrite) {
|
||||
SCI_writeCharBlockingFIFO(SCIA_BASE, charToWrite);
|
||||
|
||||
Reference in new issue
Block a user