Skip to content
Snippets Groups Projects
Commit 8b2cb3f1 authored by 488_MP-4's avatar 488_MP-4
Browse files

partition working on r3

parent de1b088a
No related branches found
No related tags found
3 merge requests!109Final sdmay24-32 merge to master,!104adding cflib to this branch,!101adding baremetal programs
......@@ -11,7 +11,8 @@ CFLAGS = -mcpu=cortex-a72 \
-I$(INCLUDEPATH2) \
-I$(INCLUDEPATH3) \
-I$(INCLUDEPATH4) \
-I$(INCLUDEPATH5)
-I$(INCLUDEPATH5) \
-D__LINUX__
BUILTIN_OPS = -fno-builtin-memset
ASMFLAGS = -mcpu=cortex-a72
......
No preview for this file type
No preview for this file type
......@@ -56,25 +56,64 @@ void interval_func(TimerHandle_t pxTimer)
}
/*-----------------------------------------------------------*/
#define ARM_IO_BASE 0x3F000000
#define GPIO_BASE (ARM_IO_BASE + 0x200000)
#define GPIO_FSEL0 (GPIO_BASE + 0x00)
#define GPIO_SET0 (GPIO_BASE + 0x1C)
#define GPIO_CLR0 (GPIO_BASE + 0x28)
typedef unsigned int uint;
//-------------------------------------------------------------------------
void ledblink()
{
const uint pin = 17;
uint reg1 = GPIO_FSEL0 + ((pin / 10) << 2);
uint shift = (pin % 10) * 3;
uint val = *(volatile uint *)reg1;
val &= ~(7 << shift);
val |= (1 << shift);
*(volatile uint *)reg1 = val;
uint reg_offset = (pin >> 5) << 2; // (pin / 32) * 4;
register volatile uint * reg_offset0 = (uint *)(GPIO_CLR0 + reg_offset);
register volatile uint * reg_offset1 = (uint *)(GPIO_SET0 + reg_offset);
register uint reg_mask = 1 << (pin & 0x1f); // % 32
while ( 1 )
{
*reg_offset0 = reg_mask;
*reg_offset1 = reg_mask;
}
}
void main(void)
{
TaskHandle_t task_a;
uart_init();
uart_puts("\r\n****************************\r\n");
uart_puts("\r\n FreeRTOS UART Sample\r\n");
uart_puts("\r\n****************************\r\n");
ledblink();
// uart_init();
// uart_puts("\r\n****************************\r\n");
// uart_puts("\r\n FreeRTOS UART Sample\r\n");
// uart_puts("\r\n****************************\r\n");
xTaskCreate(TaskA, "Task A", 512, NULL, 0x10, &task_a);
// xTaskCreate(TaskA, "Task A", 512, NULL, 0x10, &task_a);
timer = xTimerCreate("print_every_10ms",(10 / portTICK_RATE_MS), pdTRUE, (void *)0, interval_func);
if(timer != NULL)
{
xTimerStart(timer, 0);
}
// timer = xTimerCreate("print_every_10ms",(10 / portTICK_RATE_MS), pdTRUE, (void *)0, interval_func);
// if(timer != NULL)
// {
// xTimerStart(timer, 0);
// }
vTaskStartScheduler();
// vTaskStartScheduler();
}
/*-----------------------------------------------------------*/
......
......@@ -139,7 +139,7 @@ void uart_init(void)
wait_linux();
#endif
isr_register(IRQ_VC_UART, UART_PRIORITY, (0x1U << 0x3U), uart_isr);
uart_isr_register(uart_isr);
return;
}
/*-----------------------------------------------------------*/
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment