📄 myfirewallproj.c
字号:
/* * * Xilinx, Inc. * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. *//* * Xilinx EDK 8.2.02 EDK_Im_Sp2.4 * * This file is a sample test application * * This application is intended to test and/or illustrate some * functionality of your system. The contents of this file may * vary depending on the IP in your system and may use existing * IP driver functions. These drivers will be generated in your * XPS project when you run the "Generate Libraries" menu item * in XPS. * * Your XPS project directory is at: * C:\my_projec\ */// Located in: ppc405_0/include/xparameters.h#include "xparameters.h"#include "stdio.h"#include "xutil.h"//#include "try.h"#include "myfirewall.h"#include "myfirewall_reg.h"#include <xps2_l.h>//====================================================#define PS2_BASEADDR XPAR_PS2_PORTS_BASEADDRvoid echo_scancode();void main(){ System_Initial(XPAR_MYFIREWALL_0_BASEADDR); Xuint8 CMD_Read; while(1) { print("Input 1 to read the system registers\r\n"); print("Input 2 to write the system registers\r\n"); print("Input 3 to search a filter rule\r\n"); print("Input 4 to add or change a filter rule\r\n"); print("Input 5 to delete a filter rule\r\n"); print("Input 6 to do flow statistic\r\n"); CMD_Read = Addr_Read_In_8bit(); switch(CMD_Read) { case 1: MYFIREWALL_Read_Operation(XPAR_MYFIREWALL_0_BASEADDR); break; case 2: MYFIREWALL_Write_Operation(XPAR_MYFIREWALL_0_BASEADDR); break; case 3: MYFIREWALL_Search_Filter_Rule(); break; case 4: MYFIREWALL_Add_Change_Filter_Rule(XPAR_MYFIREWALL_0_BASEADDR); break; case 5: MYFIREWALL_Delete_Rule(XPAR_MYFIREWALL_0_BASEADDR); break; case 6: MYFIREWALL_Flow_Statistic(XPAR_MYFIREWALL_0_BASEADDR);break; default: print("Wrong Input!\r\n"); break; } } } /*int main (void) {print("djiajia coming --\r\n");print("djiajia coming --\r\n");print("djiajia coming --\r\n");Xuint16 i; print("-- Entering main() --\r\n");MYFIREWALL_SelfTest(XPAR_MYFIREWALL_0_BASEADDR); MYFIREWALL_mWriteSlaveReg0(XPAR_MYFIREWALL_0_BASEADDR,9);i = MYFIREWALL_mReadSlaveReg0(XPAR_MYFIREWALL_0_BASEADDR);xil_printf("i is %d",MYFIREWALL_mReadSlaveReg0(XPAR_MYFIREWALL_0_BASEADDR));XPs2_mGetStatus(PS2_BASEADDR);TRY_SelfTest(XPAR_TRY_0_BASEADDR);xil_printf("ps2status is %d",XPs2_mGetStatus(PS2_BASEADDR));echo_scancode(); print("-- Exiting main() --\r\n"); return 0; XPs2_mGetStatus(PS2_BASEADDR);}*/void echo_scancode(){ Xuint8 x, xold=0; Xuint8 x1,x2,x3,x4; Xuint8 data; XPs2_mReset(PS2_BASEADDR); print("i am here 1\n"); while(1) { x = XPs2_RecvByte(PS2_BASEADDR); x1 = XPs2_RecvByte(PS2_BASEADDR); x2 = XPs2_RecvByte(PS2_BASEADDR); if(x1 != 0xf0) { x3 = XPs2_RecvByte(PS2_BASEADDR); x4 = XPs2_RecvByte(PS2_BASEADDR); if(x ==0xE0 && x1== 0x5A && x2 == 0xE0 && x3 == 0xF0&& x4== 0x5A) print("\r\n"); else { print("input right number\r\n"); continue;} } else if(x == x2 && x1 == 0xf0) { switch (x) { case 0x70: data = 0;break; case 0x69: data = 1;break; case 0x72: data = 2;break; case 0x7A: data = 3;break; case 0x6B: data = 4;break; case 0x73: data = 5;break; case 0x74: data = 6;break; case 0x6C: data = 7;break; case 0x75: data = 8;break; case 0x7D: data = 9;break; case 0x71: data = 10;break; default : data = 11;break; } if(data < 10) xil_printf("%d", data); else if(data == 10) print("."); else{ xil_printf("input the right number!\r\n"); continue; } } } x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); while(1) { print("i am here 2\n"); x = XPs2_RecvByte(PS2_BASEADDR); xil_printf("x:%x\n",x); print("i am here 3\n"); if(x!=0xF0){ //Skip the 'break' scancode if(x==0xE0){ x = XPs2_RecvByte(PS2_BASEADDR); x1 = XPs2_RecvByte(PS2_BASEADDR); x2 = XPs2_RecvByte(PS2_BASEADDR); x3 = XPs2_RecvByte(PS2_BASEADDR); //xil_printf("(Press ESC to return)Scancode: E0 %02X %02X %02X %02X\r\n", x,x1,x2,x3); xil_printf("(Press ESC to return)Scancode: E0 %02X\n", x); }else{ // if(x!=xold) //XPs2_RecvByte(PS2_BASEADDR); switch (x) { case 0x70: data = 0;break; case 0x69: data = 1;break; case 0x72: data = 2;break; case 0x7A: data = 3;break; case 0x6B: data = 4;break; case 0x73: data = 5;break; case 0x74: data = 6;break; case 0x6C: data = 7;break; case 0x75: data = 8;break; case 0x7D: data = 9;break; default : data = 10;break; } if(data != 10) xil_printf("(Press ESC to return)Scancode: %d\r\n", data); else xil_printf("(Press ESC to return)Scancode: input the right number!\r\n"); print("i am here 4\n"); XPs2_RecvByte(PS2_BASEADDR); print("i am here 5\n"); // xold=x; } print("i am here 6\n"); if(x==0x76) return; } } return ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -