JAVA程序员想转驱动开发,大虾们支招啊!

songbeirui 2009-09-22 10:02:15
本人做了三年JAVA开发,现想转学驱动开发,不知从哪方面开始学起(起步那种).
想实现那种通过控制台输入后,系统根据输入的信息识别,执行相应命令(比如呼叫电话,语音对答等).
请大虾们给个学习规化谢谢!
...全文
324 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wuaner 2011-02-22
  • 打赏
  • 举报
回复
mark for that
[Quote=引用 10 楼 cychen1984 的回复:]

说穿了,硬件工程师会给你一份硬件规格说明书,也就是datasheet,能看明白就可以了.比如某个引脚,对应某个寄存器,高位有效,还是低位有效.
最高效的学习办法是,找个资深的哥们+google+实践+翻翻书(都不用太仔细),如果C基础比较好,两个月搞定肯定没问题.
[/Quote]
cychen1984 2009-09-28
  • 打赏
  • 举报
回复
说穿了,硬件工程师会给你一份硬件规格说明书,也就是datasheet,能看明白就可以了.比如某个引脚,对应某个寄存器,高位有效,还是低位有效.
最高效的学习办法是,找个资深的哥们+google+实践+翻翻书(都不用太仔细),如果C基础比较好,两个月搞定肯定没问题.
cychen1984 2009-09-28
  • 打赏
  • 举报
回复
UNIX环境高级编程 这本书,主要的东西都是最基本的.
还有楼主到底是想做linux驱动,还是windows驱动,还是mtk驱动,还是单片机(51,avr)驱动啊.

写驱动还要懂点硬件的,时序电路,数字逻辑,高低电平,晶振(分频,扩频),锁存器,上拉电阻,I2C总线,分别是用来干什么的?这些都是最基本的概念.要复习数字电路.不过模拟电路就别碰了,搞硬件的人很多都一知半解.
cychen1984 2009-09-27
  • 打赏
  • 举报
回复
本人也是java做了3年,什么spring(AOP,IOC),hibernate(antlr)源代码,UML都比较熟,Ajax,dwr,javascript,webservice,工作流开发(中间件开发),等相关的都做几个项目,还参照一些open source,自己设计了一个Ajax框架.同时设计模式,架构设计书都看过不少,还研究过java虚拟机,一般的OA项目,管理系统,需求,设计不敢说能做多好(达到验收基本没问题),db2,oracle,sql server 也都有几个项目经验.其中对oracle数据库的优化,数据库锁什么的,都做过相关研究(当然属于业余兴趣).
但是近一年来,我从事的是嵌入式设备相关工作主要做嵌入式linux和c/c++,驱动,arm等.除了ANSI C以外,对GUN C(做过linux kernel开发就知道二者区别)c++(gcc,g++编译环境)的STL,及kernel的source投入比较大精力,工作中还开发过netfilter,ebtables的extension.还弄过uboot,redboot等bootloader,
对于字符驱动和网络驱动部分比较熟悉.除了TCP/UDP,socket之外,对于链路层的LLC和MAC等layer也有一定熟悉(因为公司主要是做ad hoc和mesh网络设备的),还有shell,awk什么的就不多说了.
从较上层做到较底层,一路下来非常痛快.因为很多东西是相通的,ajax框架中的涉及浏览器兼容性的js,与kernel之中处理不同架构(arm,x86,mips等)兼容性的宏,UI的事件驱动与kernel module的事件驱动,数据库锁,并发与kernel中的spin_lock,semaphone. OO与linux中的cdev,MTD等设备抽象层.IOC与设备注册,乃至java中的一切继承自object对象,与"UXIX中的一切皆文件".
几乎可以说不管什么系统,把握住"流程,接口,模块",这三个立足点.不管什么系统设计把握住"实体与抽象",就能一通百通,很多体会我只有做过业务系统(如用j2ee),和低层开发(如:linux kernel)的相关开发才有所深刻的理解.
songbeirui 2009-09-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhongjin_cnaf 的回复:]
首先熟悉linux编程,《UNIX环境高级编程》个人觉得很有必要看

再深入理解linux操作系统,可以先看本薄点的,是Rober Love的《Linux内核设计与实现》,看完了就可以转入驱动开发了。但是建议学到一定程度再回过头来看看那本很经典的《深入理解linux内核》,这时你对linux驱动开发会有很多新的认识

然后就可以转入linux驱动开发学习了,可以看经典著作《linux设备驱动开发》,国内的宋宝华有本《Linux设备驱动开发详解》还可以

一定要多动手实践,勤于思考,不要光看不练。学习过程中如果发现哪部分知识不足、妨碍理解的话,一定要及时补上。

学习的过程很枯燥却也充满收获的喜悦,成功只属于能够持之以恒的人。三天打鱼两天晒网是什么也做不成的
[/Quote]



UNIX环境高级编程 这本书我有,感觉起步有点高。
ubiquitious 2009-09-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cychen1984 的回复:]
本人也是java做了3年,什么spring(AOP,IOC),hibernate(antlr)源代码,UML都比较熟,Ajax,dwr,javascript,webservice,工作流开发(中间件开发),等相关的都做几个项目,还参照一些open source,自己设计了一个Ajax框架.同时设计模式,架构设计书都看过不少,还研究过java虚拟机,一般的OA项目,管理系统,需求,设计不敢说能做多好(达到验收基本没问题),db2,oracle,sql server 也都有几个项目经验.其中对oracle数据库的优化,数据库锁什么的,都做过相关研究(当然属于业余兴趣).
  但是近一年来,我从事的是嵌入式设备相关工作主要做嵌入式linux和c/c++,驱动,arm等.除了ANSI C以外,对GUN C(做过linux kernel开发就知道二者区别)c++(gcc,g++编译环境)的STL,及kernel的source投入比较大精力,工作中还开发过netfilter,ebtables的extension.还弄过uboot,redboot等bootloader,
对于字符驱动和网络驱动部分比较熟悉.除了TCP/UDP,socket之外,对于链路层的LLC和MAC等layer也有一定熟悉(因为公司主要是做ad hoc和mesh网络设备的),还有shell,awk什么的就不多说了.
  从较上层做到较底层,一路下来非常痛快.因为很多东西是相通的,ajax框架中的涉及浏览器兼容性的js,与kernel之中处理不同架构(arm,x86,mips等)兼容性的宏,UI的事件驱动与kernel module的事件驱动,数据库锁,并发与kernel中的spin_lock,semaphone.  OO与linux中的cdev,MTD等设备抽象层.IOC与设备注册,乃至java中的一切继承自object对象,与"UXIX中的一切皆文件".
  几乎可以说不管什么系统,把握住"流程,接口,模块",这三个立足点.不管什么系统设计把握住"实体与抽象",就能一通百通,很多体会我只有做过业务系统(如用j2ee),和低层开发(如:linux kernel)的相关开发才有所深刻的理解.
[/Quote]
牛人啊,
瞻仰一下。
zhongjin_cnaf 2009-09-26
  • 打赏
  • 举报
回复
首先熟悉linux编程,《UNIX环境高级编程》个人觉得很有必要看

再深入理解linux操作系统,可以先看本薄点的,是Rober Love的《Linux内核设计与实现》,看完了就可以转入驱动开发了。但是建议学到一定程度再回过头来看看那本很经典的《深入理解linux内核》,这时你对linux驱动开发会有很多新的认识

然后就可以转入linux驱动开发学习了,可以看经典著作《linux设备驱动开发》,国内的宋宝华有本《Linux设备驱动开发详解》还可以

一定要多动手实践,勤于思考,不要光看不练。学习过程中如果发现哪部分知识不足、妨碍理解的话,一定要及时补上。

学习的过程很枯燥却也充满收获的喜悦,成功只属于能够持之以恒的人。三天打鱼两天晒网是什么也做不成的
songbeirui 2009-09-25
  • 打赏
  • 举报
回复
有没有更详细点的介绍.想在linux下做开发.
liwenso 2009-09-23
  • 打赏
  • 举报
回复
友情UP
  • 打赏
  • 举报
回复
呵呵,支持一下
oLINo 2009-09-23
  • 打赏
  • 举报
回复
转就转喽,从新学起。

先复习复习C语言,汇编。

看windows驱动开发那本书,熟悉DDK,deiverstudio开发工具等



593

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧