|
1) #define CANADDR 0x400000 2) bit set mode2 FLG1O|FLG2O; //设置Flag1,Flag2为输出 3) r1=0x00047800; dm(SYSCON)=r0; //设置外部空间大小 4) r0=0x21a8c429;dm (WAIT)=r0; //用2个软等待访问MS0 5) bit set astat ASTAT_FLG1; //Flag1=1, 6) r0=addr;dm(CANADDR)=r0; //写入要访问的SJA1000的内部地址 7) bit clr astat ASTAT_FLG1; //Flag1=0 8) bit clrastat ASTAT_FLG2; //Flag2=0,CS=0 9) i0=CANADDR;r0=dm(i0,0); //读取SJA1000相应地址的数据 10) r1=3;dm(i0,0)=r1; //写入数据到SJA1000相应地址 11) bit set astat ASTAT_FLG2; //Flag2=1,CS=1,5
为说明方便,对各条指令编号。运行指令5、7、8、11各花费25ns,运行指令6、9、10各花费100ns,所以完成一次读或写需300ns。
|