打印

【转】前浪后浪一起死在沙滩上——嵌入式开发有感

[复制链接]
3639|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunmeat|  楼主 | 2015-1-27 15:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
从2012年学习STM32嵌入式开发开始,也有了两年多。这两年多共七百多天的时间里,我诅咒谩骂了这个行业嵌入式工程师不下于两千次!

因为各种策略,STM32在国内推广得特别好,资料丰富,各种资料基本都有中文版。例程更不用说,各家做的开发板也相当不错,比较有名的有红牛、战舰和野火等。
一下子把32位ARM嵌入式开发门槛拉低,大家都感觉到了嵌入式的春天!

于是,许多学生(不仅仅大学生,还有高中生甚至初中生)都买了开发板,跑一趟例程!OK!”我也总算学会嵌入式开发了!“
许多硬件工程师(画板画图的同学)本不会编程,看了各种视频教程和手把手教程以后,也跑一趟例程,也学会了。甚至仿照着开发板自己做一款板子,再改一遍例程,哇噻,“我也可以做开发板了!”
噩梦,才刚刚开始!
沙发
sunmeat|  楼主 | 2015-1-27 15:17 | 只看该作者
根据这两年多的了解,所谓的嵌入式行业,百分六七十的人压根就没有学过C语言,50%的人甚至根本就不懂指针是什么东西,只会照搬修改代码!

使用特权

评论回复
板凳
sunmeat|  楼主 | 2015-1-27 15:18 | 只看该作者
同样一个STM32开发,每一个人都来一遍:
1,从开发板抄一个例程项目,开始修改
2,改一改main函数,或者用SystemInit,或者RCCxxxx,或者GPIOxxx,或者NVICxxx,年复一年的重复类似的工作
3,需要引用固件库的就同样复制一份,每个项目一份固件库
4,95%的嵌入式工程师不会使用版本管理,如果需要备份,那就拷贝一次目录。当然,他们不懂得目录里面哪些是必要的,那次是中间文件没有必要。于是,就出现了网上所谓的几个G教程……
5,有些同学在某个项目里面为了方便,直接修改了固件库的头文件,添加一些宏定义或者全局变量之类的。下一次使用的时候,可能全然已经忘记,又拷贝到别的项目里面去使用,没办法,没有版本管理嘛。后果怎么样大家可以想象得出。
6,98%的同学,发现编译出来的固件ROM很大,RAM也很大,编译也很慢,只好换更大的芯片了。
7,如果你去检查它的项目,你会发现,不管有用没用,所有固件库C文件全部添加到项目里面,编译能不慢吗?
8,如果你看着他编译,你会发现他每回都点Rebuild,真的想一巴掌打过去的心都有!

使用特权

评论回复
地板
sunmeat|  楼主 | 2015-1-27 15:18 | 只看该作者
9,至于ROM很大,看看项目属性就知道,用的居然是0级优先级,也没有按照函数拆分ELF段,能不大吗?

使用特权

评论回复
5
sunmeat|  楼主 | 2015-1-27 15:19 | 只看该作者
10,如果我说他,他还会振振有辞,用3级优先级不好调试,怎么怎么的。你XX的不知道软件开发要分为Debug和Release(RTM)两种项目配置吗?一点也不懂软件工程的做法,就来抢软件工程师的饭碗,活该!


使用特权

评论回复
6
sunmeat|  楼主 | 2015-1-27 15:20 | 只看该作者
这是一个SmartOS例程,带有几个小灯闪烁和中断输入任务,还有一个TinyIP以太网协议栈包括ARP/ICMP/TCP/UDP/DHCP,同样一个项目,普通Debug编译25k,而使用RTM编译,仅有9k

使用特权

评论回复
7
sunmeat|  楼主 | 2015-1-27 15:20 | 只看该作者
11,很多同学忽悠新人,说用微库和固件库会导致程序很大,用寄存器才小,甚至用数字最小。你要是会写程序代码,不调用自己用不着的函数,不自作聪明写很多奇形怪状的算法,会大吗?
12,说数字配置寄存器比宏定义配置寄存器更小的同学,难道你不知道宏定义在编译期会展开吗?你的C语言是体育老师教的呀?
13,说固件库比寄存器更大更慢的同学,你难道不知道3级优先级小函数会自动内联吗?难道不知道固件库里面大量存在的assert_param在RTM时根本就不会参与编译吗?你的C语言是历史老师教的吧!

在我们团队的眼里,80%的所谓嵌入式工程师压根就不会写程序!
不会写程序就不要显摆自己又会软件又会硬件,还一副牛X轰轰的样子!害了自己不说还误导了很多新人,那就真的是前浪后浪一起死在沙滩上了!

使用特权

评论回复
8
autopccopy| | 2015-1-27 17:42 | 只看该作者
呵呵,80%的所谓嵌入式工程师压根就不会写程序????太自大了吧?呵呵

使用特权

评论回复
9
firstblood| | 2015-2-11 22:30 | 只看该作者
写程序是非常困难的事情的。。。但是也是必须的。

使用特权

评论回复
10
sting_yang| | 2015-2-18 12:46 | 只看该作者
我就是那80%中的一员

使用特权

评论回复
11
z_no1| | 2015-2-27 14:16 | 只看该作者
楼上说的问题,也就是新手会犯,老手,哪怕是原来做过51的老手,也知道里面很多问题的。不过ARM CM0/3/4是新时代的51.

使用特权

评论回复
12
z_no1| | 2015-2-28 10:11 | 只看该作者
同样一个STM32开发,每一个人都来一遍:
1,从开发板抄一个例程项目,开始修改
     这个不好说怎么样。
2,改一改main函数,或者用SystemInit,或者RCCxxxx,或者GPIOxxx,或者NVICxxx,年复一年的重复类似的工作
    任何一个“懒”人都不会这样。
3,需要引用固件库的就同样复制一份,每个项目一份固件库
   硬盘够大就没什么事。这样还是有点好处的,至少要拷贝比较方便。
4,95%的嵌入式工程师不会使用版本管理,如果需要备份,那就拷贝一次目录。当然,他们不懂得目录里面哪些是必要的,那次是中间文件没有必要。于是,就出现了网上所谓的几个G教程……
   打屁股。
5,有些同学在某个项目里面为了方便,直接修改了固件库的头文件,添加一些宏定义或者全局变量之类的。下一次使用的时候,可能全然已经忘记,又拷贝到别的项目里面去使用,没办法,没有版本管理嘛。后果怎么样大家可以想象得出。
  没有版本管理的代码都不存在。
6,98%的同学,发现编译出来的固件ROM很大,RAM也很大,编译也很慢,只好换更大的芯片了。
7,如果你去检查它的项目,你会发现,不管有用没用,所有固件库C文件全部添加到项目里面,编译能不慢吗?
8,如果你看着他编译,你会发现他每回都点Rebuild,真的想一巴掌打过去的心都有!
如果速度没压力,资源够用,用优先级0也不是不可以。优化守则第一条“没必要时不要去优化”。ARM的速度和资源对一个从51过来的土鳖来说,有土豪的感觉。买豆浆,喝一碗倒一碗?当然如果发现资源不够用时,就要琢磨一下了。这个问题在51里一样存在。

使用特权

评论回复
13
shdjdq| | 2015-2-28 10:45 | 只看该作者
嵌入式需要经验,时间来提高

使用特权

评论回复
14
z_no1| | 2015-2-28 11:16 | 只看该作者
不管是什么,入门一般都简单,真正能在简历上写“熟练使用XXX”都不容易。

使用特权

评论回复
15
shenmu2012| | 2015-3-8 16:56 | 只看该作者
学习无止境,,要边学习边总结的才可以。

使用特权

评论回复
16
comeon201208| | 2015-3-11 23:06 | 只看该作者
做开发工作的黄金年龄在25~32岁之间吧。。

使用特权

评论回复
17
comeon201208| | 2015-3-11 23:07 | 只看该作者
技术是不断进步的,,总会有越累越多的新人涌现出来的。

使用特权

评论回复
18
smilingangel| | 2015-3-14 23:48 | 只看该作者
做这个工作的是需要仔细认真的态度的。

使用特权

评论回复
19
ereck| | 2016-5-26 16:21 | 只看该作者
没有时间积累是做不了的
认真仔细是必备条件
做好不容易

使用特权

评论回复
20
pattywu| | 2016-5-27 08:35 | 只看该作者
如果团队都是这个样子,团队领导就有问题。他不会选择团队成员!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

2132

帖子

13

粉丝