※ 引述《t7365443 (U彦)》之铭言:
: 各位版友好
: 目前就读国立科大硕(电机)
: 大学是资工系的
: 本人一直想走韧体工程师这方面
: 但是实验室又是做网络相关的
: 想找个网络设备的韧体的领域
: 想知道如果要走韧体这方面需要补足什么地方
: 有什么比较重要的地方 可以自己自学或是去修大学部的课
: 大学是稍微有玩过arduino开发版
: 但尤其是硬件这方面 (电子 电路 嵌入式系统等等)以前资工教的比较少
: 谢谢各位的意见
身为一个在韧体&embedded system 工作了快20年的老屁孩来跟你说(我很废,bug制造机,
只剩年资可以说嘴).
想走韧体,基本的电子电机知识是一定要具备的.
最基础的电子学,电路学,数位逻辑,基本电学,非常重要,要会.基本的芯片通讯方式,
例如gpio, i2c, SPI,要会,电磁学,线路设计,pcb layout,会的话更好但不是必须.
要会这些要干麻? 因为等你控制周边芯片,周边芯片却不会正常动作的时候,你要有能力
找出为什么.至少要能找到线索,说得出所以然来.这样你才能跟硬件工程师进行讨论.
如果你只是一个遇到问题就只会说”阿我填了暂存器,他就是不会动阿”的韧体工程师
,那硬件工程师怎么跟你合作?厚黑一点的来说,当硬件工程师指责你的时候你能在老板面
前反击.
MCU/CPU/SoC的硬件部份,要知道一些基本知识,中断,轮询,timer,io,memory,mmu/non-
mmu,memory address mapping,clock&PLL,power & regulator等等的,不知道这些,你就
无法知道怎么正确控制cpu的行为
OS的部份,基本的恐龙书内容要会,因为 1)如果你是在一个作业系统上开发,你要知道作
业系统在背后挖什么洞给你跳.2)如果你遇到的是单芯片裸机开发,你总有一天会遇到需
要开发出自己的一个简单的分时系统的状况.不过资工的恐龙书都要念,对资工人应该还
算小菜.
除错的部份,最基本的要懂得操作三用电表,示波器,逻辑分析仪.韧体除错部份,大概要知
道如何操作一些通用的除错工具,例如gdb,或是IDE内附的debuger,另还有Jtag or SWD
等等.但我敢保证做轫体一定会遇到上述工具都无法帮助你的时候.
回头来说,如果要走网通类韧体,目前产业链还蛮完整,OS&周边芯片都很成熟,除了上述
的基础之外(对,是基础),你可以在多碰一些有线无线网络相关的软硬件知识以及openwrt
韧体的水是很深的,绝不是简单的事情.业界很多那种只会call api,填暂存器,遇到不会动
就傻在那边只会推给硬件工程师的人,我个人觉得是很丢脸的.如果能劝你,我还是觉得不
要进来这,薪水没有比较高,走纯软不必要会上面那么多,还不须要跟硬件工程师吵架.每月
五号口袋麦克麦克.
多好