ibex_demo/src/main.c

39 lines
996 B
C
Raw Normal View History

2020-05-30 14:42:07 +00:00
#include <stdint.h>
#include <stdio.h>
#include "main.h"
2020-05-30 14:42:07 +00:00
#define DDR_BASE 0x1FC00000
#define DDR_LENGTH 0x100
xilinx_uartlite_handle_t soc_uart;
xilinx_gpio_handle_t soc_gpio;
2020-05-30 14:42:07 +00:00
int main(int argc, char *argv[]) {
printf("Running on LowRISC Ibex\r\n");
printf("System core frequency: %ld\r\n", GetCoreClock());
volatile uint32_t reg_buf = 0;
2020-06-01 10:05:19 +00:00
__csrr("misa", reg_buf);
2020-05-30 14:42:07 +00:00
printf("MISA: 0x%08x\r\n", reg_buf);
2020-06-01 10:05:19 +00:00
__csrr("mhartid", reg_buf);
2020-05-30 14:42:07 +00:00
printf("MHARTID: 0x%08x\r\n", reg_buf);
uint32_t previous_tick = GetTick();
xilinx_gpio_pinmode(&soc_gpio, 1, 1);
xilinx_gpio_write(&soc_gpio, 1, 0);
2020-05-30 14:42:07 +00:00
while(1) {
if(GetTick() - previous_tick >= 500) {
previous_tick = GetTick();
xilinx_gpio_toggle(&soc_gpio, 1);
2020-05-30 14:42:07 +00:00
printf("SysTick: %lu\r\n", GetTick());
2020-06-02 13:34:58 +00:00
uint64_t cycle = __read_mcycle();
printf("MCycle: %08lx%08lx\r\n", (uint32_t)(cycle >> 32), cycle & 0xFFFFFFFFU);
2020-05-30 14:42:07 +00:00
}
}
return 0;
}