📄 main.cpp
字号:
#include "includes.h"
void vSysInit(void);
void vPortInit(void);
/***************************************************
功能:CPU端口初始化:
***************************************************/
void vPortInit(void)
{
//CAUTION:Follow the configuration order for setting the ports.
// 1) setting value
// 2) setting control register
// 3) configure pull-up resistor.
//16bit data bus configuration
//PORT A GROUP //v1.0.1
// GPA9 GPA8 GPA7 GPA6 GPA5 GPA4 GPA3 GPA2 GPA1 GPA0
//ADDR24 ADDR23 ADDR22 ADDR21 ADDR20 ADDR19 ADDR18 ADDR17 ADDR16 ADDR0
// 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
rPCONA = 0x3ff;
//PORT B GROUP //v1.0.1
//GPB10 GPB9 GPB8 GPB7 GPB6 GPB5 GPB4 GPB3 GPB2 GPB1 GPB0
//nGCS5 nGCS4 nGCS3 nGCS2 nGCS1 DQM3 DQM2 nSRAS nSCAS SCLK SCKE
// 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
rPCONB = 0x7ff;
//PORT C GROUP
#if (BUSWIDTH==32)
//D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
// 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
rPCONC = 0xaaaaaaaa;
rPUPC = 0xffff;
#else //BUSWIDTH=16
//PORT C GROUP
//nCTS0 nRTS0 RxD1 TxD1 nCTS1 nRTS1 Output Output Output Output Output Output Output Output Output Output
// 11, 11, 11, 11, 11, 11, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01
rPDATC = 0xffff;
rPCONC = 0xfff55555;
rPUPC = 0x0000;
#endif
//PORT D GROUP
// GPD7 GPD6 GPD5 GPD4 GPD3 GPD2 GPD1 GPD0
// Input Input Input Input Input Input Input Input
// 00, 00, 00, 00, 00, 00, 00, 00
rPDATD = 0x00;
rPCOND = 0x0000;
rPUPD = 0x00;
//PORT E GROUP
// GPE8 GPE7 GPE6 GPE5 GPE4 GPE3 GPE2 GPE1 GPE0
//Endian Output Output Output Output Output RxD0 TxD0 Output
// 00, 01, 01, 01, 01, 01, 10, 10, 01
rPDATE = 0x00;
rPCONE = 0x17C;
rPUPE = 0x00;
//PORT F GROUP
// GPF8 GPF7 GPF6 GPF5 GPF4 GPF3 GPF2 GPF1 GPF0
//Output Output Output Output Output Output Output Output Output
// 001, 001, 001, 001, 01, 01, 01, 01, 01
rPDATF = 0x0000;
rPCONF = 0x0000;
rPUPF = 0x0000;
//PORT G GROUP
// GPG7 GPG6 GPG5 GPG4 GPG3 GPG2 GPG1 GPG0
// Input Input Input Input Input Input Input Input
// 00, 00, 00, 00, 00, 00, 00, 00
rPCONG = 0x0000;
rPUPG = 0x00;
rSPUCR = 0x3; //data bus pull-up disable
return;
}
/***************************************************
功能:系统初始化
***************************************************/
void vSysInit(void)
{
//打开CACHE
rSYSCFG = CACHECFG;
//设置不需要CACHE的地址范围
//对nGCS0,nGCS1,nGCS2,nGCS3,nGCS4,nGCS5不启用CACHE
rNCACHBE0 = 0xb0000000;
rNCACHBE1 = 0xb0000000;
rBANKCON0 = 0x7ffc;
vInitBeep();
iUartInit(0,115200);
}
/***************************************************
功能: 主程序
***************************************************/
void Main(void)
{
int i;
char *to;
void (*fp)(void);
struct RTC rtc;
vPortInit();
vSysInit();
vBeep(1000);
GetRTC(&rtc);
vUartPrintf("日期:%02x%02X年%02X月%02X日 %02X:%02X:%02X\n",0x20,rtc.year,rtc.month,rtc.day,rtc.hour,rtc.min,rtc.sec);
vUartPrintf("********************************************\n");
vUartPrintf("*** SJD530 TEST ***\n");
vUartPrintf("********************************************\n");
/*for(i=0;i<5;i++)
{
vUartPrintf("Light:%d \n",i);
vLight(1000);
SLEEP(1000);
}
i = iGetFlashID();
vUartPrintf("Flash ID %d!\n",i);
TestFlash();*/
fp = (void (*)(void))0x8000;
to = (char*)0x8000;
for(i = 0; i < 0x100000; i++){
*to = ReadFlash(0x100000+i);
to++;
}
(*fp)(); //把控制权交给kernel。
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -