⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_iacxl10_2004_3_16.cpp

📁 自己编写的ARM处理器的指令集仿真
💻 CPP
字号:
#define DE_IA#include <stdio.h>#include <stdlib.h>#include <string.h>#include "lljapi.h"#include "armia.h"#include "mem.h"#include "irq.h"int main(int argc,char *argv[]){	        SHM_stru myshm;	static ARMISS_stru state;        key_t mykey;	int shmid,semid;	pid_t pid;	void *shmdata;	char *buffer;	union semun sunion;		struct sembuf sb;			mykey=ftok("/tmp",'b');		shmid=shmget(mykey,SHMDATASIZE,IPC_CREAT | SHM_R | SHM_W);	//printf("arm shmid=%d\n",shmid);	if(shmid==-1)		{printf("child shmget error\n");		 exit(1);		}	shmdata=shmat(shmid,0,0);	if(shmdata==(void *)-1)		{printf("child shmat error\n");		 exit(1);		}	semid=*(int *)shmdata;	//printf("arm semid=%d\n",semid);	myshm.SHMcmdname=(int *)shmdata+sizeof(int);	myshm.SHMrn=(int *)myshm.SHMcmdname+sizeof(int);	myshm.SHMregval=(unsigned long *)myshm.SHMrn+30*sizeof(int);	myshm.SHMdata=(unsigned char *)myshm.SHMregval+sizeof(unsigned long);	myshm.SHMmaddr=(unsigned long *)myshm.SHMdata+sizeof(char);	myshm.SHMsize=(int *)myshm.SHMmaddr+sizeof(unsigned long);	myshm.SHMfilename=(char *)myshm.SHMsize+sizeof(int);	//SHMSptr->End=(ISSstate *)SHMfilename+100;	myshm.SHMendcondition=(unsigned int *)myshm.SHMfilename+100;	myshm.SHMreg[0]=(unsigned long *)myshm.SHMendcondition+sizeof(unsigned int);	myshm.SHMbigendsig=(unsigned int *)myshm.SHMreg[0]+16*sizeof(unsigned long);	myshm.SHMcommandline=(char *)myshm.SHMbigendsig+sizeof(unsigned int);		state.mem_reg(mem,getmem());//shao	state.irq_reg( sendirq );	    while(1){        //printf("waiting for arm full...\n");	   	  locksem(semid,SN_ARMFULL);	  //printf("child process arm receive:\n");	  //printf("receive,*SHMcmdname=%d\n",*myshm.SHMcmdname);	  state=advancecmd(state,semid,myshm);	 	  unlocksem(semid,SN_GDBEMPTY);		  //printf("free gdb empry...\n");    }	shmdt(shmdata);//	shmctl(shmid,IPC_RMID,NULL);	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -