文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>网友与王洪辉老师问答 (1)

网友与王洪辉老师问答 (1)

时间:2009-04-06  来源:chinaemblinux

问:作为计算机专业的学生,工作了这些年后,是该做一些更有意义的事情的时候了,不想再为了混口饭吃到处求职。看了你的文章,被你的这个想法深深打动。从现在起,重新审视自己的价值,为拥有自己的操作系统努力。希望能为这个伟大的理想做一些事情。

答:这位朋友说得非常好,我坚定地支持你,希望你将想法付诸行动,持之以恒,锲而不舍,我相信你一定能做出成绩的!
我们共勉!

问:你好,本人想学习嵌入式开发,在陶宝里买了块友善之臂的开发板进行学习。但电脑主板缺少串口跟并口。由于买usb转串口时受骗的原故,便没有自己去买并口的转换线。后来原来那个陶宝的卖家向我提供了他们的openJTAG多功能转。由于价格问题我一直没有买。请问你书上介绍的JTAG的制作方法能做到JTAG跟usb直接相连吗?我该如何利用好这块学习板进行学习呢?期待你的解答,谢谢咯!

答:你可以去买一块PCI转并口卡,再将简易JTAG卡接到扩展出来的并口上就可以用,当然要修改一下烧写源代码,把并口的I/O端口改成PCI转并口卡的I/O端口就可以,用我书中介绍的JTAG的制作方法制作的JTAG线缆如果JTAG口端的线序定义与你买的板子上的线序定义相同则只需修改代码中的并口I/O端口号就可以,否则还要修改代码中各管脚的定义部分;
有了这块板子你可以先学一些流程方面的技能,如:重新配置、编译内核,更新bootloader、内核、根文件系统等;然后详细阅读S3C2440处理器的芯片手册、主板原理图,争取把原理图吃透,当然还要看主板上用到的外围芯片数据手册,硬件原理看懂之后,针对主板上的每个设备就去看Linux内核源代码中对应的设备驱动程序,争取做到理解,也可以修改驱动程序代码(比如修改设备控制器的寄存器设置)看看会有什么现象,这样可以加深理解;然后去看看Linux中内存管理、文件系统、进城调度相关的代码;
只要你坚持做下去就一定能大有收获的,另外我建议你条件成熟的时候可以自己去设计制作一块主板,然后自己移植Linux,在这个过程中你会碰到很多问题,解决这些问题的过程就是你成长的过程,这些问题是你正常情况下不大会碰到的,解决这些问题可以锻炼你的分析问题的能力,积累解决问题的方法,增强实战技能;在自己开发主板的时候一定要参考我书中第9章的内容,可以提高你设计主板的成功率!
上述所有这些都可以参考《嵌入式系统Linux内核开发实战指南(ARM平台)》中的内容去做,或者反过来说,你可以在买来的主板上以及在自己开发主板系统的整个过程中验证我这本书中的内容。
祝你早日自学成才!

问:你好,我是想从单片机转入到做ARM linux 这方面,我没有参加培训班,自己以前做过一年的WINCE5.0 + s3c2440的二次开发,就是买别人的板子,然后公司做裁剪,写应用程序。后来又做回到单片机了,想有往嵌入式方面发展,想多多请教请教你。该如何入门呢?

答:其实你已经入门了,只是你现在可能偏重于应用方面的知识;如果想转入底层驱动和内核方面开发,那么确实还需要做不少事情,总的来说做应用开发比做底层和内核开发容易得多,应用方面的开发的关键在于理解用户需求和个人的编程技巧;而底层软件开发则要跟硬件、内核,要想做好底层软件开发必须能看懂硬件原理、熟悉硬件芯片和硬件设备手册、理解内核原理,还要有丰富的硬件调试经验,因为底层软件一点出问题可能是硬件设计的问题也可能是软件编程的失误;
如果你确实想转入嵌入式底层和内核开发,那么我建议你自己参考网上的一些开发板自己去设计制作一块电路板,然后自己移植、boot起一个Linux内核,完成了这些,你就已经了解了嵌入式Linux内核开发的整个流程,下一步就是多阅读芯片和设备手册,了解芯片和设备的工作原理和操作方法,最后就是深入理解Linux内核的组成结构和实现原理;要完成所有这些是比较辛苦的,没有几年是下不来的,特别是Linux内核原理,当然可以找一些参考书,我自然要向你推荐我的这本《嵌入式系统Linux内核开发实战指南(ARM平台)》,有了这本书你几乎不用再看其它任何书(如果你要学汇编还要看具体处理器的汇编语言相关书籍),这本书的内容涵盖了嵌入式系统Linux内核开发的各个方面,初级(流程)、中级(技能)、高级(深层原理)都包括,附带的CD中还有我自己设计制作的MC68VZ328和S3C4510两块开发板的原理图、PCB图以及uClinux源代码和交叉开发环境,你可以在看懂、理解原理图的基础上直接用盘中的PCB图去制板,然后自己买器件、焊接、调试,再把盘中的uClinux在板子上跑起来,这样第一步你就完成了;
第二步就是要多做,争取把各种架构的处理器(单片机、MC68K、ARM、PowerPC、MIPS)开发平台和各种设备的驱动都做一遍,积累经验,这样你的开发技能就会得到很大提高;
最后一步就是研究Linux内核原理,这一步是最难的,一定要多读源代码,纯理论书籍只能作参考,没有太大的实际意义,最最根本的就是读代码,要下真功夫,否则是不会有成效的,我的这本书就是从内核代码分析入手来阐述Linux内核原理的,可以引导读者自己去阅读理解Linux内核代码,Linux代码就是一个完整操作系统的优秀典范,就是操作系统理论的一个实现,读Linux代码就是实践,这是必须的;
希望你一切顺利,不过要做好吃苦的思想准备,还有就是要坚持!

问:王老师你好,我是从事linux应用层的软件开发,工作了几个月时间,平时工作只需懂得使用别人设计好的硬件设备,不懂硬件,该如何入门呢?

答:你可以看一下我的博客中的“嵌入式系统Linux内核开发学习指导框图 ”一文还有我在博客中的一些评论文章,都详细提到了应该怎样开始学习嵌入式Linux内核开发,这里我也建议你自己花1000来块钱去做一块小开发板,自己焊接、调试,自己编译、下载、固化Linux内核,走一遍这个过程你的基本功就练好了,可以参考或直接使用我的《嵌入式系统Linux内核开发实战指南(ARM平台)》一书中的S3C4510和JTAG线缆的原理和PCB图去制板,这本书这周就可以上市,可以到北京的书店买到,下周全国各地的书店都可以拿到书,如果你实在不想自己做板子,那么可以花几百元到市场上去买一块S3C2410或S3C2440的开发板自己学着编译、下载、固化Linux内核,但这样做你就会少学到很多硬件调试相关的知识和技能,而这些对你将来做底层软件调试是有很大帮助的。

问:王老师,您好!我想问下一个初学者首先需要掌握这一块那方面的知识 怎么样才能算入门呢··后续还要掌握哪方面的知识

答:在我看来,要学习嵌入式软硬件开发最起码要做到:1)能够自己设计、调试主板;2)自己编写、调试主板各功能模块的测试程序;这是嵌入式开发人员必备的基本功;然后就是写一些外设的驱动程序,这算是中级的;如果还要学Linux,那么至少应该在自己做的板子上boot起一个Linux内核才算对嵌入式Linux内核开发流程有了基本了解;然后就是阅读、移植或者自己编写Linux下的各种设备驱动程序;到此只能算是嵌入式Linux的中级开发人员,如果要想继续提高,就要自己多做项目,把各种架构类型的处理器平台都做一遍,积累丰富的开发经验和技能,与此同时多读Linux内核源代码,前期可以只是围绕接触比较多的设备驱动部分源代码,这样你就可以逐渐成为嵌入式Linux内核高手了;如果你还想成为Linux内核专家,那就请你通读Linux内核各个核心组件的源代码,等你理解了Linux内核每个组件的实现原理,你自然就成了Linux内核专家了,那时你也可以开始试着自己写操作系统了!不过这条路很难走,要有思想准备!
祝你顺利!

问:王老师,我今年27岁,做过大学时做C#,JAVA程序员,毕业后做了二年的PIC单片机设计开发.09年初才刚开始接触Linux+ARM,我现在的年龄是不是偏大了...........

答:楼上这位朋友的问题我不好回答,我个人觉得年龄与技术学习没有绝对的关联,“活到老,学到老”,我国有无数科学家把自己的一生都默默献给了国家的科技发展事业,我们应该向他们学习、向他们致敬,是他们的无私奉献成就了中国世界科技大国甚至是强国的地位,也正是他们的科技成果捍卫着国家与世界的和平与发展!

问:王老师,我是一个大学生,学电子专业的。我想问您2个问题:
1.我们在学校学的理论有用吗??要是有用,我怎么不知道它有什么用!?要是无用,那学它干嘛!?
2.什么现在我看到搞的嵌入式的,都在搞软件,怎么没见到搞硬件的(驱动和移植还不是在搞软件,有本事他不开电脑搞这些)!!难道所谓的嵌入式开发,就是搞软件 or 编程??
谢谢!!

答:没注意到你的留言,回复晚了,见谅! 第1个问题:学校学的知识都是有用的,只不过学校学的都是一些基础知识,而且基本都停留在理论层面上,大学学的理论是为将来从事相关行业工作或事业打基础,更多是教会你一种思维方式和基本理论,而不是技能;我不明白你说的有用具体指什么,你不能指望今天学一点东西明天就能将这点知识转化为你的薪水或者是职位,积少成多,量变到了一定程度就会产生质变,学习应该先博后渊,先把知识涉猎面放宽,学习理论的同时一定要注意多实践,这样就能将书本知识转换成你的实战技能,到了一定的时候,你可以从所涉及的知识面中找一个自己最擅长、最感兴趣的点去更深入研究和探索,这样你就能慢慢成为某方面的行家里手了!第2个问题:嵌入式开发包括1)硬件开发;2)底层软件开发(BSP/bootloader、Drivers);3)操作系统内核开发;4)应用程序开发;但是现在一般说的嵌入式开发多指前3项,而软件开发一般特指应用程序开发,即第4项;我国做应用开发的人太多了,最开始学习编程技术的人后来基本都从事了应用程序开发,应用程序的关键是编程技巧以及对不同客户需求的透彻理解,应用程序是基于内核之上的,技术上相对简单,而且它的稳定可靠除了自身的稳定可靠之外,还依赖于内核以及硬件的稳定可靠性,而我们国家最紧缺的人才就是核心软件(操作系统)开发人员,这是关系到国家安全的技术,如果我们国家所有的电脑都用MS的操作系统,那么我们就可能被别人讹诈,任人摆布,在MS眼里我们的电脑根本没有秘密和安全可言,万一打起仗来,在信息技术这块我们只能被动挨打,所以我们一定要有我们自己的操作系统,这就需要有很多内核开发高级人才;另外从我10多年的工作经验看来,在硬件电路集成度越来越高的今天,硬件开发已经变得越来越简单,因为真正的硬件难题绝大部分都由IC设计公司解决了,对于嵌入式系统中的硬件开发来说其实是芯片应用级别的,是相对简单的硬件设计,这种设计的关键在于吃透芯片内部结构原理和操作方法,按照芯片厂家提供的参考数据和参考设计来设计自己的电路板,然后就是在PCB布线时注意一些基本规则,对于高速高密电路板在PCB布线时还要注意抗干扰设计等等;综上所述,嵌入式系统开发核心技能包括:硬件电路原理设计、硬件电路板PCB布线、BSP/Bootloader开发、各种设备驱动程序开发、操作系统内核开发!

相关阅读 更多 +
排行榜 更多 +
暗黑封魔录手游

暗黑封魔录手游

角色扮演 下载
战国美人游戏

战国美人游戏

角色扮演 下载
仙境苍穹手游

仙境苍穹手游

角色扮演 下载