作者extrawave (Mezzo DSA)
看板LinuxDev
标题Re: [问题] Linux Development
时间Tue May 15 00:04:10 2007
※ 引述《vvision ()》之铭言:
: 感谢各位的回答
: 我是想要尝试嵌入式系统 不过应该底子不是很好 (硬体部分)
: 所以想说先从driver 学起 ..
: 想请问各位前辈几个问题
我是非相关背景
然後刚入门第一次接触的初学者,希望大家也能不吝给与指教 ^^"
: 1.在学driver前是否有什麽先修课程需要先学习的
: 2.我有上网查过一些资料 有的人有买板子
: 像我这种初学者 要马上买吗? 还是等学一阵子在买
: 3.我有上网看大家推荐driver的书籍
: 目前是考虑 欧莱礼的 Linux Device Drivers, Third Edition (不过是中文版的)
: 请问这本适合初学者吗?
: 是否有需要搭配 欧莱礼Understanding the Linux Kernel, Third Edition(也是中文)
: 因为之前OS恐龙本学的乱七八糟的 所以OS概念也不是很好...
: 再书籍方面可否麻烦大家给点建议..
: 麻烦大家了..谢谢!
针对上述三个问题我用我目前的整个学习过程和方法一并回答提供给你参考一下
我使用的板子是 ADI 的 ADSP-BF537 STAMP Board
http://www.analog.com/en/epProd/0,,BF537-STAMP,00.html
再加上 uClinux
http://blackfin.uclinux.org/gf/
这样的搭配可以足够让你从底层的 driver 一直玩到 OS 层次上面
然後再来做一个软硬体整合
所以这样完整的玩过一次的话,对整个观念也会更了解的
回到学习过程上来讲
在正式开始学习写 driver 之前
我是以 Understanding the Linux Kernel, Third Edition 为主
先在一般桌机的 linux 上 (看个人喜好哪个 linux distro,没特别限定)
学习怎样在 linux kernel 里 trace 出一些我想知道的 data
所以在这部份我学会怎样去新增或使用 system call
也知道和学会使用许多好用的 data structure, marcro
总之在这花时间培养和建立起对 OS 的整体感觉和观念
之後要用到板子上的 uClinux 也就大同小异了
接着要开始写 driver 时
我以 Linux Device Drivers, Third Edition 为辅和大量 google 来的网路资料为主
先学会最简单的 character device driver (我目前也只懂得一点点这个而已...)
在这过程中就把前述学会的许多 OS data structure, marcro ...等拿来运用
还有一个最重要的是要学会看懂板子的 data sheet
看 data sheet 的过程真的要很有耐心和仔细的花时间去看和 try
如果手边还有三用电表和视波器的话
可以拿来帮助你检视输出的波型对不对, 针脚是否正常在 work ...诸如此类的检查验证
就这样
OS ok 了,driver 也 ok 了,最上层的 application 也会写的话
那就做一个软硬体整合
在玩完一整套的基本学习之後应该够给你一个充分的感受也可以构成一个很好的开端
以上就是我这第一次接触的初学者这半年多来的学习经验
刚开始学时真的会很痛苦也很苦恼
但是若有心坚持用心去学习和挖资料的话
跨过去之後真的会越学越顺畅
因为在这过程你会越来越懂得怎样去克服同样类似的困难
虽然还是很花时间就是了
希望对你有帮助
也希望有其他先进们能给我些建议
谢谢 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.212.44
1F:推 vvision:非常谢谢你,这样我也知道我该如何起步,谢谢! 05/15 18:48
2F:推 vvision:不过我想请问一下 你在学之前是不是有 硬体与程式语言底子 05/15 18:50
3F:推 extrawave:外系修过资工的 OS 和计算机组织,会一点点 C 而已... 05/15 23:51
4F:推 sivle:请问这块版子多少钱要去哪买? 05/16 00:20
5F:推 extrawave:在校在学学生请用 university program 方案购买会较便宜 05/16 02:32
6F:→ extrawave:详细价钱就烦请向网站上的台湾代理查询了 05/16 02:36
※ 编辑: extrawave 来自: 140.115.212.44 (05/16 02:55)