Files
eb001/tb/sw/src/MstMain.c

80 lines
1.5 KiB
C

#include <stdint.h>
#include "tl2cdr.h"
#include "system_cfg.h"
#include "sysDef.h"
#include "halfLvdsMacSvr.h"
#include "plic.h"
//-------------------------------------------------------------------
//internal function
static uint32_t init_plic(void);
static void error() ;
void main()
{
int i;
//初始化plic
init_plic();
//延迟等待从机复位,初始化
for (i = 0; i < 100; i++)
asm volatile("nop");
//使用查询策略 POLL_STRATEGY 操作 half lvds mac
HLM_poll(WORKMODE_MASTER);
while (1);
}
uint32_t init_plic(void)
{
/*初始化plic*/
*plic_enable_0_31 = 1 << CDR_INT_TX0END
//| 1 << CDR_INT_TX1END
//| 1 << CDR_INT_RX0ERROR
| 1 << CDR_INT_RX1ERROR
//| 1 << CDR_INT_RX0START
| 1 << CDR_INT_RX1START
//| 1 << CDR_INT_RX0END
| 1 << CDR_INT_RX1END
//| 1 << CDR_INT_TX0_FIFO_DEQ
//| 1 << CDR_INT_TX1_FIFO_DEQ
//| 1 << CDR_INT_RX0_FIFO_ENQ
//| 1 << CDR_INT_RX1_FIFO_ENQ
;
plic_priority[CDR_INT_TX0END] = 1;
plic_priority[CDR_INT_TX1END] = 1;
plic_priority[CDR_INT_RX0ERROR] = 1;
plic_priority[CDR_INT_RX1ERROR] = 1;
plic_priority[CDR_INT_RX0START] = 1;
plic_priority[CDR_INT_RX1START] = 1;
plic_priority[CDR_INT_RX0END] = 1;
plic_priority[CDR_INT_RX1END] = 1;
plic_priority[CDR_INT_TX0_FIFO_DEQ] = 1;
plic_priority[CDR_INT_TX1_FIFO_DEQ] = 1;
plic_priority[CDR_INT_RX0_FIFO_ENQ] = 1;
plic_priority[CDR_INT_RX1_FIFO_ENQ] = 1;
*plic_threshold_0 = 0;
return 0;
}
void error() {
while(1);
}