伊春西门子电源模块中国代理商
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 品牌
- 西门子
- 型号
- PLC
- 售后
- 代理商
- 联系电话
- 18717946324
- 手机号
- 18717946324
- 联系人
- 占雪芬
- 所在地
- 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213
- 更新时间
- 2024-06-05 08:00
伊春西门子电源模块中国代理商
浔之漫智控技术有限公司经营理念是:以质量求生存,以诚信谋发展。
我们公司能提供全套产品,我们有着**的库存,*优惠的价格
,*的售后服务和*强大的技术力量
我公司大量现货供应,价格优势,品质保证,德国原装进口
usbotg,debug及其它串口打印示例图
debug调试串口方式
使用ahc工具(使用方法见本文下一节)配置apphelper输出为debug。连接板子的debug串口,pc端使用任意串口工具,设置波特率115200,向debug口输出任意三个字符,即可获得apphelper打印的进程线程信息。
串口方式
将底板上引出,且客户应用程序未使用的串口连接上pc。使用ahc工具(使用方法见本文下一节)配置好串口号及波特率。pc端使用任意串口工具,用设定的波特率向该串口输出任意三个字符,即可获得apphelper打印的进程线程信息。
ahc工具使用介绍
ahc工具即apphelper config工具,用于设置apphelper打印信息的输出位置。有两种办法进行设置。
控制面板方式
在板子控制面板中运行ahc工具。
id表示为process进程。tid表示为上面进程下的thread线程。
id号
即进程id值或线程id值。
占用情况
显示格式为 k n% u m% total%
n值为该进程或线程在kernel系统层的占用
m值为该进程或线程在user用户层的占用
total值为总占用,它应当等于n+m的和
进程下各个线程total占用和应当等于进程的total占用
名称
进程名即exe的名称,线程默认没有名称,下一节会介绍如何给线程命名,从而能在apphelper中显示出来。
进程及线程监视说明
apphelper会打印系统下所有的进程的cpu占用信息。
只有在nandflash目录下的exe生成的进程会额外打印出它下面所有线程的cpu占用信息。
默认情况下,生成的线程只有id号,没有名称,如果线程较多会不便于查看。我们可以通过简单代码给线程命名。
以光盘里的串口例程spt_hex为例:
添加一个结构体的定义
typedef struct _thread_index
{
dworddwsize;
dworddwthreadid;
tcharszthreadname[32];
_thread_index*pnext;
}thread_index;
在创建线程后给线程命名
这里把串口接收线程命名为"commrecvtread"
hrecvthread = createthread(0, 0, commrecvtread, this, 0,&m_dwtid);
handle hhlp;
dword dwlen;
hhlp = createfile(l"hlp1:", generic_read | generic_write, 0,0, open_existing, 0, 0);
thread_indexthreadindex;
wsprintf(threadindex.szthreadname, l"commrecvtread");
threadindex.dwthreadid = m_dwtid;
threadindex.dwsize = sizeof(thread_index);
writefile(hhlp, &threadindex, sizeof(thread_index),&dwlen, null);
closehandle(hhlp);
在结束线程后取消命名
线程结束后应当手动将命名取消掉,避免不必要的显示错误,设置线程名为空,即可取消原命名。
handle hhlp;
dword dwlen;
thread_indexthreadindex;
wsprintf(threadindex.szthreadname, l"");
threadindex.dwthreadid = m_dwtid;
threadindex.dwsize = sizeof(thread_index);
closehandle(hhlp);
命名线程后再使用apphelper查看,启动接收线程后,就可以看到commrecvtread这个线程,另外个没有命名的线程为serialport程序的主线程。
伊春西门子电源模块中国代理商
展开全文