七月流火,九月授衣。上海的天气热的让人喘不过气,夜晚闷热难耐,天生又不愿去闲逛只宅在屋内。这样的天气很容易让人感觉时间的漫长,头脑反应也变 慢,发呆回忆。希望这段让人不爽的时间能留下点有用的记录吧。转眼到新工作已经有三个多月了,期间从一开始的无所适从到现在入门真是感觉成长很多。这段时 间也开始真正的了解认识到驱动以及芯片开发的大致情况,在此写出来希望能对想了解或进入这个领域的有所帮助。
进入正题,了解驱动工程师需要的技能还是从公司的需求开始看,以下是本人从网上截取的一则招聘驱动工程师的简章:
这是一家具有代表性的公司,从中可以看到一些重要的细节,可以总结出一些技能需求的类别。
第一:工具语言的需求,虽然没有明确具体的写出来,但是里面细节包含了对于C C++语言的需求。没有C语言基础是肯定不能完成的。
第 二:内核的了解,这里的驱动指的不是通用的TI ADI 等公司的DSP ARM器件的驱动,这是对于自主开发定制的专用芯片的驱动,里面的内核也不一定 就是ARM,有可能就是LEON ARC 等小内核,这样的驱动就需要对内核interrupt catch 等了解。
第三:嵌入式系统的了解,现在的系统复杂度越来越高,不移植系统进行人物调度单纯靠造的队列解决任务冲突是非常困难和不划算的,毕竟像UCOSII这样的微小系统对于个人是免费,商用虽然收费不过国内大环境下还是相当于免费。
第 四:补充工具需求,很多可以让开发提速的工具都是掌握一周就会效率飞速提升的,例如脚本语言,windows下的 bat linux\windows 下的perl python 。驱动开发中遇到的编译器会有GBK UTF8 UTF16 等语言格式,同一种编 译器不同的版本之间也会出现这样的转化需求。matlab可以转化但是做经常的调试转化开关matlab是非常浪费时间,大小端的转化更是常见,编译器生 成的bin文件到FPGA吃的.txt文件之间的转化,脚本不会真的不能称之为软件工程师。
第五:语言,此语言就是说英语了 。在芯片设计 开发中最常见的就是核心IP自己开发,外设模块都是购买新思等专业IP提供商,但是这里存在一个很大的问题就是IP的出售许可和售后是分开的。也就是说如 果想用起来,遇到问题去咨询一般是按天收费的,价格也会非常的高。这样就要求必须在所提供的资料中挖掘出足够的细节知识,将IP驱动好。 designware是提供的说明文档,也是驱动能依赖的唯一资料。读不懂就要花钱去付费咨询了。
当让除了以上的五条外还有些心态,态度等,这些就得靠时间慢慢磨了。