免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 840 | 回复: 0
打印 上一主题 下一主题

嵌入式linux开发/学习的一点感想 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-18 19:56 |只看该作者 |倒序浏览

最近一个客户拿着他的linux系统来向我求救。那是一个S3C2440的linux项目。具体情况就是:系统反应速度太慢,用了一阵以后输出的声
音就像被卡住了一样,一个字拖的很长。他用的是2.6的内核,按理来说2.6的内核实时性应该不错啊,其调度算法复杂度是O(1),而且支持内核抢占,虽
然说不是一个硬实时的系统,但其软实时还是有保证的,而且他这个项目对实时性根本没什么要求。拿过来一分析发现:

1.应用程序写得不好,那么多的事情,竟然是用一个进程完成的,单线程。IO阻塞的特厉害,但有一部分又是计算型的代码。我们都知道IO阻塞型的程序会因
为其时间片使用率非常低所以优先级会增大,而计算型的代码时间片用得快优先级会减少,这样一增一减,所以系统不响应慢才怪。而且有部分代码该用实时性优先
级的。
   2.驱动写得不好。最重要的就是同步和互斥做的不好,这些概念和如何使用理解的不清楚,乱用,不该关中断的地方或者是中断关的太久。
经过一番修改以后,系统算是满足了客户的要求。
这引起了我的深思。我们要走的路还很长,要真正把linux用于实践中我们还要付出更大的努力。虽然现在有关嵌入式linux开发的资料一大把,特别是讲移植方面的,不过很多都比较片面,而且还有很多错误,呵呵,当然我的也不一定没问题。但要应用起来还很困难。我碰到过很多开发者或者学习者,说他们移植了linux或者写了驱动,其实很多一部分只是照别人开发板上面的做
而已,要真正剪裁其一个系统来,又会碰到更多的困难,问一些问题他们又会哑口无言或者支支吾吾。现在很多开发板都提供了其有关的驱动程序,不过这些代码一
般都写的不是好,只能拿过实验用,特别是在同步/互斥,中断管理(上下半部分),可能需要内核辅助线程的等等,我们要自己动手去改,同时要加强测试,其实
哪怕一个小小的模块,也涵载着大量的学问和知识在里面。这些都需要我们去学,而不是学在表面。最好的学习代码就是看内核本身提供的代码,参考人家的代码,
思考自己该怎么做。如果我们要做到透彻理解和应用linux需要花费大量时间,这需要我们有恒心和信心。当你越过一个一个坎的时候,你就离成功越来越近了。
最后给大家提供一下书籍,不过都是英文的,要习惯去看才行。
1.Embedded Linux Primer: A Practical, Real-World Approach
2.Building Embedded Linux Systems
3.Linux Kernel Development Second Edition
4.Linux Device Drivers, 3rd Edition
5.Essential Linux Device Drivers
6.Running Linux, 5th Edition
7.Understanding the Linux Kernel, 3rd Edition
8.The Linux TCPIP Stack Networking for Embedded Systems.pdf
9.The Linux® Kernel Primer: A Top-Down Approach for x86 and PowerPC
Architectures

10.Understanding Linux Network Internals
11.Understanding The Linux Virtual Memory Manager
应用程序方面的资料:
Advanced Programming in the UNIX? Environment
另外多看看设计模式方面的书籍,还有就多找些好的开源项目代码读读,看看人家的代码是怎样写的,在面向对象编程的今天,虽然C语言本身不支持面向对象的一些
特性,但你会从代码中看到很多优秀的程序或多或少的加入了面向对象的思想。好的代码不是写给编译器看的,而是写给人看的。

最后我们要动其手来才行,光说不练那是假把式,实践才是硬道理。要不断去思考,去验证,因为现在很多的文章或多或少都会有问题,要全面一点,自己去获得答案。我们大家一起为推动linux在嵌入式上的应该做努力。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68324/showart_2055534.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP