BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #2663同步于 2008/11/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

【北邮嵌入式协会的FAQ 1.0】

kanjunbao
2008/11/18镜像同步10 回复
北邮嵌入式协会的FAQ 1.0 正文: Q.1 参与了协会举行的前些次讲座,感觉学到了不少东西,我还想在u-boot和Linux内核方面更深一步的学习和了解,我该怎么做呢? A.1 在经过了初步的学习后,大家对嵌入式开发都有了初步和直观的认识。下面的学习我们建议从两个方面着手:一、从长远角度讲:充分利用论坛和学习小组的资源,对相关知识进行广泛的积累和学习;二、从短期实现讲:结合自己的实际状况,利用协会提供的资源,为自己定力一个个的短期目标,尽力在计划时间内实现目标。 Q.2 对u-boot和Linux内核经过了一段时间的学习之后,我对这部分的整体框架已经有了基本的概念,但是发现在此基础上到某一个具体的方面再深入下去,感觉很吃力,我该怎么办? A.2 首先,我们需要说明:抱着一个大部头的教材开始狂啃是不明智的——如果你有大把的时间和坚强的毅力,我倒是不反对。因为这样的学习方式不但让人容易疲惫,而且因为脱离实际使得学习过程枯燥,往往结果是中途被迫放弃,即使坚持下来也是事倍功半。我们建议的方式是:一、利用互联网以及协会提供的讲座、交流等机会,充分了解嵌入式相关知识的范畴和结构;二、依托协会提供的平台,选取自己感兴趣或项目工作相关的内容,参与到其中深入学习;三、找几个志同道合的朋友,共同努力,经常交流学习经验并共同解决遇到的问题;四、找几本好的参考书(包括前面说的大部头),学习过程中把它们作为字典随时翻阅; Q.3 在u-boot和Linux内核中,驱动(程序)到底是怎样的一个概念? A.3 首先,u-boot和Linux内核中都有驱动的概念,但是它们的含义不同:u-boot中,驱动是广义的、泛指的,一般与硬件相关的接口函数即可视为驱动;Linux内核中,驱动的定义较为明确和具体,站在驱动的位置向下看,它直接访问硬件,站在驱动的位置向上看,它向系统更高的层次或应用层程序提供标准的驱动接口; Q.4 我有一个应用程序在2.4内核上已经编译通过而且可以运行,如果换到2.6的内核上编译运行可能会发生怎样的问题呢? A.4 具体的说,可能取决于你编写的到底是怎样的应用程序。不过,对于一般的应用程序,从2.4到2.6可能不需要太大的改动。PS:如果编译或者运行有问题,google之或者拿到论坛里面问大牛(大牛各种多啊),具体的问题具体解决吧…… Q.5 进行u-boot移植和内核移植为什么要使用交叉编译环境呢?我使用的是2410的开发板,怎么觉得交叉编译环境没什么用呢? A.5 首先,简单说明一下:我们之所以需要交叉编译环境,之所以在PC机(嵌入式开发中称为宿主机)编译将来要运行在开发板(嵌入式开发中称为目标板)上的程序。是因为,相比宿主机开发板的性能差很多而且没有众多成熟的应用软件,如果要在开发板上将众多的源文件编译连接成为可运行的执行文件,对于开发板和开发人员都是一个很大的负担。因此,我们把这件事情放到功能强大的PC机上完成,交叉编译环境就提供了这样的一个环境:虽然宿主机和开发板的CPU体系结构不同,依然可以使用PC机编译开发板上的可执行程序。 其次,你会觉得交叉编译环境没什么用很可能是因为:对于你使用的开发板,厂商已经提供了很好的支持,随机附赠的光盘里一般能找到你需要的绝大多数材料,因此你甚至不需要去自己编译一个u-boot甚至一个内核。但是对于自己制作的开发板,你就会体会到交叉编译环境是多么的“常用”了。 Q.6 听说嵌入式根据CPU分为很多体系结构,例如ARM、ppc等,当我需要编写一个具体的程序时(例如加入到u-boot或者内核的驱动程序),是否需要进行这方面的考虑、是否需要学习各种汇编语言? A.6 无可非议的,u-boot和Linux内核是个很好的开发平台。一般的,这种在已有平台进行驱动开发的工作与体系结构的关系不会很大,因为很多底层相关的调用都被很好的封装了。你需要额外注意的或许只是:你将要编写的设备的data sheet以及它在开发板上如何连接和工作的。 Q.7 具体的说,u-boot和Linux内核的可裁减性到底体现在哪里呢? A.7 u-boot中功能的裁减,主要是在开发板配置文件中进行的。文件目录:include/configs/开发板名称.h。例如:可以配置u-boot中可以使用哪些命令。 Linux内核功能的裁减:主要是在内核编译配置中进行的。使用make menuconfig等命令。例如:内核是否支持鼠标、键盘、块设备等。 Q.8 u-boot以及内核中访问硬件设备之前要进行设备的扫描(探测),请问这是如何实现的? A.8 u-boot中比较简单,没有很复杂(或者说看起来非常智能)的扫描和检测,设备的发现基本上都是“配置+硬编码”的方式实现的。 Linux内核中,设备的检测和扫描较为复杂,实现方式也比较多,这里不进行详述。 对于一般的u-boot移植和内核移植,不需要太关心这方面的内容。 关于本FAQ 本FAQ主要根据学习讨论会相关问题整理而成。 鉴于作者水平有限,难免有些不足之处,希望大家多提意见,帮助我们去完善它。 Changelog 2008/11/18 hobby --发布FAQ 1.0 附件(87.2KB)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
sweetfly机器人#1 · 2008/11/18
hobby付出了相当多啊,详实,这个更是技术十大贴啊,对有志于入门嵌入式的同学来说,有了方向还不行,得耐得住寂寞,静下心来一步一步,脚踏实地的走。
michealyao机器人#2 · 2008/11/18
zhwayne机器人#3 · 2008/11/18
up up
doudou02机器人#4 · 2008/11/18
赞hobby 赞宝宝
hobby机器人#5 · 2008/11/19
呵呵 谢谢
ocean117机器人#6 · 2008/11/19
总结的真好,呵呵。
hobby机器人#7 · 2008/11/19
呵呵 谢谢关注 【 在 ocean117 (ocean) 的大作中提到: 】 : 总结的真好,呵呵。
sweetfly机器人#8 · 2008/11/19
志伟真的是鞠躬尽瘁啊~~强烈赞~~
BES机器人#9 · 2008/11/19
总结的不错,希望可以坚持下去,加油加油!!!