📄 control.c
字号:
#include "../inc/def.h"
#include "../inc/config.h"
#include "../inc/board.h"
#include "44b.h"
#include "option.h"
void ShowBootInfo(void)
{
puts("\n **************************************\n");
puts("* *\n");
puts("* BIOS for FS44B0 CORE Board V3.30 *\n");
puts("* Http://www.dmatek.com.tw *\n");
puts("* *\n");
puts(" ***************************************\n");
}
//#define FS44B0_BOARD
void PortInit(void)
{
// PORT A GROUP
/* BIT 9 8 7 6 5 4 3 2 1 0 */
/* A24 A23 A22 A21 A20 A19 A18 A17 A16 A0 */
/* 1 1 1 1 1 1 1 1 1 1 */
rPCONA = 0x3ff;
// PORT B GROUP
/* BIT 10 9 8 7 6 5 4 3 2 1 0 */
/* /CS5 /CS4 /CS3 /CS2 /CS1 nWBE3 nWBE2 /SRAS /SCAS SCLS SCKE */
/* NC NC RTL8019 USBD12 NV_Flash NC NC Sdram Sdram Sdram Sdram*/
/* 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 */
rPDATB = 0x7cf;
//PORT C GROUP
//BUSWIDTH=16 */
/* PC15 14 13 12 11 10 9 8 */
/* o o RXD1 TXD1 o o o o */
/* NC NC Uart1 Uart1 NC NC NC NC */
/* 01 01 11 11 01 01 01 00 */
/* PC7 6 5 4 3 2 1 0 */
/* o o o o o o o o */
/* NC NC NC NC NFALE NFCLE NFCE NFRB*/
/* 01 01 01 01 01 01 01 00 */
#ifdef FS44B0_BOARD
rPDATC = 0x0100; //All IO is low, PC8 = 1 LCD-Off, PC9 = 0 BackLight Off
rPCONC = 0xfff5ff54; //0->D12SUSPD, 1~3->LED, 4~7->VD7~VD4, 8->DISPON, 9->BACKLIGHT, 10~13->UART1, 14->RTS0, 15->CTS0
rPUPC = 0x0000; //disable all pull-up
#elif defined ST44B0_BOARD
rPDATC = 0x0300; //All IO is low, PC8 = 1 LCD-Off, PC9 = 1 BackLight Off
rPCONC = 0x0005ff00; //0~3->input, 4~7->VD7~VD4, 8->DISPON, 9->BACKLIGHT, 10~15->input
rPUPC = 0x0000; //disable all pull-up
#else
rPDATC = 0x0100; //All IO is low, PC8 = 1 LCD-Off, PC9 = 0 BackLight Off
rPCONC = 0xfff5ff54; //0->D12SUSPD, 1~3->LED, 4~7->VD7~VD4, 8->DISPON, 9->BACKLIGHT, 10~13->UART1, 14->RTS0, 15->CTS0
rPUPC = 0x0000; //disable all pull-up
#endif
//PORT D GROUP
/* PORT D GROUP(I/O OR LCD) */
/* BIT7 6 5 4 3 2 1 0 */
/* VF VM VLINE VCLK VD3 VD2 VD1 VD0 */
/* 10 10 10 10 10 10 10 10 */
rPCOND= 0xaaaa;
rPUPD = 0x00;
//These pins must be set only after CPU's internal LCD controller is enable
//PORT E GROUP
/* Bit 8 7 6 5 4 3 2 1 0 */
/* ENDLAN LED3 LED2 LED1 LED0 BEEP RXD0 TXD0 CLKOUT */
/* 10 01 01 01 01 01 10 10 11 */
#ifdef FS44B0_BOARD
rPCONE = 0x20828; //0->input, 1 2->TXD0 RXD0, 3 4 6 7->input, 5->beep, 8->CODECLK
rPUPE = 0x000; //disable all pull-up
#elif defined ST44B0_BOARD
rPDATE = 0x70;
rPCONE = 0x15ab; //0->FOUT, 1 2->TXD0 RXD0, 3->beep, 4~6->LED, 7->input, 8->ENDIAN
rPUPE = 0x000; //disable all pull-up
#else
rPCONE = 0x26568; //0->input, 1 2->TXD0 RXD0, 3 4->input, 5->led, 6->buzzer, 7->led, 8->CODECLK
rPDATE = 0x60;
rPUPE = 0x000; //disable all pull-up
#endif
//PORT F GROUP
/* Bit8 7 6 5 4 3 2 1 0 */
/* IISCLK IISDI IISDO IISLRCK Input Input Input IICSDA IICSCL */
/* 100 100 100 100 00 01 01 10 10 */
#ifdef FS44B0_BOARD
rPCONF = 0x24900a; //0 1->IICSCL IICSDA, 2~4->input 5~8->IIS PORT
rPUPF = 0x000; //disable all pull-up
#elif defined ST44B0_BOARD
rPCONF = 0x24000; //0~5->input, 6 7->TXD1 RXD1, 8->input
rPUPF = 0x000; //disable all pull-up
#else
rPCONF = 0x24900a; //0 1->IICSCL IICSDA, 2~4->input 5~8->IIS PORT
rPUPF = 0x000; //disable all pull-up
#endif
//PORT G GROUP
/* BIT7 6 5 4 3 2 1 0 */
/* INT7 INT6 INT5 INT4 INT3 INT2 INT1 INT0 */
/* S3 S4 S5 S6 NIC EXT IDE USB */
/* 11 11 11 11 11 11 11 11 */
rPCONG = 0xff3c; //eint1 is eth interrupt in FS44B0, eint2 for ide
rPUPG = 0x00; //disable all pull-up
// rSPUCR = 0x7; //D15-D0 pull-up disable
rSPUCR = 0x6; //D15-D0 pull-up enable
/*┮Τ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -