博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
修行之路
修行,修行...
mykof.cublog.cn
管理博客
发表文章
留言
收藏夹
博客圈
音乐
相册
文章
· C/C++
· Embedded Linux
· PC Linux
· PC Windows
· WDM
· 生活杂谈
首页
关于作者
姓名:傻强 职业:程序员 年龄:25 性别:男 位置:嵌入式软件工程师 个性介绍:人傻钱多速来
||
<<
>>
||
我的分类
最新文章
·
在linux上获得线程id的方法
·
Firefox 3 快速指南 (安..
·
linux 查看可执行文件依赖..
·
Windows 注册表 增强工具..
·
C语言测试:想成为嵌入式..
最新留言
·
ANDYS
想叫你帮忙把一个VC的重编..
·
edwinrong
excellent!
·
diamond5
傻强,能和你聊聊吗?赚钱..
·
yexin218
http://forum.ubuntu.com...
·
yexin218
呵呵,沙发哦!
eclipse+..
最新评论
·
很感谢,现在又出了新问题..
·
首先感谢你的回复,现在我..
·
是个新手,问的问题可能比较..
·
不好意思我误操作了,发了..
·
现在老提示这样的错误:
..
最新收藏
·
荣哥BLOG
·
小胡子BLOG
统计信息
·
总访问量:31106
·
文章个数:39
·
评论条数:67
·
留言条数:5
·
网友推荐:
在linux上获得线程id的方法
我使用了第二种方法,很方便:<br>#define gettid() syscall(__NR_gettid)<br>用到的地方 gettid()<br>==================================================================================<br>在linux2.4版本后,linux使用了NPTL作为自己的线程库,为了兼容POSIX标准,所以在内核task中有两个域tgid和tid,前者是 进程id,后者是线程id。在linux上获得线程id的方法,目前我所知的有三种,当然这里的三种是指在用户态的程序中,否则除非自己写的kernel module, 都是调用编号224的系统调用实现的(2.6版本)。 <br> <br>第一种: gettid(), man gettid 可以看到gettid的使用方式。 <br> 使用时要先定义:_syscall0(pid_t, gettid) <br> 其中_syscall0是一个宏(由于参数的不同还有_syscall1,_syscall2...),定义如下: <br> #define _syscall0(type,name) \ <br> type name(void) \ <br> { \ <br> long __res; \ <br> __asm__ volatile ("int $0x80" \ //int 80, 软中断 <br> : "=a" (__res) \ //输入输出都用的eax <br> : "0" (__NR_##name)); \ //#defi……
查看全文
发表于:2008-07-16 ┆
阅读(83)
┆
评论(0)
Firefox 3 快速指南 (安装必要插件)
<div>Ubuntu安装好之后由一个快速指南能方便的让用户按照指南快速设置Ubuntu,也给Firefox 3写一个简单的快速指南,主要介绍安装必要的插件。</div> <div> </div> <div>1.IE TAB</div> <div>很多网站还是只能用IE看,第一个就装它。在附加组件中直接安装就行。</div> <div> </div> <div>2.Foxmakrs</div> <div>在多台电脑之间同步书签用的,公司和家里的电脑保持书签同步,方便多了。在附加组件中直接安装</div> <div> </div> <div>3.Flashgot</div> <div>迅雷估计是目前最流行的下载工具(虽然它是一个盗链王),迅雷目前还没有直接支持Firefox 3,所以安个flashgot来间接支持迅雷吧。</div> <div> </div> <div>4.Tab Mix Plus</div> <div>TMP的标签功能很喜欢用,也得安上。不过现在Release的版本还不支持Firefox 3,所以用Dev版本先顶替,直接在地址栏输入以下地址即可进行安装:</div> <div> </div> <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <p style="margin: 5px; line-height: 150%;"><a href……
查看全文
发表于:2008-07-11 ┆
阅读(147)
┆
评论(0)
linux 查看可执行文件依赖的动态链接库
ldd直接可以看到,如果没有的话,<br><br>arm-linux-objdump -x nfs_2.2/bin/qpe | grep NEEDED
查看全文
发表于:2008-07-06 ┆
阅读(128)
┆
评论(0)
Windows 注册表 增强工具 (可以批量查找替换)
<p>修改Windows的注册表,长期以来都是一个令人头疼的事。对于那些初学者来说,一旦遇到与修改注册表的联 系上,肯定望而却步。不过现在你不必在害怕它了,因为你有了注册表编辑高手——Registry Toolkit。Registry Toolkit是一个注册表编辑软件,它可以搜索和替换 Windows 注册表的内容,最主要的是它还可以远程操作你的注册表,还可以使用命令行的宏命令进行批量处理。而其网络功能,则可使不敢对注册表动手的你,能够请高手远 程帮忙。</p> <p> Registry Toolkit是Funduc Software.公司出品的一个注册表修改程序,它可以轻易的实现键值的查找、替换、粘贴、复制、导入、导出等操作,而且还可以对注册表通过网络进行远程操作,是注册表修改爱好者们的必备工具。</p> <p> Registry Toolkit虽然是一款共享软件,但它没有时间上的限制,所以你可以永久的使用它,无须为使用期限而烦恼。Registry Toolkit的安装界面是标准的Windows安装界面,你只要一路按几次“Next”就可以了。</p> <p> 运行Registry Toolkit后,首先出现的是<a href="http://tech.sina.com.cn/s/rt/01.jpg" target="_blank">如图</a>所示的信息框,里面显示的是版权声明,以及可用内存和可……
查看全文
发表于:2008-07-06 ┆
阅读(133)
┆
评论(0)
C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织<br>了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信<br>息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。<br>从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者<br>为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这个愚蠢的问题吗?如要你答<br>出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这<br>标志着出题者也许花时间在微机上而不上在嵌入式系统上。如果上述任何问题的答案是“<br>是”的话,那么我知道我得认真考虑我是否应该去做这份工作。<br>从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解<br>应试者C语言的水平。不管怎么样,看一下这人如何回答他不会的问题也是满有趣。应试者<br>是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借口<br>呢,还是表现出对问题的真正的好奇心,把这看成学习的机会呢?我发现这些信息与他们<br>的测试成绩一样有用。<br>有了这些想法,我决定出一些真正针对嵌……
查看全文
发表于:2008-07-06 ┆
阅读(96)
┆
评论(0)
什么是DDR2内存?什么是双通道技术?DDR2内存能和DDR通用吗?
<b>什么是DDR2内存?</b> <p align="left"> DDR2 SDRAM即Double Data Rate2 SDRAM,它是电子设备工程委员会JEDEC制定的内存标准。与DDR SDRAM相比,其最大特点是将内存电压降至1.8V,同时使用4bit预读取技术,拥有一倍于DDR的读取能力,达到每周期传送4次数据,相同工作频率 下,带宽比DDR高一倍。</p> <p align="left"> <b>为什么DDR2内存上只有FBGA封装?</b></p> <p align="left"> <b> </b>很多消费者发现,DDR内存颗粒只有FBGA封装一种,很难看到TSOP颗粒,也是因为JEDEC规定了DDR2只能使用发热量更小的封装格式。FBGA封装可以有效降低内存的功耗和电压,因此<b>DDR2内存的运行电压仅为1.8V,发热量比普通DDR内存小很多,同容量情况下,DDR2 533的功耗要比DDR400低60%左右,这对于强调低功耗的笔记本来说非常重要。</b></p> <p align="left"> <b>DDR2内存能和DDR通用吗?</b></p> <p align="left"> <b> </b>由于早期的Sonoma笔记本普遍采用了DDR内存,因此不少用户想知道他们的爱机能否直接升级 成DDR2。尽管移动平台两种内存的插脚数相同,都为200PIN,但两种内存并不……
查看全文
发表于:2008-07-06 ┆
阅读(155)
┆
评论(0)
C Java PHP Perl Python的程序代码美化工具使用
<span class="post-footers"> 作者:<a href="http://www.chedong.com/">车东</a> 发表于:2002-04-06 18:04 最后更新于:2007-04-12 11:04<br> <a href="http://creativecommons.org/licenses/by/3.0/deed.zh">版权声明</a>:可以任意转载,转载时请务必以超链接形式标明文章<a class="permalink" href="http://www.chedong.com/tech/indent_tools.html">原始出处</a>和作者信息及<a href="http://www.chedong.com/blog/archives/001249.html">本声明</a>。<br> <a class="permalink" href="http://www.chedong.com/tech/indent_tools.html">http://www.chedong.com/tech/indent_tools.html</a> </span> <hr> <div class="entry-body"> <p>内容摘要:<br> 写本文的目的无非是2个:<br> </p> <ol><li>如果前任程序员缩进非常不整齐的代码非常影响现任维护者的代码阅读速度。</li><li>新的项目代码(无论在什么编辑环境……
查看全文
发表于:2008-07-06 ┆
阅读(85)
┆
评论(0)
世界上最好的杀毒软件+国产3大杀软 优缺点
焦头烂额的末路英雄—江民KV <br> (本人注:本人使用的产品,就输在营销能力不强、知名度不够高,但技术能力无遗尚处于国内第一,监控能力一流,系统资源占用少,查杀病毒库最全,最近哄动一时的“敲诈者病毒”还是他第一个截获的,在杀软这个市场,毕竟我们最终还是要看疗效啊)<br> 有些渐渐陷入泥潭的末路英雄KV,无论是监控还是查杀能力依旧是当今国产杀软中的翘楚,甚至可以勉力和KAV(即下文的卡巴斯基)争锋。估计是年纪大 了,老得糊涂了,只顾着在盗版的狂潮中穷追猛打,对于重中之重的市场营销,却远远落后于爱做秀的小兄弟瑞星和金山。对于江民来而言,看着白花花的银子落到 他人口袋,滋味可比女朋友被人抢难受多了。而且在软件稳定运行,和升级方面,KV这一路走来可是摇摇晃晃,大大小小的问题也层出不穷,在技术创新上也屡出 昏招;把这位曾经八面威风的毒林高手折磨的焦头烂额。但幸其功力深厚,百死不僵,而且还身轻如燕,不给系统添累赘。前进路上虽然走得跌跌碰碰,但依然不甘 落后。如果KV能继续保持它在技术创新上的努力,并改进它的售后服务态度和软件稳定性,恐怕不仅超过瑞星,重坐国内市场销售首把金交椅,还将变成众多国际 杀软大鳄的……
查看全文
发表于:2008-07-06 ┆
阅读(161)
┆
评论(0)
C/C++中 const,extern,static,volatile的使用
<div class="g_t_center g_c_pdin g_p_center c07 content" style="width: 760px;" id="blogtext_fks_087075081081082070086080082095087086081070084082086075"> <div><div><font size="2"><font face="宋体"><strong>1.const的用法:<br> </strong>为什么使用const?<br> 采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替) <br> <br> 用法1:常量<br> 取代了C中的宏定义,声明时必须进行初始化。const限制了常量的使用方式,并没有描述常量应该如何分配。如果编译器知道了某const的所有使用,它 甚至可以不为该const分配空间。最简单的常见情况就是常量的值在编译时已知,而且不需要分配存储。―《C++ Program Language》<br> 用const声明的变量虽然增加了分配空间,但是可以保证类型安全。<br> C标准中,const定义的常量是全局的,C++中视声明位置而定。<br> <br> 用法2:指针和常量<br> 使用指针时涉及到两个对象:该指针本身和被它所指的对象。将一个指针的声明用const“预先固定”将使那个对象而不是使这个指针成为常量。……
查看全文
发表于:2008-07-06 ┆
阅读(106)
┆
评论(0)
Source Insight3.0: Linux源代码阅读的利器
<blockquote>折腾来着腾去,发现还是得用Souce Insight。还没有发现更好用的。特此转载此文章:<br><br>阅读源代码是钻研技术的最佳手段,而Linux提供了一个庞大的源代码库,但是,由于缺乏良好的源代码阅读工具,使得阅读Linux源代码尤其是内核源代码十分困难,在本文中,笔者向大家推荐一个优秀的源代码阅读工具,并介绍了它的使用方法。</blockquote><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --> <!--END RESERVED FOR FUTURE USE INCLUDE FILES--> <p>作为一个开放源代码的操作系 统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是Linux内核的组织极为复杂,同时,又不能像windows平台 的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读 变得尤为困难。</p> <p>当然Linux下的vim和emacs编辑程序并不是没有提供变量、函数搜索,彩色显示程序语句等功能。它们 的功能是非常强大的。比如,……
查看全文
发表于:2008-07-06 ┆
阅读(111)
┆
评论(0)
rdesktop 全屏幕 快捷方式
Ctrl+Alt+Enter.<br><br>第一次全屏幕之后,都不知道怎么退出。特此记下,哪些和我一样的兄弟可以看到。
查看全文
发表于:2008-07-06 ┆
阅读(82)
┆
评论(0)
0xC0000005错误 解决了
调试程序的是否发现一到这个就出错<br>hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE,<br> CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);<br><br>在网上找了很多资料,说空指针比较有可能,对这CreateWindow反复修改参数还是不行。<br><br>后来把Call Statck一看才恍然大悟,程序早就跑到回调函数了(VC为什么不做的更好一点呢,直接跳到出错的回调函数不就省事多了吗)。以后遇到这种BUG一定先看看Call Statck。
查看全文
发表于:2008-07-06 ┆
阅读(172)
┆
评论(4)
kgdb在ARM开发板上调试kernel成功
<div>大概几个注意点:</div> <div>1.公版的Linux需要打kgdb补丁的,kgdb官方那边可能不支持新版本的内核(我的是2.6.18),可以在下面的网址找到,但是ARM上调试需要打哪些补丁,不是很清楚,网上的几篇中文教程文章都是针对x86调试的。</div> <div>montavista是已经打好补丁的。</div> <div>http://kernel.org/pub/linux/kernel/people/agk/patches/2.6/2.6.18/</div> <div> </div> <div>2.在make menuconfig<br>选中这几个items:<br>Kernel hacking ---><br>[*] Compile the kernel with debug info<br>[*] KGDB: kernel debugging with remote gdb <br>[*] KGDB: Console messages through gdb &……
查看全文
发表于:2008-06-22 ┆
阅读(143)
┆
评论(0)
中国移动和中国联通的上网设置(通用)
<div><font face="Verdana" size="2"> <div>中国移动:</div> <div>1.WAP/MMS</div> <div>1.1 WAP</div> <div> 主页: http://wap.monternet.com</div> <div> GPRS网关IP地址:10.0.0.172</div> <div> 端口号码:9201/80</div> <div> 连接类型:WSP/HTTP</div> <div> 网域接入点:cmwap</div> <div> 用户名:空</div> <div> 密码:空</div> <div>1.2 MMS</div> <div> 多媒体中心: http://mmsc.monternet.com</div> <div> GPRS网关IP地址:10.0.0.172</div> <div> 端口号码:9201/80</div> <div> 连接类型:WSP/HTTP</div> <div> 网域接入点:cmwap</div> <div> 用户名:空</div> <div> 密码:空</div> <div>2.Internet</div> <div> 主页: http://wap.monternet.com</div> <div> 网域接入点:cmnet</div> <div> 用户名:空</div> <div> 密码:空</div> <div> DNS:202.102.29.3 / 202.96.199.132</div> <div> </div> <div>中国联通:</div> <div>1.WAP/MMS</div> <div>1.1 WAP</div> <di……
查看全文
发表于:2008-06-09 ┆
阅读(447)
┆
评论(0)
一些有用的免费软件
<P>1,办公软件 <BR> OpenOffice.org <BR> 不能完全替代MS Office。但作为最著名的开源软件之一,还是偶尔用用。算是支持一下:) <P> <P> <P>2,浏览器<BR> Firefox<BR> 开源软件。地球人都知道。不过有些不符合标准的网页还是得用IE看。 <P> <P> <P>3,邮件客户端<BR> Thunderbird<BR> 开源软件。功能没有Outlook那么繁琐,还不错。 <P> <P> <P>4,文本编辑器 <FONT color=#ff0000>【推荐,完全可以替代Editplus】</FONT><BR> NodePad++<BR> 开源软件。支持的程序语言类型很全,语法高亮很有特色。而且居然很好地支持了NFO文件格式。可惜不支持16进制编辑。 <P> <P> <P>5,文本比较工具<BR> WinMerge<BR> 开源软件。新版支持文件夹比较,很不错。可惜不支持16进制文件比较。 <P> <P> <P>6,压缩软件 <FONT color=#ff0000>【推荐,完全可以替代Winrar】</FONT><BR> 7Zip<BR> 开源软件。越来越流行的压缩软件。很好用。 ……
查看全文
发表于:2008-05-13 ┆
阅读(281)
┆
评论(0)
tmpfs使用
使用NFS的情况下,读写文件速度比较慢,有时候需要用tmpfs辅助一下:<br><br>mount tmpfs /mnt/tmpfs -t tmpfs -o size=5m
查看全文
发表于:2008-04-11 ┆
阅读(474)
┆
评论(1)
gdb远程调试必备工具
http://clewn.sourceforge.net/<br>注意,vim需要支持netbeans才行。不多说,打命令看代码两不误,看看效果图就知道:<br><div align="center"><img src="http://blogimg.chinaunix.net/blog/upfile2/080328182034.jpg" onload="javascript:if(this.width>500)this.width=500;" border="0"><br><div align="center"><br><br><br><br><img src="http://blogimg.chinaunix.net/blog/upfile2/080328182058.jpg" onload="javascript:if(this.width>500)this.width=500;" border="0"></div><br></div><br><br>
查看全文
发表于:2008-03-28 ┆
阅读(243)
┆
评论(0)
error: cannot run test program while cross compili
在交叉编译的时候总是使用configure --host=arm-linux 嘿嘿但是在CONFIGURE中有很多的测试程序是不可以在HOST上运行的就会出现: error: cannot run test program while cross compiling<br>类似的错误,可以使用CACHEFILE解决这个问题,还要谢谢ABSURD兄的文章给我的指导。<br>我是这样解决的第一步:记录下错误的地方如:checking abstract socket namespace... configure: error: cannot run test program while cross compiling<br>注意到abstract socket namespace在configure中查找abstract socket可以看到类似这样的结构<br>echo "$as_me:$LINENO: checking abstract socket namespace" >&5<br>echo $ECHO_N "checking abstract socket namespace... $ECHO_C" >&6<br>if test "${ac_cv_have_abstract_sockets+set}" = set; then<br> echo $ECHO_N "(cached) $ECHO_C" >&6<br>其中ac_cv_have_abstract_sockets是我们要查找的变量<br>使用echo ac_cv_have_abstract_sockets=yes>arm-linux.cache<br>然后<br>./configure --host=arm-linux --cache-file=arm-linux.cache<br>OK这样就搞定了
查看全文
发表于:2008-03-28 ┆
阅读(349)
┆
评论(0)
Ubuntu mount LVM
1.安装lvm2 (用新立得)<br>2.mount<br> #load device module<br> modprobe dm-mod<br> #change the volumes that exist to active<br> vgchange -ay<br> #mount the logical partition<br> mkdir -p /mnt/VolGroup00/LogVol00<br> mount /dev/VolGroup00/LogVol00 /mnt/VolGroup00/LogVol00<br>
查看全文
发表于:2008-03-28 ┆
阅读(262)
┆
评论(0)
交叉编译host,build,target的含义
具体解释一下,build就是你正在使用的机器,host就是你编译好的程序可以运行的平台,target就是你编译的程序可以处理的平台.这个 build和host比较好理解,但是target就不好办了,到底什么意思呢?一般来说,我们平时所说的交差编译用不到他target的,比如. /configure --build=i386-linux,--host=arm-linux就可以了,在386的平台上编译可以运行在arm板的程序.但是,一般我们都是编译程序,而不是编译工具,如果我们编译工具,比如gcc,这个target就有用了.如果我们需要在一个我们的机器上为arm开发板编译一个可以处理 mips程序的gcc,那么target就是mips了.不知道我的解释是否正确,如果大家看到了这篇帖子,觉得不对,批评指正.
查看全文
发表于:2008-03-28 ┆
阅读(335)
┆
评论(0)