【转贴】WINCE下调试驱动的一般方法

本人一般是不转贴的,(除了万院长的那篇经典中的经典)。今天无意中看到一篇文章,不禁回忆起自己当年在CE下摸索写驱动的时光。对于初接触嵌入式开发的人来说,一些基本方法和思路的确是需要“洗脑”的。

这篇文章不难看出是作者的经验总结,虽然有些内容不完全赞同,但是还是保持原汁原味吧。对处于探索阶段的同学肯定会有帮助。

原文地址:http://blog.csdn.net/xqhrs232/archive/2009/11/27/4888577.aspx


1。向串口打印消息———-//只能打印一般的消息,实时性要求高的地方建议不要去打印消息,因为串口打印很慢,即使要打印也尽量少打印或者有选择地打印–比如100次才打印一次

//串口打印也可以大致分析各个线程间有没存在对同一个资源访问的互锁什么的

2。写LOGO文件——-写文件应该比串口打印来的快,写LOGO也适合于分析数据量很大的场合

3。灵活使用static 变量—–//static变量有记忆的功能,可以用这一点来诊断程序的可靠性—特别是中断接收什么的—-记忆个几十K数据再写到LOGO文件是不错的调试方法

4。写驱动的时候往往要求正确延时什么的—–//所以正确地实现US/MS的延时很重要

//WINCE 微秒级延时函数

void …

more ...

NDS程序设计之——死灰复燃篇

今天看了一下blogbus的统计,发现通过搜索引擎搜到这个博客的关键字中,nds的排名居然是第二(第一当然是我的名字了)。真是令人惊讶。大概是因为3年前,我写了一些名字叫《NDS程序设计》的文章吧,而且由于后来工作一忙,那一系列文章根本没有坚持写下去。居然还得到了这么大的关注,没想到。

现在呢,本人比以前更忙了:工作,还要照顾何事谦小同学。所以那个系列文章写下去的可能性更加渺茫了。当然,随着时间推移,有更多人写了更多关于nds开发的文章。而且好像国内已经有nds民间的开发组了。任天堂官方sdk也泄露了,所以这一系列的文章应该没有存在价值了。

这篇文章要介绍的是我08年初做的一系列工作,把一个小嵌入式操作系统ucosII移植到了NDS上。既然小OS都可以跑的话,当然很多东西都可以在nds上跑了。在自己的googlepage上建立了一个链接,提供所有source code, binary以及支持工具下载。请参考如下页面(English):

http://hezongjian.googlepages.com/ucosnds

备注:googlepages在国内经常被GFW和谐,所以如果你看不到那个网页的话,可能要自己想办法翻墙。

more ...

第一次被学生投诉

>今天虽然是白色情人节,我可过的不滋润。第一次被学生言辞激烈的投诉到了Boss那里……> >下面是投诉原件和我的回复。(如果投诉人看到这篇blog,觉得我侵犯了他的著作权,我会把这篇文章删掉,以免遭到更高级别的投诉)> >


> >

万老师:> > 请原谅我冒昧发这封发牢骚的E-MAIL给您。事情是这样的,我于上学期选了WINCE程序开发这门课程,最后的成绩是良。当我询问何宗健”老师”原因时,他竟告诉我成绩是随机给的,而且还说拿优的人数是25%,这是学校规定的,如果超过这个比例,教务处的系统会自动将一部分人的成绩该为良。这让我很失望,并非是对成绩,而是对何宗健”老师”。> > 请万老师将心比心地想一想,随机给的成绩对那些辛苦学习的同学是不是很不公平吗?人家的汗水,却被一些人的”不负责”一笔抹掉。且不把这件事提升到”师德”的高度,但是仅仅从一件小事就能看出一个人的处事的态度。我承认何宗健”老师”在技术上有水平,但是当了”老师”后,我却没看出他有对我们学生认真负责。请问,以如此的态度如何能在学术上更进一步?> > 万老师一直在我们面前很推崇何宗健”老师”,希望我们拿他作为榜样。我觉得 …

more ...

NDS程序设计――无限期跳票篇

对于以前写的两篇NDS编程的文章,真是无心插柳柳成荫,居然收到了不少热心于NDS开发的人的邮件,有求助有探讨,还有些希望我把文章写下去,由于最近实在有些事情忙得不亦乐乎,所以只能在此声明如下:
1) 我自己的确不是什么NDS开发方面的专家,只是在空闲的时候研究了一下,自己其实也是一个NDS开发的学习者。
2) NDS程序设计系列文章的下一集,无限期跳票。这并不意味着以后都不会再写下去,如果有时间的话,我还会继续这个系列的文章,但是不是现在。

附上我的一封Email回复,是给一个满腔热情地初学者,希望所有的满腔热情地初学者可以修成“正果”。

NDS编程是在我比较闲得几个月写出来的,现在又陷入忙乱了,所以那些文章就没有继续写下去。难得你那么有心,可以耐心看我写的文章。

对于NDS上的游戏开发,我觉得没有任天堂的SDK,很难开发出像样的游戏,当然这个SDK不是你我这种人可以拿得到的。其实现在使用devkit那个SDK开发,基本上跟ARM硬件裸机开发差不多,需要开发人员对硬件有一些基本的了解,例如触摸屏控制器挂在IIC总线上等等。而且现在的SDK缺乏一些必要的调试手段,开发效率不高。所以我的文章没有叫做NDS游戏设计,只是叫做NDS程序设计,能够通过NDS这个平台,普及一些嵌入式开发或者软件开发的基本知识,目的也就达到了。

如果你以前一点基础都没有,我倒觉得其实学习GBA编程是一个比较好的开始。毕竟GBA的模拟器已经相当成熟了,我们可以使用模拟器进行代码调试,网上可以找到的GBA开发的资料也相对多。最重要的是,GBA跟NDS的开发是差不多的,很容易从一个过渡到另外一个 …

more ...

'Windows CE 6.0尝鲜 & 谣言'

最近讨论Windows CE 6.0的人开始多起来了,但是Windows CE 6最早也要07年才开始发售。微软在MEDC 2006会议上上发布CE6的消息,我命衰,本来打算去参加MEDC,结果被美帝国主义拒签了,所以没能第一时间掌握这些消息。当不成御林军,只好当民间侠士了。回忆回忆以前从各个渠道得到的一些资料(MS对合作伙伴的讲座,MS邀请到US去进行合作伙伴测试的工程师,道听途说,等等)。大概总结了一下有下面几点,还有一些是我自己的乱弹琴评论,说得不好不对不怕拍板砖,因为本来我就没有得到过官方资料,要怪就怪美帝国主义那个拒我签证的大光头,所以还得把这段圆滑的“AS IS”文字放上,把MS替换成我就好了:

废话少说,正文开始:

  1. 取消系统中最多32个进程,每个进程32MB虚拟内存的限制,据说现在可以支持32767个进程,而且每个进程有2G的用户可用空间。

这个可以说是Windows CE 6.0最具有爆炸性的改动了。以前在想别人介绍Windows CE操作系统的时候,总是说Windows CE是一个微内核的操作系统,很多操作系统特性都被放在用户态的exe里面实现,并且其驱动程序也是放在用户态的,等等等等云云云云,这与桌面Windows这种把所有东西都放在OS内核中的宏内核的体系结构操作系统完全不同。可是,现在呢 …

more ...

我第一次写书评

博文视点的编辑让我写一篇关于《.NET Compact Framework程序设计 C#版》中文版的书评,花了一个上午,憋出这些文字来,基本上没有阿谀奉承的成分,个人感觉还是比较客观的(因为没有利益成分,没这个必要,哈哈)。贴一个把,解决自己blog的旱灾。

探索移动开发的新航路
――评《.NET Compact Framework程序设计 C#版》中文版

何宗键

移动设备与.NET Compact Framework
近年来,消费性电子产品在国内外都得到了飞速的发展,其中以PDA和智能手机为代表的个人手持设备的技术更新更是一日千里。

让我们以手机为例回顾一下。或许大家都还记得三年前的手机是什么样子,五年前、十年前的手机又是什么样子。是的,在短短的几年内,手机的通信技术迅速的经过了1G的模拟语音,2G数字语音,2.5G的数字语音 + 数据,并在逐渐向完全数字的3G时代过渡。与手机相关的硬件设备也在迅速发展,现在的一些智能手机上已经配备了几百MHZ的CPU、64MB的内存和几GB的Flash存储器。Intel的下一代Xscale移动处理器“Monahans”的处理速度已经可以达到1GMHZ以上 …

more ...

NDS程序设计(二)

一、硬件介绍:

先贴一个网上流传甚广的NDS硬件清单:

主机名任天堂DS[NTR-001(JPN)]

尺寸、重量(机器闭合时)- 长:148.7毫米 宽:84.7毫米 厚:28.9毫米

– 重量:约275克(含电池、触摸笔)

Display采用上下双液晶屏幕同时显示并进行游戏,下方屏幕更可直接使用触摸笔及手指进行操作。

•上方屏幕

– 3英寸(对角线距离)半透反射型TFT彩色液晶

– 带有背光灯

– 分辨率256 X 192像素,点距.24

– 26万色

•下方屏幕

– 3英寸(对角线距离)半透反射型TFT彩色液晶

– 带有背光灯

– 分辨率256 X 192像素,点距.24

– 26万色

– 附带高强度透明模拟触摸屏

主要操作部分- 十字键,A …

more ...

'"嵌入式软件开发导论"成为精品课程了.'

今天得知“嵌入式软件开发导论”终于通过了评估,成为精品课程了。也算是对半路出家我一年半教课的一种肯定吧。

课程的官方网站在这里,上面有一些课件资料和实验:

http://sse.tongji.edu.cn/jpkc

有什么新的内容,也会放在上面。

其实可以做的更好,可惜有些事情是身不由己的。前途是光明的,加油!

more ...

'2005年度总结 [原]'

blog荒芜了好久了。不知道自己的整个12月在忙什么,一直都没有时间哪怕是写一定点的东西。现在放假了,回到了温暖的家,终于可以写点东西了。

首先第一要写的,2005年过去了。也要总结一下了。去年的总结不打算再按照去年的样子记流水账了。挑几个值得一表的主题,写一写吧:

读书篇

授课篇

飞行篇

技术篇

人生篇

其它篇

读书篇

2005年的上半年到6月份为止是我的研究生第一学年,这段时间我基本上都在学校里上课修学分。

总体来说,这段时光我的生活过得基本还像个学生。经历过晚上熬夜上网第二天睡到11点起床吃午饭;经历过晚上伙同几个人到门口的小店吃东西;经历过食堂排队;经历过上课睡觉(上课睡觉曾经一度是我认为研究生阶段我在教室里面学会的唯一一项以前不会的技能);经历过期末紧张复习考试;也经历过了迟到旷课。

这半年中唯一还有印象的也就这么几件事:上学期上英语课的时候跟几个同学一起在圣诞Party上表演Jingle Bell,我表演了一颗圣诞树……,下学期英语的中级口语课上表演“皇帝的新衣”,我扮演裸体皇帝,以“表情造作,略显浮夸”的演技折服了全班同学……。其它的,几乎就没有给我留下什么印象。

跟我同宿舍的几个哥们也都跟我非常要好。另外几个人各有特色。袁禄来,这个跟我同为计算机软件点的研究生,给我的感觉是非常学者的类型,自己很勤奋好学。而他的导师也是兢兢业业搞学术的人 …

more ...

我写在程序员11期上的文章

《程序员》第11期有个专题,纪念C++诞生20周年,我为这个专题写了一篇文章,叫《C++在嵌入式系统中的运用》,虽然名字起得很大,但是篇幅有限,只能泛泛而谈。空而无物,贴在这里,供大家批评。(一幅图没了,看图的话,买杂志去吧。嘻嘻)

C++嵌入式系统中应用

何宗键

同济大学软件学院嵌入式系统研究中心

转换舞台

C++作为一种编程语言,从其诞生之日至今,已经在软件业的历史上扮演了至关重要的角色。它强大的语言功能和灵活的语言机制是无数程序员为之折腰。而C++中蕴含的OO,GP等编程思想,更是潜移默化的影响了软件的架构方法。从这个层面上讲,C++的影响已经不仅仅是一门编程语言这样简单。然而随着Internet的发展及其带来的B/S架构软件的兴起。新兴的Java/C#/VB.NET等基于虚拟机语言及Ruby/Groovy等动态语言作为后起之秀,凭借其独有的快速开发、简单易用等特性,开始逐渐挑战C++的地位,在企业计算领域占据了越来越重要的地位。抛开企业计算,我们转换舞台,来看一看C …

more ...