|
#if defined( RT_USING_FINSH ) && defined(RT_USING_DEVICE) && !defined(_WIN32)
#include <finsh.h>
//设备写
//dev_name:设备名称
//hex: 指明buf是否为16进制,1是
//pos: 偏移
//buf: 要写的数据,以0结束
void dev_write(const char *dev_name,u8 hex,rt_off_t pos,char *buf)
{
rt_device_t dev = rt_device_find(dev_name);
if(dev)
{
int len = strlen(buf);
if(hex)
{
len = HexToBin(buf,len);
}//end if(hex)
len = rt_device_write(dev,pos,buf,len);
rt_kprintf("%d writed!\n",len);
}
else
{
rt_kprintf("%s can't find!\n",dev_name);
}
}
#define ONE_PER_LINE 8 //一行显示8个字符
void dev_read(const char *dev_name,rt_off_t pos,uint32_t len)
{
int i;
rt_device_t dev = rt_device_find(dev_name);
if(dev)
{
char buf[129]={0};
int r;
int j;
if(len>128)
{
len=128;
}
r = rt_device_read(dev,pos,buf,len);
if(r<0)
{
rt_kprintf("read error:%d\n",r);
return;
}
rt_kprintf("readed:%d\n",r);
rt_kprintf(" offset ");
for(i=0;i<ONE_PER_LINE;i++)
{
char a=i;
a = a<10?a+='0':a-10+'A';
rt_kprintf(" %c ",a);
}
rt_kprintf("\n");
j=0;
do
{
int k = j;
rt_kprintf("%8x ",pos);
len = r>ONE_PER_LINE?ONE_PER_LINE:r;
for(i=0;i<len;i++)
{
char a,b;
a = buf[j]>>4;
a = a<10?a+='0':a-10+'A';
b = buf[j]&0x0f;
b = b<10?b+='0':b-10+'A';
rt_kprintf("%c%c ",a,b);
j++;
}
i=8-len%8;
if(i<8)
{
while(i--)
{
rt_kprintf(" ");
}
}
for(i=0;i<len;i++)
{
if(isprint(buf[k]))
{
rt_kprintf("%c",buf[k]);
}
else
{
rt_kprintf(".");
}
k++;
}
rt_kprintf("\n");
pos+=ONE_PER_LINE;//show pos +
r-=ONE_PER_LINE;//len -
}while(r>0);
// rt_kprintf("\n");
}
else
{
rt_kprintf("%s can't find!\n",dev_name);
}
}
void dev_cont(const char *dev_name, rt_uint32_t cmd,rt_uint32_t r)
{
rt_device_t dev = rt_device_find(dev_name);
if(dev)
{
rt_kprintf("%d\n",dev->control(dev,cmd,&r) );
}
else
{
rt_kprintf("%s can't find!\n",dev_name);
}
}
FINSH_FUNCTION_EXPORT(dev_write,"Par:(const char *dev_name,u8 hex,rt_off_t pos,char *buf)")
FINSH_FUNCTION_EXPORT(dev_read,"Par:(const char *dev_name,rt_off_t pos,u8 len),len<=128")
FINSH_FUNCTION_EXPORT(dev_cont,"Par:(const char*dev_name, rt_uint32_t cmd,rt_uint32_t r") |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|