📄 testgcdocp.c
字号:
/*#define OCP_MAP 0x7FFFFF00#define OCP_MAP_STOP 0x7FFFFFFC*/#define ADDR_IN_RESET 0x7FFFFF00 #define ADDR_IN_X 0x7FFFFF04#define ADDR_IN_Y 0x7FFFFF08#define ADDR_IN_RUN 0x7FFFFF0C#define ADDR_OUT_DONE 0x7FFFFF10#define ADDR_OUT_RESULT 0x7FFFFF14typedef unsigned int address;typedef unsigned int value;#define ocpload(address, load) { \unsigned int *ctrlload = (unsigned int *) address; \load = *ctrlload;}#define ocpstore(address,save) { \unsigned int *ctrlstore = (unsigned int *) address; \*ctrlstore = save;}int main(void){ int i; value gcd_done, gcd_result, result; //asm("nop"); //asm("nop"); asm("nop"); // reset gcd ocpstore(ADDR_IN_RESET,1); // stop reset gcd ocpstore(ADDR_IN_RESET,0); // save x=22 ocpstore(ADDR_IN_X,122); // save y=20 ocpstore(ADDR_IN_Y,20); // gcd run ocpstore(ADDR_IN_RUN,1); // stop run ocpstore(ADDR_IN_RUN,0); // test for gcd is done ocpload(ADDR_OUT_DONE,gcd_done); while(gcd_done != 1){ for(i = 0; i<4; i++); ocpload(ADDR_OUT_DONE,gcd_done); } // get gcd result ocpload(ADDR_OUT_RESULT,gcd_result); if(2 == gcd_result) result = -1; else result = 0xFFFF; while(1); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -