金牌会员
- 积分
- 1503
- 威望
- 905
- 贡献
- 388
- 兑换币
- 261
- 注册时间
- 2012-2-4
- 在线时间
- 105 小时
|
距离我第一次参加FSL CUP 已经过去将近3个年头了,虽然参加了2次,但是总感觉学的东西太少,最后一年大学生活过于颓废(天天忙着做项目和软件编程的学习)。可是正当我觉得我可以加入嵌入式软件行业的时候,有一个FSL 的FAE告诉我,搞硬件吧,别弄LINUX了,LINUX现在去五道口抓10个人,4个都是做LINUX的。我想想也是,确实是这样,现在满大街都是嵌入式LINUX培训,光我知道的就什么华清啊 达内啊 各种各样,不过我大二的时候就去把华清的课都上完了,是什么鸟样自己心里比谁都清楚,虽说这段简单的经历对我后期工作中还是有蛮大影响的(这种培训虽然坑爹,但是基础知识和扩展面掌握还是很全面的,至少也花了1W多大洋,再怎么烂也学点东西)。
但是就由于那个 名叫X某涛的FAE,告诉我这样的一个事实之后,我一股脑地转投到了“嵌入式硬件设计”的学习中,经过一段时间的摸索,还记得那个时候开始学画板子和硬件设计的时候是大一,用的是Protel99SE,后来进了实验室,老板说叫我们用Altium,初接触的时候觉得那个软件界面真的比99强太多了(其实大家很多人都不知道一个软件叫做Tango是DOS下面用的,貌似是Protel这个产品的前身),用了AD大概一年之后,逐渐发现用AD画板子特别卡,尤其是DSP的那种四层的板子,在中间两层走线的时候,那叫一个卡啊,不知道是PC问题还是什么。后来经高人指点之后,开始使用PowerPCB这款软件画板子,但是接触这个软件之后发现这软件真TM难用啊,因为AD已经成为思维定式了。觉得太不爽,后来就开始用PADs,发现PADs虽然是POWER-PCB的升级版,但是还是用起来很难用,不过后来慢慢熟练就好多了,比AD要强很多,虽然那个时候那些功能我都没用上。
后来,我大四的时候逃了一个学期的课(大四第一学期还有课),出来上班,应X某涛的指点,我几乎所有的简历都奇葩地写了关于LINUX驱动编程(那个时候只会LINUX 字符驱动和平台驱动编程,还不怎么熟练)和UNIX操作系统编程的经验。最后弱弱地写了参加过两届FSL和1届省赛还有1届国赛(话说去了那么多公司,才发现越大的公司,这东西越不值钱,不晓得为啥)。
最后没办法,参加了几次招聘会都无果而终,因为这个年头搞技术的人真的是太多了,而且技术层次分的很清,档次很明显。这也就是很多行业工资差距很大的原因。最后我只能去网投。索性被某XX企业叫去面试了。然后捏,他们的面试题是酱紫的:
#include<stdio.h>
typedef struct {
int x;
char y;
long z;
short a;
void *ptr_x;
}str_1;
int main (int argv,char **argv) {
printf("size of str_1 = %d Byte\n\r",sizeof(str_1));
return 0;
}
请回答该句打印的结果?
有兴趣的同学可以说说答案,不过我猜很多人,尤其是在校的学生都没法写对,前几天FSL去某邮电大学招人的时候也出了这么个题目,结果一群硕士躺枪了。
当时的我对这种题目信手拈来,但是由于我只写对了一半,结果依然没有被录用。后来的几日里,我发现一个非常严重的找工作的BUG。
问题1: HR招人的时候怎么招人?
回答: 先看自己简历邮箱的人是否符合要求,如果没有,有的企业会慢慢等,有些则从网站的优秀简历仓库中掏钱去看简历。
问题2: 求职者怎么投简历 ?
回答: 找匹配自己要求的公司,将简历投递进去。
大家发现问题了吧,对没错 我们先从一堆企业里筛企业,然后HR再筛我们,这样几率就下降了一半。这种时候,我急于找工作,就干了这样的一件事,在某招聘网站上,直接搜索关键词 “ARM” 然后 点击全选,然后投递。
结果就是 之后的一个星期,天天有人给你打电话,有做广告的,有培训的,有拉你入伙传销的等等等等。不过正规企业打电话的几率也增多了。
后来我在这些企业里,找到了一个 某电XX所,在里面从事一个奇葩的职业 “System Engineer”,说到这里,其实我想说,有一个轻小说叫 《なれる!SE》 貌似现在要TV化了,有兴趣的可以看看。说到这个岗位,其实很蛋疼,同事自称叫
Super Engineer,其实说白了,我将其称之为屌丝工程师,因为这种坑爹的职业,啥都要干,从整个设备的需求分析,外壳尺寸,风道设计需求,散热,PCB整版功耗、GJB968B实验要求、烟雾、酸雾、霉菌、淋雨、高低温,热冲击,震动等等等等。然后再到软件需求分析,那些软件功能由那些器件实现,上位机要做些什么等等等等。一大堆的事情,就几个人商量之后然后开干。我擦,我一直以为这种企业都蛮规范的,结果我蛋都要碎了。
然后才是正文,这几天,我突然发现我们板子上某型号的C8051停产了,然后找不到Defence级别的芯片替代,后来找到了深圳某企业,但是看看价格,又蛋疼了。最后没办法,采购竟然搞到了K60的 Defence级,但是价格很贵,估计要在3200多RMB一片,无奈没办法,只得买下来,然后编程的破事就跑到我头上去了。
“尼玛,我是Layout的啊,不是单片机攻城狮”,
某工:“X工休产假了,你替一下!”
“我 嚓 file:///C:\Users\ADMINI~1\AppData\Local\Temp\SGTpbq\6228\00792C4F.gif泪。。。。,我不会用这个单片机啊!!”
某工 ,从一堆废纸中抽出N久前我的纸质版简历,然后在最下面画了一横岗,上面写着 第七届FSL XXXX
第八届 XXXXX 等。然后对我笑了笑说:“你当老子是 白痴啊!”
我被臭骂一顿之后,俨然逃不过替别人写程序的命。
好久没用,就跑到各大论坛找资料,后来发现有官方有 Kinetis SDK 就下载了一个,结果发现,里面的代码都TM是机器生成的,而且写代码的风格有点像。。。。甲骨文的JAVA ,后来问了某涛之后,他告诉我那个是软件工程的产物,就是一个人看不懂,又懒得看的代码。 然后给我推荐了几个中国人写的库,这里面有 现在做智能车的野火库 LPLD库 还有一个超核库。
然后我对照了一下几个库的区别,最后给我们一个同事看了看,然后同事的评价是这样的
野火库:写的比较直白,只不过好像缺点啥。
后来我也发现,库写的比较直白确实是,但是如果在比较大的工程,比如编译代码文件超过50W行左右 量化bin文件在600K以上 这种级别的代码中 类C风格代码是不会被采用的,究其原因就是代码的“耦合性”过于强,至于耦合性强会造成什么问题,这主要是在代码灵活性上体现的,多人协作开发过程中这种代码一般都不会被采用。
LPLD库: 这个感觉比野火的好一些,我个人感觉适应起来快,但是也有缺点,就是有些东西找不全,或者是用起来不是很舒服,至少我写了这几年程序,发现的问题有些还是在这个库里面被重现了。
超核库: 这个库本来我没下载,而是FSL的一个FAE发给我的,他说他们公司现在很多客户都在用,然后给我看了看,结果我看完之后发现我喜欢上这个库了(因为修改过LINUX驱动代码),这个库的风格类似POSIX,写法类似C++就是 强封装形式的C代码,这种代码在公司内部用的比较多,就是用C++的思想,C的语法去封装一个设备,将设备看成文件来操作,对于文件的操作,无非就是 创建 打开 读 写 ,那这个库基本都实现了,而且东西也比较全,也使我的开发流程彻底缩短了很长时间(不用自己去写驱动了),最开心的是他移植了 RTT,这个东西现在我们体系里用的比较多,毕竟睿赛德还是有些背景的。
当我写完了5%的代码后,LEADER告诉我,画板子去,丫的写什么代码。
我真的是欲哭无泪了,然后操刀 Cadence 跑去 镁光下载 NOR FLASH和 DDR4的 IBIS模型,来做前仿真。结果出来的眼图TM的都闭上了,还得改拓扑呀!
另外说一下, 外面用的比较多的画板子的软件就俩 Cadence SPB 和 Mentor AD和 Pads用的相对较少(我指的是高速数字设计中,模拟和低速板子的我不是很清楚,因为现在画的比较少了。)
|
|