嵌入式开发模式,求前辈们分享看法和心得、、

凌风子 2012-11-10 07:55:47
加精
我是今年今年刚毕业的菜鸟,想往嵌入式发展,在校时只学过C语言,单片机、模电、数电自动控制等课程。本科是非科班出身的,现在的想自学嵌入式,目前正在就着天嵌TQ2440的开发板学习内核移植的东西。今天到一个做嵌入式产品的公司参观学习,是做交换机和路由器的,也跟他们请教了些嵌入式开发的一些问题。他们说现在的嵌入式开发的模式和从前不一样了,现在都是搭积木式的开发。卖芯片的人会提供驱动等一系列相应模块的源代码。除非他给的驱动出问题了才去debug,或者他给的源码不能满足自己要求才会去做相应的改进,如果有的功能模块没有也是先到网上下一些源码然后再整合进去。而且现在没有公司专门分做驱动,做系统,做应用,一般都是全做的,即一个工程师可以玩转整个产品,整个开发过程工程师们要做的更多的是前期的评估,中期的整合,和后期的测试等等。整个过程不需要嵌入式软件开发工程师写多少代码。
而关于嵌入式的学习他们说基本上都是linux编程比较多,他们建议如果我要自学嵌入式的先看《linux程序设计》和《Unix环境高级编程》,然后如果想往驱动走的话再看《linux设备驱动程序》,往应用的话则要看从事什么行业,做什么产品。
各位前辈们,望多多分享你们的看法和心得,给菜鸟一点指导。我真心的感谢今天和我分享这些东西的工程师们,我不是对他们的话持怀疑的态度才又在这里发帖的,我只是想更全面的了解一些,真心求指导啊、、、
...全文
1605 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2012-12-14
  • 打赏
  • 举报
回复
引用 14 楼 osnetdev 的回复:
作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代码量可就大了许多,也正是通过这个项目接触到嵌入式系统的方方面:bootloader,RTOS,driver,TCP/IP Stack。第3年才又回到嵌入式Linux,也是先从应用层开始,慢慢深入到kernel,改driver, 改bootloader,优化协议栈,netfilter防火墙,到目前自己能独立编写driver,基本上从应用层到内核都能独当一面。感觉个人的发展也要看机遇和公司环境,国内的公司基本上都买现成的解决方案来做二次开发,所谓的解决方案就是Turnkey Solution,包含从bootloader,kernel,driver到application,WEB UI都给你做好了,而所谓的设备商只需要拿过来做做定制,改改UI换下logo把产品包装一下就卖出去。外企普遍要好一些,Intel,qualcomm,WindRiver,Fujitu,EMC什么的,做的东西还是有技术含量的,可以接触到核心的东西。当然不同的公司对业务层面的偏重不一样,通信设备商偏重于各类协议,通信知识,要求对协议栈的了解比较深刻。而像EMC这种存储厂商偏重于存储,要求熟悉Filesystem。不管什么厂商,只要他要求嵌入式Linux开发人员,对kernel有深入了解的人都是他们prefer的。所以,我的建议是先application后kernel,只有对应用层编程熟练后,再进入kernel才能水到渠成易于理解,反过来对kernel的理解也会帮助你更好的写应用层程序。
+++
zhujinqiang 2012-12-14
  • 打赏
  • 举报
回复
做交换机和路由器的,确实基本上都是linux编程比较多 他们不会用WINCE的
hugenhua281102 2012-11-24
  • 打赏
  • 举报
回复
osnetdev 2012-11-23
  • 打赏
  • 举报
回复
说道好的学习方法还真没什么好说的,大家都是经过高等教育的了,应该有自己的一套适合自己的自学方式,有的人喜欢深入一个点再慢慢扩展开,有的人喜欢广泛涉猎最后找准自己的专注点。而嵌入式这个行业包括的范围比较广:从日常用的智能手机,无线路由器、机顶盒到电信级的网络设备都会设计到嵌入式开发,而嵌入式开发的特点决定了他的特殊性,总是针对某一领域进行定制开发,所以我认为最好的学习方法就是在实践中去提高。对于应届生来说也就是先找一家嵌入式开发的公司在工作中不断地学习,我不太推荐以自学的方式去学习嵌入式,一方面是因为找不准自己的方向(有块开发板你想往哪方面学习呢,特别是现在的开发板功能比较全,相当于一个小型的计算机系统了,随便哪方面都有得学),容易产生挫败感;另一方面是嵌入式对经验的要求比较高,有些技能如果只是自己专研不容易掌握,在公司的环境中可以利用现有硬件资源,即使遇到问题也可以找人请教交流(如果能认识嵌入式公司的牛人那是最好的了,我至今仍保留着我第一家公司【台企】的架构师的MSN联系方式,有时候遇到一些疑问就去和他讨论),另外工业界的很多方式方法是通用的,只有在公司里你才能接触到比较正规的开发流程和方法。所以我强烈推荐你挤破脑袋都要先找家行业内的公司呆着,先慢慢积累工作经验再图后续发展。
cls56789 2012-11-23
  • 打赏
  • 举报
回复
学辈 教育的对啊,
凌风子 2012-11-23
  • 打赏
  • 举报
回复
引用 20 楼 tracyjk 的回复:
引用 14 楼 osnetdev 的回复:作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代……
对着一块开发板,前辈可以建议一下要怎么好好利用它吗?可以怎么学习开发呢?
凌风子 2012-11-22
  • 打赏
  • 举报
回复
引用 14 楼 osnetdev 的回复:
作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代码量可就大了许多,也正是通过这个项目接触到……
前辈,如果从应用开始的话,有哪些方面的知识是需要重点掌握得呢?
凌风子 2012-11-22
  • 打赏
  • 举报
回复
引用 20 楼 tracyjk 的回复:
引用 14 楼 osnetdev 的回复:作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代……
嗯嗯,正在努力中、、呵呵,如果做应用那在C语言方面需要补充哪些方面的知识,或者有没有相关的推荐书籍呢?
凌风子 2012-11-22
  • 打赏
  • 举报
回复
引用 14 楼 osnetdev 的回复:
作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代码量可就大了许多,也正是通过这个项目接触到……
非常感谢前辈的分享,那在学习道路方面,前辈有什么建议吗?特别是如果现场应用开始的?
LonganWang1983 2012-11-22
  • 打赏
  • 举报
回复
现在确实如此,搭积木式的开发这个比如确实说得很形象。。。 现在做嵌入式开发确实是做应用为主,但是虽然说驱动代码芯片公司都会提供了,但是这个还是需要懂的。
诶呦 2012-11-21
  • 打赏
  • 举报
回复
引用 14 楼 osnetdev 的回复:
作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代码量可就大了许多,也正是通过这个项目接触到嵌入式系统的方方面:boo……
前辈啊
tracyjk 2012-11-21
  • 打赏
  • 举报
回复
引用 14 楼 osnetdev 的回复:
作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代码量可就大了许多,也正是通过这个项目接触到……
确实,从应用开始相对简单点,但是觉得自己有实力的话也可以直接上驱动的。只是大部分公司一般招驱动不考虑应届生的。 LZ已经买了一块板,可以好好玩下那块板,要是真的玩通了,那你已经达到一定水平了。
BreathOfDeath 2012-11-21
  • 打赏
  • 举报
回复
14楼说的真好。。
lxyzg 2012-11-21
  • 打赏
  • 举报
回复
这论坛主要是干什么的
chengxinpk 2012-11-21
  • 打赏
  • 举报
回复
我也想学,可是没听老师讲过,只在学基础。没意思的基础,学着没动力。
youxizhizuo 2012-11-21
  • 打赏
  • 举报
回复
个人认为都要学。
挣扎中前行 2012-11-20
  • 打赏
  • 举报
回复
真的是搭积木似的开发
osnetdev 2012-11-20
  • 打赏
  • 举报
回复
作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代码量可就大了许多,也正是通过这个项目接触到嵌入式系统的方方面:bootloader,RTOS,driver,TCP/IP Stack。第3年才又回到嵌入式Linux,也是先从应用层开始,慢慢深入到kernel,改driver, 改bootloader,优化协议栈,netfilter防火墙,到目前自己能独立编写driver,基本上从应用层到内核都能独当一面。感觉个人的发展也要看机遇和公司环境,国内的公司基本上都买现成的解决方案来做二次开发,所谓的解决方案就是Turnkey Solution,包含从bootloader,kernel,driver到application,WEB UI都给你做好了,而所谓的设备商只需要拿过来做做定制,改改UI换下logo把产品包装一下就卖出去。外企普遍要好一些,Intel,qualcomm,WindRiver,Fujitu,EMC什么的,做的东西还是有技术含量的,可以接触到核心的东西。当然不同的公司对业务层面的偏重不一样,通信设备商偏重于各类协议,通信知识,要求对协议栈的了解比较深刻。而像EMC这种存储厂商偏重于存储,要求熟悉Filesystem。不管什么厂商,只要他要求嵌入式Linux开发人员,对kernel有深入了解的人都是他们prefer的。所以,我的建议是先application后kernel,只有对应用层编程熟练后,再进入kernel才能水到渠成易于理解,反过来对kernel的理解也会帮助你更好的写应用层程序。
坏脾气的猪 2012-11-20
  • 打赏
  • 举报
回复
楼主头像很帅啊!
jshaonanren 2012-11-20
  • 打赏
  • 举报
回复
多读多看 积累经验
加载更多回复(10)

1,068

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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