- fixed GPIO

git-svn-id: http://moon:8086/svn/mips@194 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
2021-11-23 07:39:17 +00:00
parent 96618e854f
commit 89509e0ee8
6 changed files with 70 additions and 66 deletions
+29 -9
View File
@@ -31,7 +31,11 @@
extern int paranoia(int argc, char **argv);
extern int calibrate_delay(void);
gpio_if_t gpio_if;
gpio_if_t gpio_led_data;
gpio_if_t gpio_led_dir;
gpio_if_t gpio_mdio_data;
gpio_if_t gpio_mdio_dir;
int g_cnt;
box_t box;
gfx_t gfx;
@@ -135,7 +139,7 @@ void handler7(EXCEPTION_CONTEXT *xcp)
if (*pTim_stat & 1)
{
*pTim_stat = 1; // Acknowledge IRQ
gpio_write(&gpio_if, GPIO_0_MASK_LED, GPIO_0_ALIGN_LED, GPIO_DATA_OFFSET, g_cnt++);
gpio_write(&gpio_led_data, g_cnt++);
GFX_frame(&gfx, GFX_FRAME_NOSYNC);
GFX_restore(&gfx, &box, posx, posy);
GFX_show(&gfx);
@@ -1066,7 +1070,6 @@ int main (void)
g_cnt = 1;
int screen_fd = open("VGA-0", 0, 0);
gpio_init(&gpio_if, SYS_GPIO_0_BASE);
*pVGA_cgcol = 0x00FFFFFF;
@@ -1082,10 +1085,6 @@ int main (void)
setbuf(stdout, NULL);
PrintCPUinfo();
gpio_write(&gpio_if, GPIO_0_MDIO_RST, GPIO_0_ALIGN_MDIO, GPIO_DATA_OFFSET, 1);
sleep(100);
gpio_write(&gpio_if, GPIO_0_MDIO_RST, GPIO_0_ALIGN_MDIO, GPIO_DATA_OFFSET, 0);
interrupt_register(3, handler3);
fprintf(stderr, "UART interrupt registered.\n");
@@ -1144,7 +1143,25 @@ int main (void)
}
}
srand(clock());
gpio_write(&gpio_if, GPIO_0_MASK_LED, GPIO_0_ALIGN_LED, GPIO_DATA_OFFSET, uncached_cachemiss_bug());
// Init GPIO LED
gpio_init(&gpio_led_data, SYS_GPIO_0_DATA, GPIO_0_MASK_LED, GPIO_0_ALIGN_LED);
gpio_init(&gpio_led_dir, SYS_GPIO_0_DIR, GPIO_0_MASK_LED, GPIO_0_ALIGN_LED);
// Init GPIO MDIO
gpio_init(&gpio_mdio_data, SYS_GPIO_0_DATA, GPIO_0_MASK_MDIO, GPIO_0_ALIGN_MDIO);
gpio_init(&gpio_mdio_dir, SYS_GPIO_0_DIR, GPIO_0_MASK_MDIO, GPIO_0_ALIGN_MDIO);
// Set GPIO Dirs
gpio_set(&gpio_led_dir, GPIO_0_MASK_LED);
gpio_set(&gpio_mdio_dir, GPIO_0_MDIO_RST);
// Reset PHY
gpio_set(&gpio_mdio_data, GPIO_0_MDIO_RST);
sleep(100);
gpio_clr(&gpio_mdio_data, GPIO_0_MDIO_RST);
gpio_write(&gpio_led_data, uncached_cachemiss_bug());
Test16_MemTest();
@@ -1170,8 +1187,11 @@ int main (void)
posx = posy = 0;
GFX_show(&gfx);
// Enable timer interrupt
interrupt_enable(7);
*pTim_ctrl |= 3;
// Enable UART interrupt
interrupt_enable(3);
*pUART_stat |= (1 << 6);
@@ -1187,7 +1207,7 @@ int main (void)
interrupt_enable(7);
}
gpio_write(&gpio_if, GPIO_0_MASK_LED, GPIO_0_ALIGN_LED, GPIO_DATA_OFFSET, cnt);
gpio_write(&gpio_led_data, cnt);
printf("-------------------------------------------\n");
printf("-- LoadStore ------------------------------\n");