Re: [請益] 韌體初學者
其實從Arduino開始玩也有很多樂趣,初始成本也低 (20€/35€)。
一張Uno(AVR)或是Due(ARM M3),加上電腦和一條USB線就可以開工了。
開發工具容易安裝,不需要什麼設定,ATMEL (處理器廠商)的文件也算齊全。
Arduino開發軟體內建的範例程式 (如那個九九乘法表) 簡單易了解。
在初期可以多花點時間在程式技巧上,不用煩心那些開機程序。
隨意寫寫小程式,也寫些電腦端的程式,透過USB 序列埠讓電腦和Arduino互動。
(比如說寫個AES或是SHA,讓慢到不行的AVR把電腦傳過去的資料加密或算雜湊)
然後因為總總原因 (處理器就是慢、c/c++編譯器很鳥),想把程式寫快一點,
這時可以去電腦的暫存目錄把執行檔elf找出來,反編譯成組合語言,
看看自己或編譯器做了什麼蠢事,能不能在c語言做些最佳化。
還是不夠快/小,就試試把程式的一小段改成in-line asm。
一開始在c程式內夾組合語言會有點痛苦,語法不直覺,但網路上有不少範例。
然後就是越玩越大,變成整個程式只有頭尾是c,第三行開始就是組合語言,
(naked function) 這時就要了解AVR或是ARM的函式呼叫規則 (ABI)。
ps, Arduino的開發環境大概只能玩到這樣了。
然後有個分支任務。Arduino內建了一些函式,控制處理器每根針角的輸出入。
透過那個函式,最基本就是能控制板子上的那個LED燈。
試著去了解那些程式怎麼寫的,印象七八年前的版本非常沒效率,又肥又慢。
試著用c語言,自己去填記憶體 (SFR) 控制那些針角。順便讀一讀處理器的手冊。
玩到這邊,還是只需要電腦/USB/Arduino,可能加買幾棵LED。
之後還有興趣,可以考慮買條除錯線。ATMEL的除錯線不貴,
但我印象開發環境是綁定visual studio的介面,... orz ...
有了除錯線就能單步執行、修改暫存器和記憶體內容 ...
不要太依賴除錯線,除錯線是用來對付硬體bug的,軟體bug請用自己的大腦 ;p
ps, Arduino的開發環境的軟體,完全沒有除錯功能 :)
到這邊就有最基本的能力,之後可以考慮升級玩有作業系統的平台。
或是像Zynq這類的FPGA,不過這又是另外一條很長的路了。
※ 引述《lihgong ( )》之銘言:
: 如果還在學校,就買以下東西開始玩,看看受不受得了
: 1. STM32F103最小系統
: 2. J-Link EDU(到mouser買最便宜)
: ps. 或是買STM的Nucleo板,上面有MCU和開發工具(STLINK可刷J-Link)
: 正版開發工具,報價不到1000元更便宜
: 這樣子一套可以在3000塊以內(更便宜當然有),試著讓板子上的LED一閃一閃亮晶晶: 當然,這裡不要用Arduino,用STM32CUBE MX產生開機程式,然後操作他的GPIO點亮LED: 試著讀一下data sheet,追一下這段程式怎麼變成操作register,用用示波器,看看信號: 如果第一步三千塊花下去,覺得索然無味,那就這個領域你可能不適合而已
: 附帶一提,示波器也不貴,淘寶一台4ch約莫台幣10000就有了
: 接下來就看想玩點什麼,MCU外面的書很多,很容易找到有趣的題目
: 有些經驗了,建議可以把作業系統掛上去,比如FreeRTOS,用起來又會是另一種感覺
: 實際上路了,缺什麼再去學,其實走這行就是得不斷學習,天天都覺得自己什麼都不會: ※ 引述《SmallBeeWayn (喵喵叫的蜜蜂貓)》之銘言:
: : ※ 引述《t7365443 (U彥)》之銘言:
: : : 各位版友好
: : : 目前就讀國立科大碩(電機)
: : : 大學是資工系的
: : : 本人一直想走韌體工程師這方面
: : : 但是實驗室又是做網路相關的
: : : 想找個網路設備的韌體的領域
: : : 想知道如果要走韌體這方面需要補足什麼地方
: : : 有什麼比較重要的地方 可以自己自學或是去修大學部的課
: : : 大學是稍微有玩過arduino開發版
: : : 但尤其是硬體這方面 (電子 電路 嵌入式系統等等)以前資工教的比較少
: : : 謝謝各位的意見
--
推。
真的推,對學校新手更友善
推
是說arduino做的東西 要怎麼產品化呢?
針對檳榔攤的閃爍燈泡,可以產品化。算是最初級的產品吧
直接玩樹莓派吧
10
韌體工程師的工作內容其實範圍還滿大的 最小的4~7bit MCU,這種幾乎都用組語在寫 大概也不會有職缺純做這種MCU 一堆被ARM打趴的通用MCU,例如8051 PIC AVR MSP430 ..... 不是沒人在用,只是這些都會越用越少,也不推去學2
如果還在學校,就買以下東西開始玩,看看受不受得了 1. STM32F103最小系統 2. J-Link EDU(到mouser買最便宜) ps. 或是買STM的Nucleo板,上面有MCU和開發工具(STLINK可刷J-Link) 正版開發工具,報價不到1000元更便宜16
身為一個在韌體&embedded system 工作了快20年的老屁孩來跟你說(我很廢,bug製造機, 只剩年資可以說嘴). 想走韌體,基本的電子電機知識是一定要具備的. 最基礎的電子學,電路學,數位邏輯,基本電學,非常重要,要會.基本的晶片通訊方式, 例如gpio, i2c, SPI,要會,電磁學,線路設計,pcb layout,會的話更好但不是必須.20
首Po各位版友好 目前就讀國立科大碩(電機) 大學是資工系的 本人一直想走韌體工程師這方面 但是實驗室又是做網路相關的
21
Re: [討論] 怎樣算是一個合格的junior cpp programmeSTL 之外 boost () 也要會用一點, 有餘裕的話這兩個也稍微看一下: 如果確定公司偏好用哪一套的話可以指向性學習。18
Re: [討論] 看過最浮誇的書名是什麼?我自己最早注意到電腦書名浮誇的出版社,大概是從上奇資訊代理簡體書開始 範例:簡體書原名『CDN技術詳解』 上奇翻成繁體出版就改叫『讓使用者永續飆網:CDN全球快取系統詳解』14
[討論] COBOL for Linux on x86IBM推COBOL上雲端 擁有50年歷史的程式語言COBOL,IBM現在推出可在x86 Linux環境運作的COBOL版本,使得 COBOL應用程式也能雲端化 文/李建興 | 2021-04-09發表 IBM發布了可在x86的Linux環境運作的COBOL(COBOL for Linux on x86)版本,其包含10
[請益] 圖像式語言在軟體版問了,但似乎怕不會有答案,所以來這裡問專業的各位大大 目前看到圖像式開發的產品 Inventor APP 類似物件式導向的產品 APP INVENTOR 是開發給小朋友來學寫APP的 工作上用到的原生語言是 JAVA,但是我目前想問的是 嵌入式系統一般都用C語言+樹梅派10
[請益] 硬體工程師想自學韌體各位好,目前我在科技業擔任硬體工程師 先介紹一下我自己,從碩士開始主要都是走純硬體為主,硬要講有碰過韌體就是arduino, 做一些簡單的周邊硬體功能確定。 寫程式語言C已經是大學的事情了。 最近想自己進修學學韌體,爲自己提升一下能力,但是有點不太知道如何下手。9
Re: [器材] 使用Arduino製作烘豆機控制盒-Part5 Arduino接線一開始是選用UNO開發版,但是把幾個小程式整合起來後,記憶體容量就爆炸了,所以後 來改用MEGA2560 PRO開發版,但是MEGA在使用時會有一些小BUG,下一篇會提到。 Pin腳定義要先拉出來,這部分要跟程式互相配合 腳位的定義、說明就要上網找Datasheet9
Re: [請益] 非本科韌體技能樹該怎麼點不知道你說的韌體是指什麼? 嵌入系有很多種: * embedded linux * 使用 rtos, 例如: freertos/vxworks * bare metal 程式 * 手機7
[心得] ChatGPT協助軟體開發的指令集近來寫程式時大量試用ChatGPT 剛好使用golang開發side project, 所以在各種情況下遇到的問題,都試著問ChatGPT 真的覺得超好用的! 網頁好讀版:附上心智圖、完整範例(有些範例太長,PPT沒有辦法完整呈現)3
Re: [問卦] C++可以啟發孩子的程式天份嗎?別說M$了,你有聽過ASM(組合語言)嗎? 小到手錶、計數器、計算機,大到太空梭、火箭、太空站都能用,沒有被淘汰的問題。 可以自己寫直譯器、編譯器、函式庫、驅動程式,連作業系統都能自己寫,學成之後有如 學會吸星大法,天下無敵。 不管是什麼CPU/韌體、作業系統、程式語言都能尬!當然也能尬翻電腦病毒/木馬程式。1
[問卦] 唸土木的正妹會arduino會太天才ㄇ如題,我這個念土木系的正妹。 如果不僅會寫程式,會寫C語言 而且還會組合語言。 而且還會像arduino那一些小小的主機板ic。 做各種事情。