Re: [請益] 韌體初學者- PTT看板soft_job - 乾飯人

文章推薦指數: 80 %
投票人數:10人

一張Uno(AVR)或是Due(ARM M3),加上電腦和一條USB線就可以開工了。

開發工具容易安裝, ... 一開始在c程式內夾組合語言會有點痛苦,語法不直覺,但網路上有不少範例。

作者Chienning(Chienning) 標題Re:[請益]韌體初學者 時間Mon,17Feb202004:42:48 人氣 推:6 噓:0 留言:6 更多Chienning文章 返回soft_job看板 看板列表 与Re:[請益]韌體初學者相关文章 资讯 soft_job Re:[請益]韌體初學者 其實從Arduino開始玩也有很多樂趣,初始成本也低(20€/35€)。

一張Uno(AVR)或是Due(ARMM3),加上電腦和一條USB線就可以開工了。

開發工具容易安裝,不需要什麼設定,ATMEL(處理器廠商)的文件也算齊全。

Arduino開發軟體內建的範例程式(如那個九九乘法表)簡單易了解。

在初期可以多花點時間在程式技巧上,不用煩心那些開機程序。

隨意寫寫小程式,也寫些電腦端的程式,透過USB序列埠讓電腦和Arduino互動。

(比如說寫個AES或是SHA,讓慢到不行的AVR把電腦傳過去的資料加密或算雜湊) 然後因為總總原因(處理器就是慢、c/c++編譯器很鳥),想把程式寫快一點, 這時可以去電腦的暫存目錄把執行檔elf找出來,反編譯成組合語言, 看看自己或編譯器做了什麼蠢事,能不能在c語言做些最佳化。

還是不夠快/小,就試試把程式的一小段改成in-lineasm。

一開始在c程式內夾組合語言會有點痛苦,語法不直覺,但網路上有不少範例。

然後就是越玩越大,變成整個程式只有頭尾是c,第三行開始就是組合語言, (nakedfunction)這時就要了解AVR或是ARM的函式呼叫規則(ABI)。

ps,Arduino的開發環境大概只能玩到這樣了。

然後有個分支任務。

Arduino內建了一些函式,控制處理器每根針角的輸出入。

透過那個函式,最基本就是能控制板子上的那個LED燈。

試著去了解那些程式怎麼寫的,印象七八年前的版本非常沒效率,又肥又慢。

試著用c語言,自己去填記憶體(SFR)控制那些針角。

順便讀一讀處理器的手冊。

玩到這邊,還是只需要電腦/USB/Arduino,可能加買幾棵LED。

之後還有興趣,可以考慮買條除錯線。

ATMEL的除錯線不貴, 但我印象開發環境是綁定visualstudio的介面,...orz... 有了除錯線就能單步執行、修改暫存器和記憶體內容... 不要太依賴除錯線,除錯線是用來對付硬體bug的,軟體bug請用自己的大腦;p ps,Arduino的開發環境的軟體,完全沒有除錯功能:) 到這邊就有最基本的能力,之後可以考慮升級玩有作業系統的平台。

或是像Zynq這類的FPGA,不過這又是另外一條很長的路了。

※引述《lihgong()》之銘言: :如果還在學校,就買以下東西開始玩,看看受不受得了 :1.STM32F103最小系統 :2.J-LinkEDU(到mouser買最便宜) :ps.或是買STM的Nucleo板,上面有MCU和開發工具(STLINK可刷J-Link) :正版開發工具,報價不到1000元更便宜 :這樣子一套可以在3000塊以內(更便宜當然有),試著讓板子上的LED一閃一閃亮晶晶 :當然,這裡不要用Arduino,用STM32CUBEMX產生開機程式,然後操作他的GPIO點亮LED :試著讀一下datasheet,追一下這段程式怎麼變成操作register,用用示波器,看看信號 :如果第一步三千塊花下去,覺得索然無味,那就這個領域你可能不適合而已 :附帶一提,示波器也不貴,淘寶一台4ch約莫台幣10000就有了 :接下來就看想玩點什麼,MCU外面的書很多,很容易找到有趣的題目 :有些經驗了,建議可以把作業系統掛上去,比如FreeRTOS,用起來又會是另一種感覺 :實際上路了,缺什麼再去學,其實走這行就是得不斷學習,天天都覺得自己什麼都不會 :※引述《SmallBeeWayn(喵喵叫的蜜蜂貓)》之銘言: ::※引述《t7365443(U彥)》之銘言: :::各位版友好 :::目前就讀國立科大碩(電機) :::大學是資工系的 :::本人一直想走韌體工程師這方面 :::但是實驗室又是做網路相關的 :::想找個網路設備的韌體的領域 :::想知道如果要走韌體這方面需要補足什麼地方 :::有什麼比較重要的地方可以自己自學或是去修大學部的課 :::大學是稍微有玩過arduino開發版 :::但尤其是硬體這方面(電子電路嵌入式系統等等)以前資工教的比較少 :::謝謝各位的意見 -- ※發信站:批踢踢實業坊(ptt.cc),來自:80.123.24.139(奧地利) ※文章網址:https://www.ptt.cc/bbs/Soft_Job/M.1581885770.A.85C.html 推onegoman:推。

02/1706:45 推jeff40108:真的推,對學校新手更友善02/1708:50 推single4565:推02/1708:57 推pseudoman:是說arduino做的東西要怎麼產品化呢?02/1709:15 推csfgsj:針對檳榔攤的閃爍燈泡,可以產品化。

算是最初級的產品吧02/1714:36 推aria0520:直接玩樹莓派吧02/1822:53 @2021(ganfanren.tw),AllRightsReserved



請為這篇文章評分?