Chinaunix首页 | 论坛 | 博客
  • 博客访问: 280475
  • 博文数量: 66
  • 博客积分: 2636
  • 博客等级: 少校
  • 技术积分: 762
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-25 16:40
文章存档

2013年(1)

2012年(2)

2011年(8)

2010年(15)

2009年(40)

我的朋友

分类:

2009-12-21 20:57:01

    最近,老是有人问我“如何学习嵌入式开发”,搞的我每天晚上都要敲打同样的内容,现在我就写上一些浅见,希望不要误人子弟。嘿嘿,我也不用做重复性工作了!

 

    可惜我只懂点wince驱动的皮毛,对linux驱动是一无所知。所以我就写点关于wince方面的了。

 

    我记得我wince的旅程是从bootloader开始的,我觉得这是好的路线。为什么?因为bootloader是裸奔的,比OS简单很多,尤其是ADS 下的bootloader,几乎和以前的单片机程序没有多大的区别,只是ARM多了一些牛B的硬件,MMUcache。还有bootloader几乎包含了ARM的所有硬件的运用代码,这样学完ARM bootloader之后,就可以对ARM的硬件有所了解了,这是驱动工程师的必备基础。到了bootloader最后,还有启动内核函数,这个就有意思了,一路看下去,会了解蛮多的基础,我觉得这方便并不难,只要学过单片机的人都能在较短时间内看懂的。我当时是看优龙的ADS bootloader的,不过后来PB环境的stepstoneeboot 我都看过。个人觉得ADS bootloader较容易懂,也可以使用仿真器,非常好用,推荐初学者看优龙的bootloader作为入门。尝试移植到自己的平台上就成功了。

 

    我觉得bootloader要看三个月左右,慢慢体会,顺便看看MMU cache的原理,这样就会有很好的效果了。

 

    三个月之后,就开始wince驱动旅程了。

 

    首先,熟悉使用PB的开发环境,我推荐PB5.0,因为它很好操作,很直观,帮助文档也做的人性化。有些同志们一上来就想搞比较新的wince6.0,我个人认为这样未必会对我们有利,新的东西资料少,交流的人少,就会阻碍我们学习的进度。嘿嘿,只要买了开发板,PB的基础使用都会有的,至于更加高级的用法,会在以后慢慢体会到。

 

    然后就开始流驱动了,掌握流驱动的写法:注册表啊,dirs啊,sources啊都要懂,市面上很少人写这么详细的教程,不过我们可以拿个驱动来看照着画葫芦就可以学会了。尝试写个GPIO驱动,并且用EVC或者VS2005写个C++ MFC程序写个应用来测试,嘿嘿,这样,我们就入门了。更加高级的流驱动方法,我博客中有介绍,只要到了一定程度,就会越来越多高级的技巧了。

 

    再然后,就开始本机驱动了,LCD,键盘等都是这类驱动,学习这类驱动,一般是MDD+PDD结构,并且使用大量的C++代码,嘿嘿,所以C++不行,很难提高wince驱动水平的,俺就在这关卡住了,要努力哦。还有调试本机驱动,使用KITL是上上之策,具体使用方法,请看我的博客吧。

 

    最后掌握一些高级的东西吧,文件系统,电源管理等,这是最难调试的,如果掌握了流程,最好把代码搬到BSP下进行加信息调试即可。嘿嘿我正在这步努力中。

 

    差不多就是这么多了,最后预祝大家都能快速学好!

 

    附言:学习一样东西和专业蛮大关系的,不过计算机专业未必比电子专业好,因为电子专业也学了不少单片机,微机原理之类的课程,所以大家都不要妄自菲薄,各有优缺点的,我们完全可以克服的。

阅读(1656) | 评论(0) | 转发(0) |
0

上一篇:安装PB遇到的问题

下一篇:什么是BSP?

给主人留下些什么吧!~~