Re: [請益] 非本科韌體技能樹該怎麼點
不知道你說的韌體是指什麼? 嵌入系有很多種:
* embedded linux
* 使用 rtos, 例如: freertos/vxworks
* bare metal 程式
* 手機
* 其他:
每種都有自己需要修練的功課, 但大概都脫離不了 c 語言,
大概除了 bare metal 都需要一些 os 相關知識,
雖然 OS 觀念大同小異, 但大同之中的小異就足夠讓人傷透腦筋。
細節很多, 提一些大方向。
embedded linux:
device driver
porting 到新 chip
user mode 應用程式
這 3 個各有其功課要修練, porting 到新 chip 大概是最難的,
一般人也比較沒有機會練習到, 大概連第0手資料也沒有。
device driver 由於和硬體有關, 會和硬體打交道, 需要使用
一些硬體相關工具, 示波器之類的。也要熟悉 linux device driver
架構。這個要練習比較麻煩, 書籍大概都過時, 需要自己看第0手資料,
也就是自己要看 device driver souce code, 然後看懂自己要怎麼寫
自己要 porting 的硬體。
user mode 應用程式有很多書籍可以學習, 要看懂他們並不容易,
需要花費不少時間。
尤其是 signal/fork/thread 議題都很難搞懂,
但這只是其中一部分而已。
rtos 則是看使用那一套, 就需要去學習其中的用法,
使用起來應該會和 linux 有點差異。
有 ice 會比較容易 debug, 一般大概也會需要用 ice。
bare metal 程式也是很難, 需要從開機程式開始撰寫,
如果 chip 廠商有給範例或是相關函釋庫, 也許會簡單一些。
但如果 c 基礎不夠, 可能有 bug 時, 不太容易找到問題。
會需要使用 ice 的經驗。
至於課本的演算法, 資料結構, 不能說不重要,
但可以從基本先熟悉, 不用著急學比較難的,
例如 queue, linked list, 基本 tree,
avl tree, rbtree 可以先緩點。
※ 引述《womandrift (瑪莉)》之銘言:
: 小魯本科學碩,在IC Design House寫過幾年FW
: 分享自己的經驗以及一點淺見
: 要進這行的順序:
: 1. C練熟,至少要有大一計概與程設課程等級
: 具體目標是用C寫出八皇后、河內塔...等經典問題
: 這個階段主要是讓你熟悉C語言
: 包括基本語法、編譯與執行的方式、如何Debug
: 還有最重要的: 撐過去並且願意繼續寫C
: 如果你遇到了一堆Segmentation Fault,或是各種Compile不過
: 上Stack Overflow也不見得可以在五分鐘之內就找到bug的解法
: 你依然願意繼續找下去依然不放棄這行
: 那你再往下看其他步驟,否則壓力只會更大
: 2. 修大學部的作業系統概論
: 目標就是跟著修完一學期的課就對了
: 無論是上開放式課程或是直接去學校旁聽都好
: 一定要跟著交作業/Project
: 如果跟著寫作業的話應該會更加熟悉C
: 以及遇到更多坑
: 我預期作業應該會讓你熟悉以下幾點操作
: a. 裝VM
: b. Linux File System
: c. Linux 內的基本Command,例如ls、cat、grep...
: d. 用gcc 寫/編譯 C code
: 所以要記得先完成第一點熟悉C到一定程度
: 否則這時候寫作業會有更多問題
: 更加複雜更不容易找到Solution
: 3. 修大學部的計算機架構/計算機結構 概論
: 課名上可能EE/CS 會有不同,但授課範圍都大同小異
: 目標一樣是修完大學Level一學期的課
: 一樣請跟著寫作業/Project
: 這堂課主要是對應到原Po提到的"硬體知識"
: 就是熟悉CPU的Cache、Write through/Write back、TLB...等等內容
: 我當年在修的時候有一部分會和OS的內容重疊
: 所以其實可以兩堂一起修,看你時間分配
: 另外這堂課作業也許會需要你寫Verilog
: 如果有遇到的話就跟著學,以後可以自己玩FPGA
: 4. 準備面試
: 網路上應該有相關的介紹
: 你在修完上述兩門課之後面試會問到的東西應該都看得懂了
: 或至少有基礎知識,要再繼續上Google查也會更有方向
: 我認為一般人要能面試進這行至少要完成上面4個步驟
: 當然如果你有任何特權 (身份/血統/...) 就可以無視
: 如果有錢有閒想再更進階的話可以再進修以下幾點
: 1. 嵌入式系統概論
: 我建議可以修個大學部的課
: 應該可以讓你compile kernel,熟悉一下kernel module、Makefile等等
: 當然你要自己買個板子來玩也是ok
: 反正就是熟悉以後的開發環境
: 2. Linux
: 就跟著鳥哥的課
: 有空就加減看一下練習練習
: 熟悉Linux環境跟Bash Script,以後上班會很好用
: 祝福原Po順利找到理想工作
: 我個人是不想繼續寫C 就是了XD
--
紙上得來終覺淺,絕知此事要躬行。
--
17
首Po背景:北科非電資大四,畢業後也是在北科讀碩非電資(不打算再重考),碩班未來是跟自 走車相關的,目標大概是遠離機構設備做韌體/嵌入式系統(不太確定這兩個的詳細差別 ),也不太清楚這個校名科系有沒有辦法 目前有修過資工系的資料結構了,不過是用python,現在在考量是該怎麼選擇 1. 接著繼續修演算法的課為主,碩班的課有餘力再修4
因為科系不合,那我建議投系統廠。 (而且不會是一線。) C語言花時間練熟。太新的C++不用練。 很多晶片停在C++03,就萬年不升級了。 那C++03到C++20中間變化多大。13
小魯本科學碩,在IC Design House寫過幾年FW 分享自己的經驗以及一點淺見 要進這行的順序: 1. C練熟,至少要有大一計概與程設課程等級 具體目標是用C寫出八皇后、河內塔...等經典問題9
不知道你說的韌體是指什麼? 嵌入系有很多種: * embedded linux * 使用 rtos, 例如: freertos/vxworks * bare metal 程式 * 手機9
這個玩具熟悉之後, 差不多該會的都用過了: Toolchain/Makefile/GDB/OpenOCD/DFU(Device Firmware Upgrade,USB)/RTOS 不買硬體也有 YT 影片可以看。也可以用 QEMU 來試用。 1.
爆
[心得]從系統廠BSP RD到豬屎屋Firmware engineer網誌好讀版: (with自製解說圖XD) 整理目前從系統廠擔任BSP RD轉職到IC design house擔任Firmware engineer 一年半以來的心得...30
[請益] Offer 請益 (原公司/群聯)小弟從去年底就有換環境的意願(外商or豬屎屋) 三年系統廠(工業控制)經驗,研究所系統晶片組 會verilog / embedded system design 有去面 GOOGLE新店的派遣職缺,不過被網友一致認為要多考慮 所以最後並沒有接受此職缺30
Re: [心得] 數位不就0與1怎麼可能(略先說我不是專業的 不過我會Google Google之後可以看到其實一個OS對音效都有相應的架構 Windows22
[請益] Linux device driver好不好自學上手?各位版友好 最近小弟有考上資工在職專班 有問到教授是做無線網路演算法 他說要熟linux device driver怎麼寫 但是無奈小弟是用python做儀控比較多13
[請益] 面試分享與請益代 PO, 目前面臨轉領域問題,以下是最近面試的過程與結果。 以下 N 為 gg未調薪前, (一) 海邊 FIT: 職務名稱:智慧音箱嵌入式 LINUX 工程師10
Re: [請益] 韌體初學者韌體工程師的工作內容其實範圍還滿大的 最小的4~7bit MCU,這種幾乎都用組語在寫 大概也不會有職缺純做這種MCU 一堆被ARM打趴的通用MCU,例如8051 PIC AVR MSP430 ..... 不是沒人在用,只是這些都會越用越少,也不推去學10
Re: [討論] EDA與軟韌體未來性哪個比較好呢?本ID搞Linux device driver 以前只搞周邊,現在努力轉型platform owner中 來說一下軟韌要k那些書 C語言要念到指標資料結構滾瓜爛熟 演算法倒是不用,基本的知道就好5
[請益] USB device開發請益最近因為想要弄一些東西,所以開始自修USB相關開發 因為自己對USB device / host / host driver幾乎是完全陌生, 所以想先跳過host driver的部分,之後再回來補QQ 目前想要完成的目標: 1. PC 跟device能夠透過USB交換資料,2
Re: [請益] 請問為什麼純軟比韌體好玩?推 flypaper: 我身邊純軟至上的人 大多對資料結構與演算法不熟悉 07/23 18:33 → flypaper: 又對CPU硬體架構與編譯器的行為沒有概念 07/23 18:33 → flypaper: 不過可能是樣本數大多位落在 網路前後端吧 07/23 18:35 阿肥我扯這些 只是曾經看到有些人只寫過應用層 卻說軔體很無聊 工作盡是查spec1
[請益] 職能發展方向請教小弟EE master畢業,JAVA會寫,第一份工作從C++上位機(PC程式)開始開發,對C++/OO P還算熟悉 ;(但C++實在太深了,也只學到C++03) 後來在工廠玩了一點adaptive control和多變量分析,接著又回來碰mcu,因爲有電子學 背景,還算能上手單晶片開發和週邊電路的除錯,對韌體算是有興趣,也會往更深入的編