增加从站回环的代码,仅加了一个,但是仿真结果有错误,需要检查

This commit is contained in:
2025-02-10 00:03:16 +08:00
parent fd74e07123
commit 9943b5c044
6 changed files with 273 additions and 501 deletions

View File

@@ -3,21 +3,7 @@
#include "mstMainCfg.h"
#include "sysDef.h"
volatile uint32_t *plic_priority_3 = (uint32_t*)( 0xc000000U + 0X000004 * 3);
volatile uint32_t *plic_priority_4 = (uint32_t*)( 0xc000000U + 0X000004 * 4);
volatile uint32_t *plic_priority_5 = (uint32_t*)( 0xc000000U + 0X000004 * 5);
volatile uint32_t *plic_priority_6 = (uint32_t*)( 0xc000000U + 0X000004 * 6);
volatile uint32_t *plic_priority_TxEnd = (uint32_t*)( 0xc000000U + 0X000004 * CDR_INT_TXEND);
volatile uint32_t *plic_priority_RxError = (uint32_t*)( 0xc000000U + 0X000004 * CDR_INT_RXERROR);
volatile uint32_t *plic_priority_RxStart = (uint32_t*)( 0xc000000U + 0X000004 * CDR_INT_RXSTART);
volatile uint32_t *plic_priority_RxEnd = (uint32_t*)( 0xc000000U + 0X000004 * CDR_INT_RXEND);
volatile uint32_t *plic_priority_18 = (uint32_t*)( 0xc000000U + 0X000004 * 18);
volatile uint32_t *plic_priority_19 = (uint32_t*)( 0xc000000U + 0X000004 * 19);
volatile uint32_t *plic_priority_20 = (uint32_t*)( 0xc000000U + 0X000004 * 20);
volatile uint32_t *plic_priority_21 = (uint32_t*)( 0xc000000U + 0X000004 * 21);
volatile uint32_t *const plic_priority = (uint32_t *)(0xc000000U);
volatile uint32_t *plic_pending_0_31 = (uint32_t*)( 0xc000000U + 0X001000 );
volatile uint32_t *plic_enable_0_31 = (uint32_t*)( 0xc000000U + 0X002000 );
@@ -37,26 +23,8 @@ extern const uint8_t int_svr_code[];
uint32_t (*sys_call)(uint32_t no, ...);
void main()
{
#if 0
uint32_t readDat;
uint32_t operator;
uint32_t downRecvLen;
uint32_t upRecvLen;
uint32_t slvNum;
uint32_t totNum;
uint32_t isLast;
uint32_t crc;
#endif
int i;
/*初始化plic*/
*plic_enable_0_31 = 1 << CDR_INT_TX0END
//| 1 << CDR_INT_TX1END
@@ -77,10 +45,19 @@ void main()
| 1 << CDR_INT_RX1_FIFO_ENQ
;
*plic_priority_TxEnd = 1;
*plic_priority_RxError = 1;
*plic_priority_RxStart = 1;
*plic_priority_RxEnd = 1;
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;
#if 0
@@ -95,6 +72,7 @@ void main()
//延迟等待从机复位,初始化
for (i = 0; i < 100; i++)
asm volatile("nop");
#endif
//while (init_svr_code() != 1);