📄 uart_debug.c
字号:
#define SYS_(offset) (*(volatile unsigned long *)(offset))//32位总线指针
#define SYSW_(offset) (*(volatile unsigned short*)(offset))//16位总线指针
#define SYSC_(offset) (*(volatile unsigned char *)(offset))//8位总线指针
void main(void)
{
unsigned char scomm,sdata;
unsigned short temp;
unsigned char *addrp;
unsigned char *datap;
addrp=(unsigned char*)&address;
datap=(unsigned char*)&data;
init_uart();
put_string("ok!\n");
while (1)
{
scomm=get_char();
if(scomm==0xff)
{
scomm=get_char();
if(scomm!=0xff)
switch(scomm)
{
case 0xa0: //设置地址7~0位
addrp[0]=sdata;
put_string("Set Addr0:");
put_num32(address);
put_string("h\n");
break;
case 0xa1: //设置地址15~8位
addrp[1]=sdata;
put_string("Set Addr1:");
put_num32(address);
put_string("h\n");
break;
case 0xa2: //设置地址23~16位
addrp[2]=sdata;
put_string("Set Addr2:");
put_num32(address);
put_string("h\n");
break;
case 0xa3: //设置地址31~24位
addrp[3]=sdata;
put_string("Set Addr3:");
put_num32(address);
put_string("h\n");
break;
case 0xc0: //设置数据7~0位
datap[0]=sdata;
put_string("Set Word0:");
put_num32(data);
put_string("h\n");
break;
case 0xc1: //设置数据15~8位
datap[1]=sdata;
put_string("Set Word1:");
put_num32(data);
put_string("h\n");
break;
case 0xc2: //设置数据23~16位
datap[2]=sdata;
put_string("Set Word2:");
put_num32(data);
put_string("h\n");
break;
case 0xc3: //设置数据31~24位
datap[3]=sdata;
put_string("Set Word3:");
put_num32(data);
put_string("h\n");
break;
case 0xd0: //总线读取(16位)
put_string("Read Word:");
put_num32(SYSW_(address));
put_string("h at ");
put_num32(address);
put_string("h\n");
break;
case 0xe0: //写总线(16位)
SYSW_(address)=data;
put_string("Write Word:");
put_num32(data);
put_string("h at ");
put_num32(address);
put_string("h\n");
break;
default:
put_string("Not Support!\n");
}
else sdata=0xff;
}
else sdata=scomm;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -