總網頁瀏覽量

顯示具有 C語言 標籤的文章。 顯示所有文章
顯示具有 C語言 標籤的文章。 顯示所有文章

2026年4月2日 星期四

【ARM Cortex-M MCU 嵌入式系統開發實戰研習:從電路到韌體開發】課程大綱

 


課程大綱(講師將按照該梯次學員之整體背景、學習狀況與時間狀況而彈性調整增減該內容及順序):


1. STM32 MCU架構與系統介紹

   - 基於ARM Cortex-Mx的MCU與其它經典系列MCU(如8051)之差異與共同處(紮實架構之學理)

   - 嵌入式系統之必要觀念強調

   - 產業公司概況與相關工程師職缺介紹

   - 在台灣常見的集體錯誤迷思觀念之闢除講解


2. 開發環境建置

   - 韌體開發環境軟體KEILC IDE介紹、安裝與基本操作

   - 其它相關IDE簡介(STM32CubeIDE與IAR)

   - 實驗用開發板之硬體架構、電子元件、電路圖


3. 記憶體系統、記憶體與周邊裝置暫存器之映射觀念(Memory map)

   - MMIO、Port-Map IO原理

   - 各種記憶體簡介

   - 函數與中斷與堆疊(Stack)的關係、CPU為何使用堆疊方式存取返回位址? 以及與序列(Queue)之差異等

   - MCU韌體常用之C語言重要觀念複習(指標、陣列、結構、結構指標、列舉等)、與記憶體及周邊裝置之實際關係

   - 暫存器功能與位址查找(MCU晶片IC原廠之技術手冊內容導讀)

   - 對應之範例程式碼追蹤導讀


4. 電腦晶片(MCU/SoC)與外部電子電路

   - 電路基礎電子元件

   - 基礎直流迴路觀念

   - 電路圖(Schematic)之閱讀

   - 開發板之重點電子電路設計原理及訊號量測實驗(如按鈕輸入訊號電路、reset之RC電路直流暫態等)

   - STM32 MCU IC之 Datasheet、Manual之導讀

   - 電氣特性(Electrical characteristics)

   - CMOS/TTL觀念、MOSFET/BJT電晶體

   - 基礎電路焊接/烙鐵與銲錫之使用


5. GPIO基本輸入與輸出

   - 常見之MCU/SoC GPIO內部架構電路設計原理分析

   - Push pull、open drain架構

   - Pin mux觀念

   - 架構觀念(與CPU關係為何?與code的實際關係為何?)

   - Pull up/pull down

   - 周邊裝置之輪詢(Polling)與中斷(Interrupt)觀念講解

   - STM32 HAL API 原始碼追蹤導讀

   - 輪詢與中斷範例實作


6. 中斷(Interrupt)機制(包含EXTI與NVIC)

   - ARM Cortex-M NVIC中斷向量表格

   - ARM Cortex-M NVIC之優化機制原理講解(Tail-Chaining與Late-arriving)、與傳統CPU之做法比較

   - 中斷優先權觀念


7. UART串列傳輸

   - 串列傳輸介面簡介(同步/非同步、全雙工/半雙工等觀念)

   - 資料傳收封包協定

   - 常見參數意義

   - RS232/RS485硬體原理、差異、電氣位準

   - UART to USB晶片模組、VCP

   - 輪詢與中斷範例實作

   - 資料串列傳收實戰小專案(講師當場指定與指導)


8. ADC類比轉數位轉換器

   - 類比與數位訊號觀念

   - 解析度、步階電壓觀念

   - 類比訊號輸入相關電路

   - 輪詢與中斷範例實作(搭配亮度感測器)

   - 亮度感測暨GPIO控制實戰小專案(講師當場指定與指導)


9. Timer計時/計數器

   - 系統時脈與計時頻率

   - STM32 MCU Timer時序說明

   - STM32 MCU Timer之active/shadow/buffer register機制說明

   - 輪詢與中斷範例實作

   - 計時暨GPIO控制實戰小專案(講師當場指定與指導)


10. I2C串列傳輸

   - 串列傳輸介面觀念複習(同步/非同步、全雙工/半雙工等觀念)

   - 資料傳收協定/訊號時序

   - 常見參數意義

   - open drain與pull up電路觀念

   - 輪詢與中斷範例實作(搭配IMU慣性感測晶片模組)

   - 資料串列傳收實戰小專案(講師當場指定與指導)


11. SPI 串列傳輸

   - 串列傳輸介面觀念複習(同步/非同步、全雙工/半雙工等觀念)

   - 資料傳收協定/訊號時序

   - 常見參數意義(如CPOL、CPHA)

   - 輪詢與中斷範例實作(搭配IMU慣性感測晶片模組)

   - 資料串列傳收實戰小專案(講師當場指定與指導)


12. Watchdog計時器

   - 觀念與應用情境介紹

   - 計時頻率觀念複習與參數設定

   - 範例實作


13. DMA(直接記憶體存取控制器)

   - 觀念與應用情境介紹

   - 周邊裝置與記憶體資料搬移實戰小專案(講師當場指定與指導)


14. 訊號量測儀器操作

   - 三用電表

   - 示波器

   - 邏輯分析儀


15. 韌體程式Debug除錯工具操作與基本技巧

   - In-circuit debugger(以St-link為例)介紹

   - 線上除錯觀念與操作基礎

   - 不依賴ICD之除錯技巧 


16. OS觀念簡介

   - OS與non-OS之差異、用途等(闢除迷思)

   - 大型OS(如Linux)與相關硬體平台簡介

   - RTOS觀念簡介(講師將按照該梯次學員整體學習狀況與時間狀況決定是否示範實作範例)



-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2025年12月12日 星期五

指導教授儀器、軟體都不懂…研究生吐槽只會文書處理 新聞討論(三)

 



有成大研究生在dcard分享一些實況(如圖)。

在台灣,有不少人認為要繳學費的研究生們對於專業領域的學習應該靠自學。而如果領有納稅錢的名校大學「指導教授」什麼專業基礎都不太會,只出張嘴去奴役學生,則好像是應該的、合理的。

其實,教授也只是比較資深、已畢業的研究生。所以變得比較資深之後,專業基礎都不會/不想學,一切就變得合理了?堪稱學者?

(不要無知以為能畢業且拿到大學教職的人就一定懂專業基礎。能否畢業及拿到教職,經常是相當人治/人為的因素決定,例如掛名論文及利益關係等)

華人地區(或許較嚴重)的現象之一,就是人們對於享受越多資源與權力的族群的要求越低。難怪古代會出現一堆廢物皇帝整天只知享樂。群眾們的無腦權力崇拜和幻想只會搞爛群體/社會。對應到現代則是常見到無能的主管/官員/沒能力及意願指導專業卻壓榨學生的指導教授。

.

真正的嵌入式系統軟韌硬體研發/求職/跨領域轉職/職涯分析 課程:https://iws6645.pixnet.net/blog/posts/17326851771

粉專:阿良的嵌入式系統技術學習區 

講師學經歷:https://sites.google.com/view/wenliangsun/



指導教授儀器、軟體都不懂…研究生吐槽只會文書處理 新聞討論(二)

指導教授儀器、軟體都不懂…研究生吐槽只會文書處理 新聞討論(一)


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2025年12月10日 星期三

指導教授儀器、軟體都不懂…研究生吐槽只會文書處理 新聞討論(二)

 

看到新聞/成大學生的DCARD文章有感。台灣人普遍迷信學歷,認為學歷代表能力。我說個真實案例,我實際指導他們的得獎紀錄獎狀都還在網路上。

有個小我多屆的學弟,他高中讀新北的私立高職,他的高職時期因為在私立高職大多數時間被放在考證照 (做法不像公立高職都還是會教很多紮實的理論基礎,甚至我覺得公立高職教太多,我輔導過的成大教授是早期成大及台大電機學士到博士畢業,他們後來走計算機/資訊工程方向,加上當教授根本完全出張嘴只叫學生做,所以他們大學時期修過許多電學必修課,但他們幾乎當教授後完全不熟那些我在公立高職學過的電學基礎)。

這位學弟透過技優保送(非統測分發)錄取國立高海科大讀大學。在我任職聯發科技(晨星半導體)的後期主動聯絡我。他在大學專題表現積極,他花很多時間去補足因為過去只專注於考證照而忽略的基礎,於是我大力推薦給我熟識的 成大教授。

(碩/博士班的推甄制度應該有二十年了,其實就是教授們覺得想要錄取誰,誰就會被錄取,想挑誰就挑誰。他在國立高海科大大學時期的修課成績只有20名左右,按照他原本的大學成績和狀況是不可能錄取成大,他連中正大學資工所的碩士班推甄都沒辦法進入面試。)

因我的推薦(包含寫碩班推甄推薦信),他順利正取 成大碩士班(一般生)之後,後來他發現他實際接觸到的名校教授們大多根本不懂專業基礎 (雖有教授頭銜及名校博士學歷)。這情況導致:

- 原本他在大學時期,可較自由的將專案研發做到90分 (大學時期較沒有那種教授可掌控學生能否畢業的狀況)。

- 結果,他讀成大碩士班後,因為教授較不了解專業,且堅持要他用一些不客觀的做法去做專案。他為了能夠畢業,只好妥協於教授的外行認知,去用較不合理的方式去進行,所以他反而只能做到70分(甚至更低)。

過程中他也曾和教授有些爭執 (畢竟有實際開發設計經驗的人,和長期只用旁觀的方式去觀看專案結果的另一個人,兩者之間的認知程度會差很多),因此而極度精神難受到會想嘔吐。

他在大學/碩士班時期,都基於自學 及 我教他的內容,才能做這些專案。

而他在碩士班畢業後,去應徵業界工程師的工作時,業界公司又質疑他為何要用較外行的作法去做碩士論文內容  (因為就是外行教授所要的外行方法,然而,硬要看那張由這些外行教授所發出來的名校碩士學歷文憑/畢業證書,也是這些公司所要的。形成強烈矛盾,說個白的,這豈不就是台灣的公司自找的嗎)。

這就是台灣產業界公司、台灣社會所迷信的東西,盲目相信擁有多數人認為好看的學歷就是人才,然後再來抱怨為何員工的能力不行。

他的教授人好 (我認為在台灣學界是少數),但其專業基礎認知確實不足,肇因於一路從早期讀名校大學到博士畢業當專任教授,鮮少有親手從事過工程開發設計的機會,其實本來就有許多專業領域的基礎是不足的,但完全沒機會去補足,而當教授之後更加只是叫學生去做/旁觀學生做專案的結果,沒實際深度參與專案內容研發過程,加上長期受到同事教授們的務虛外行影響,習慣只出嘴(太多人會有這狀況),也有面子問題(畢竟可是名校大教授),種種因素導致這些狀況,而這些絕非是這位教授的問題,而是在全台灣的大學內普遍發生的狀況,國立大學、名校大學尤其嚴重。

台灣社會長年集體盲目迷信名校學歷,卻看輕真正對社會有貢獻的專業知能,簡直如同一種邪教文化一般。


附上另一個實例: 台大超大咖教授(號稱研究 嵌入式系統),卻不太知道C語言實況的實例(其實簡單搜尋不用一分鐘即可得知實況)。名校真的是台灣多數人所想?

https://www.facebook.com/sun.wen.liang.580515/posts/6347724395303619



指導教授儀器、軟體都不懂…研究生吐槽只會文書處理 新聞討論(一)


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2025年12月6日 星期六

為何學習專業技術 比 盲目追求學歷 還重要?近期來找我上課(嵌入式系統/韌體研發)的工程師學員,是什麼學經歷背景?

 


近期,因為對產業界研發工程師們的線上一對一顧問諮詢授課及團體授課時數太多,導致耽擱到其它想來找我學習的人士。

像是有位 台大物理博士(他的碩士及博士階段,皆畢業於 台大物理系研究所),目前任職於科技業外商公司(美商 科磊)擔任 應用工程師。大約在兩週前,他寫信及再度私訊我(前陣子他已曾來訊詢問過),表示他想來學習電腦系統/嵌入式系統技術,但一直被我耽擱(不好意思,我會儘快約時間授課)。



題外話,這次的團體課程有位 外國人士(他是 西班牙-馬德里人,在台灣擔任研發工程師),是繼我在廣達電腦 的 美國 田納西州廠 的 工程師學員 之後的 第二位國際(現職皆為工程師)學員。他曾經任職於世界知名網路設備大廠 Cisco systems(思科系統),他表示一直很想學習這些內容,在上課時的表現相當優秀。




從今年4月開始,我在台北開授的的嵌入式系統軟韌硬體研發技術團體課程已有6個梯次,學員們大多都是任職於科技產業界的專職工程師,他們真的都相當優秀積極,願意犧牲假日的休息時間來精進自己的專業能力,實屬不易。




-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2025年9月8日 星期一

從學員案例談:缺乏原理,實作就淪為照步驟操作——理解原理,才能真正進入研發


將近4年前,有一位畢業於 中央大學 機械工程學系的學員因為想要從業務工作轉職為軟韌體工程師而來找我上課。而在當時,我通常習慣先講完 電腦(計算機)系統/嵌入式系統 的 平台/架構/原理/名詞定義,以及在台灣產業界的常見工程師職缺類型,然後再教導學員實作練習,去驗證及吸收前面所講的原理。


但他當時對於上述這些原理的講解內容感到枯燥,似乎覺得聽不太下去,所以他在課程過程中有反映想要直接學習實作實驗內容。而我也順了他的意願,馬上調整了課程內容的順序,先直接教他實作。但是在實作內容的教學過程中,當我問他是否了解那些範例韌體程式碼的意思和細節(需了解系統動作流程、架構)的時候,他卻答不上來,而他在不了解原理的情況下,又實在無法獨立舉一反三去獨立完成稍微更改目標的實作練習,這時明顯發現他缺乏和需要的正是前述的那些原理基礎。


缺乏原理(基礎理論觀念)的實作學習的意義對於這個方向來說並不大,只是在按照步驟去做,但並不知道自己到底在做什麼、其脈絡和邏輯是什麼,缺乏基礎的支撐,這樣的學習方式無法讓自己有能力去從事產品研發/開發。


(注意,這裡所謂的「原理」,並不是大多數學校內照本宣科的課程內容。以工程這種屬於應用科學的方向來說,原理必須真正符合實際狀況的理論才叫作「原理」。而照本宣科並不是「原理」、並不是「理論」,不懂原理的教師才會照本宣科,更遑論有能力去做真正的學術「研究」。此外,原理也並不是公式,並不是看到數學或物理公式就代表一定有在學習原理,也不是沒有公式就代表不是在學習原理。這就如許多在論文內瞎扯或為了「好看」而硬要去套用別人發明的演算法數學公式其實等同所謂的垃圾論文一樣。)


我的課程通常非常著重符合實際狀況的原理(理論基礎),且能指導學生以後面的實作實驗驗證內容來驗證這些原理,如此才是完整的學習。


無論學員本身是出身於 普通大學 或者 技職教育體系,都和是否比較「願意」去 學習原理(理論基礎)無關。並不是小時候比較願意去應付/應對台灣傳統教育體制內的考試的人,就代表會願意去花心力和時間理解專業學問之中的「原理」、「理論基礎」,這其實和個人的性格與認知判斷比較有關。


題外話:並不是發表一堆學術界的論文,就代表自己擅長於作研究,也不能代表自己熟悉「理論基礎」。按照學術界本身的知名權威頂級期刊Nature的論文研究證實,大學/學術界的垃圾論文和研究數據成果造假的學術論文實在是太多了,且越來越多。


台灣社會有著許多對於 學習、學歷、校名、論文、理論和實務/實作等方面的誤解、迷信及其所造成的以訛傳訛、人云亦云。



-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

感謝任職於 IC設計公司 慧榮科技 的 主任工程師 積極來找我進行私人一對一嵌入式系統軟韌硬體基礎學習

 


任職於 世界頂尖NAND flash memory controller IC設計公司 慧榮科技 的 韌體程式研發 主任工程師 學員 (跟我同屆,過去他是讀淡江大學的大學&碩士班畢業,他也曾經長期任職於 廣達電腦 擔任軟體工程師) ,

他在昨天白天上完我的 嵌入式Linux系統建置(包含Linux驅動程式基礎)的 團體課程 後,今天上午馬上又繼續跟我上私人一對一授課(之前有好幾次也都是如此),內容為 MCU(微控制器/單晶片微電腦) 韌體研發相關的嵌入式系統軟韌硬體基礎。 

實在是相當的務實且積極。



今天課程內容提到 透過 ISP (In System Programming) 對MCU內的SPI flash (program memory) 軟韌體燒錄環境/電路相關原理與實作 (以Atmel/Microchip 8051 ISP MCU: AT89S51/AT89S52 作為原理學習與實驗之硬體平台)

以Keil IDE的模擬除錯模式對GPIO作GPO(General Purpose Output)應用的驅動的範例的C語言程式進行反組譯(disassembly)來對8051 MCU內的CPU內的核心暫存器 (PC、SP、PSW、ACC...) 等相關原理作說明 (注意: 其中有許多設計原理基礎觀念,在其它的CPU系列架構上是共通的),指令集機械碼(數位訊號0與1的邏輯電壓的組合)對應的符號(組合語言/assembly language),





此外,針對許多 軟韌體程式研發工程師 在 工作研發過程 會使用到的透過Debugger對MCU/SoC進行的online debug的功能背後的原理,也以ARM Cortex-M0+/M4官方架構圖、AT89S51 MCU內部block diagram形式的架構圖來進行說明,並提到了大約10幾年前較常見的除錯介面 JTAG (Joint Test Action Group) 及 近年來較普遍的 SWD (Serial Wire Debug) 介面的差異。




 

最後以 Intel MCS-51指令集 組合語言 的範例程式所組譯出來的hex檔,透過Atmel設計規格的USB ISP模組 (可對AT89S51/52等款式進行軟韌體燒錄、可對ATMEGA328及其它相關款式MCU進行燒錄及除錯) 燒錄,燒錄進AT89S52平台並透過學員手上自購的KT89S51開發板(dev. board)進行ISP燒錄實驗驗證,並再次搭配該開發板之電路圖對此次的驗證情境進行軟韌體及電子電路/元件的整合設計原理上的確認。





-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章



2025年8月26日 星期二

台科大機械工程系學員 跨領域學習 韌體工程師所需的 嵌入式Linux系統建置 團體課程 專業

 



台科大機械工程系碩士班(一般生)畢業,目前在產業界擔任韌體工程師的學員(目前正在我開的團體課程學 嵌入式Linux系統建置)

----------

近期我在台北 自強基金會 開的 團體課:

1. [台北假日班]【適合非電機電子科系背景學員的電子電路入門】使用Tinkercad平台學習電子電路原理與實作

https://iws6645.pixnet.net/blog/post/347570356

2. [台北班]ARM Cortex-M based MCU嵌入式單晶片微控制器韌體開發(基礎)(自備NB)

https://edu.tcfst.org.tw/web/tw/class/show.asp?tcfst=yes&courseidori=14C066&fbclid=IwY2xjawMaOn5leHRuA2FlbQIxMABicmlkETF1VkszbjV4bVlwZWhwaFM5AR54cO77f0vpcPGkVxXXfJZQr3nNPIwgbYcNXRmyD1zyy0Kf9HKIyPuJFS19PQ_aem_zUcXH3T5HMFxf9iKs-bC3w

(這門有可能會延期到9月13開課,因前面有課程)


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


近期已對 設計大廠 聯詠(Novatek)公司 進行專業領域內容的廠訓授課完成


近期已對 顯示器驅動 IC(Display Driver IC, DDIC) 市佔率 全世界第一 以及 數位電視SoC等 IC 的 設計大廠 聯詠(Novatek)公司 進行專業領域內容的廠訓授課完成。



資料來源:

https://zh.m.wikipedia.org/zh-tw/%E8%81%AF%E8%A9%A0%E7%A7%91%E6%8A%80?fbclid=IwY2xjawMaMnFleHRuA2FlbQIxMQABHsiHkKaoAWldr4AHXkAAaMd_98yOFrpvFR7HKztM1dMTmeCtm6nBLc5prR6H_aem_xm8nosiMmgpvddoL1z-JFw

-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2025年7月8日 星期二

(7/12本周六開課 最後3個名額) 自強基金會(台北分會) 加開班[台北班] ARM Cortex-A based 平台之嵌入式Linux作業系統基礎建置實作 (附贈可跑Linux的嵌入式系統開發板 及 相關材料,課程現場實作)(自備NB) 如期開班

 

(最後3個名額) 自強基金會(台北分會)  加開班[台北班]  ARM Cortex-A based 平台之嵌入式Linux作業系統基礎建置實作 (附贈可跑Linux的嵌入式系統開發板 及 相關材料,課程現場實作)(自備NB)  如期開班 

報名連結 : https://edu.tcfst.org.tw/web/tw/class/show.asp?tcfst=yes&courseidori=14C065&fbclid=IwY2xjawLZaSVleHRuA2FlbQIxMABicmlkETFkMEFZb3VFYk81QnZZTHFrAR7tos6xwsLxux7ZfpjOhZH4Rj17zfL0wNqK9_MgSaBu0Kivx0cUXmo6aKkWAA_aem_nuZimA1fP_DQvjMfGE-GNA

因為有3位學員因臨時有事無法全程參與課程(想改成其他梯次上課),所以目前這梯課程目前有3位空缺,請有興趣或者原本是候補備取的學員,若想早些上課,可考慮報名這個梯次喔~ (7/12也就是本周六開始上課,上午9:00~下午16:00,中午1小時午餐休息)。 

每梯次課程的學員人數會有所限制  (因兼顧課程品質,所以會限制每梯次上課人數,學員當場聽我講解完原理及實驗步驟講解之後,馬上當場進行實作實驗操作,我會當場協助解決每位學員實際遇到的問題,所以要花時間,故限制每梯次人數)

課程內容大綱 (包含Linux GPIO驅動程式demo影片) 如下方連結所示:

https://www.facebook.com/sun.wen.liang.580515/posts/pfbid0kaH649i56VadgQqHw1dWoPKya8MRP1eYQNWioFwApHvLd2TGHbj6Kgu8CsaxFJ5Bl?__cft__[0]=AZWfbGKL6LYtzDTu088827Ns3WLAtCWDx5rl1dckyiGuqATaqJz34KTxUib9rocJOrGQGytMGBFXAKc_RifouHIzMuOdSnQrQiKQNVyo693AfWfLvurFGMHsYEEGW4dGnOOn6TJbTG6FcOpkqayeWvbXyW3F430sayWxft9h1qT1Mg&__tn__=%2CO%2CP-R

從GNU ARM Linux Cross compilation toolchain(GNU ARM Linux編譯工具鏈 arm-linux-gnueabi- )、samba server等基礎開發環境建置、及於Host PC Linux distribution(Ubuntu)之上建置 for ARM cortex-A based SoC為核心單元之嵌入式系統開發板(Embedded system dev. board )之 開機啟動程式 Bootloader (U-Boot)、Linux kernel(Linux作業系統核心) 及 根目錄檔案系統 Root filesystem (Busybox)、U-Boot階段Tftp upload kernel image(from PC to the dev. board)等,並於嵌入式系統開發板實際執行驗證之後,接續的課程單元為Linux核心驅動程式的基礎。

Linux核心驅動程式課程基礎課程內容包含Beaglebone black Rev C.的BJT作為開關的電子電路原理、AM3358 SoC(系統晶片)內的 GPIO registers (clock、pinmux、output enable 、clear data及set data等暫存器)、Linux kernel module(driver program/.ko file)撰寫(包含各式基本的系統呼叫System Call、file operation struct、copy_from_user/copy_to_user、裝置註冊相關的Kernel API等等)、及上層應用程式等觀念與實際範例皆逐一介紹,從硬體(電子電路、系統晶片架構、GPIO周邊裝置驅動)到 系統軟/韌體程式開發 皆完整涵蓋(原理與實作實驗)。

#Linux裝置驅動程式

#嵌入式Linux系統

#Linux_kernel_driver

#Linux_kernel_module

#Linux

#Embedded_Linux

#Device_driver

#ARM_CortexA_based_SoC

#TI_AM3358_SoC

--------------------

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2024年9月26日 星期四

用ARM based的MCU或SoC晶片平台,並不代表就是在學ARM


在台灣,許多人用了ARM based的MCU/SoC為主晶片的板子,就以為自己在學ARM,其實一輩子都完全沒真正接觸過ARM processor的內容,所以可見很多人其實根本不曉得自己口中的ARM到底是是指什麼/講什麼,也沒有很清楚自己做了一堆周邊應用但到底在實作什麼挖糕,其理論基礎對應的學科我想應該是計算機概論。


十幾二十年下來,這早已經變成嚴重的以訛傳訛。這類似的觀念在台灣真的很多。

另一個例子,有不少人以為學80x86原理沒意義,但其實Intel 在2016年所推出的Inte lQuark系列微控制器(MCU) D2000就是基於1993年推出的Pentium CPU。平台和技術年份根本不是重點,哪時會被拿來套在新平台或衍伸出新技術都不一定。用什麼款式的平台去學基礎其實不是該執著的點,只要適合學習即可。


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章



本園區之嵌入式系統基礎技術課程的導向,偏重產業開發所需的基礎,而非讓初學者看到花俏功能為目的

多年來對於嵌入式系統領域的開發與教學經驗讓我感受到,多數產業公司找工程師來開發產品的功能目標是應用,但是開發技術的訓練/基礎奠定的過程,絕對不適合是應用導向 (例如單純call API/現成函數而沒有深入了解其原理細節),不能只是用現成的模組和函數去湊出功能,起碼要了解最基本的基礎觀念與系統架構。以背後設計原理為主,不以主打看到花俏功能為目標,所以我的教學基本上不會強調及主打主流媒體喜歡提及的AI、IoT及應用功能,而是著重在軟韌體開發的細節(如C語言的語法細節原理、軟硬體系統架構),主要希望栽培開發所需要的基礎。

因為在真實去產業界做真實的產品開發階段(嵌入式系統軟韌體/軟硬體整合),不太可能都只純粹依靠那些高度現成的開發板及太過上層的API做應用(即便是使用API也常要懂其背後原理,也可能是要從更底層去做開發),因為實際做產品開發和純創意maker角度需求、所需的背景基礎程度大多是不同的。

在訓練課程中,一旦主打應用功能或者花俏的趨勢 (AI或IoT應用功能之類的),就容易掩蓋掉基礎,而讓初學者誤以為自己會了,但其實只是綁在某塊開發板及其現成的範例程式或函數(常見的例子就是使用標準Arduino API函數所集成的範例程式去兜出應用功能,而沒有去懂更進一步的原理)。而實際上要從頭開發(或較有深度的開發)時,就會發現自己其實沒有具備該有的能力和觀念(其實即便是應用這些API,要做好產品也是需要懂原理,否則將容易產生許多問題)


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

孫文良 個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2023年5月24日 星期三

嵌入式「系統」不是純軟體,包含軟體與硬體(亦包含電路)。推薦全華科技出版的一本電子電路相關書籍


多年前還在讀碩士班時,覺得這本電子電路的書籍(如下圖,來源連結)很不錯(並非刻意幫該書籍打廣告)。雖然後來是以嵌入式系統軟硬體整合開發為主(包含沒有作業系統以及有作業系統的系統軟韌體開發以及周邊電路整合設計),但從高職開始接觸這些始終覺得很有親切感。


來源連結


不過印象深刻的是,當時在成功大學工程科學系資訊組(資訊工程與應用組)的研究所讀碩士班時,該組的所有師生,除了自己之外,幾乎完全沒有其他任何人對於類比電子電路有基礎及興趣....(甚至對數位電路有興趣的也不多),只有一位大學部專題生跟著我做一些相關方面。

其實對於物聯網(IoT)之中的感測單元/嵌入式系統來說,上述的方面絕對是重要的,否則如果一個IoT系統之中的感測電路子系統所產生的訊號是錯的,導致raw data是錯的,如果這些基本的輸入內容本身就是有問題的,根本不能期望用了(輸入到)什麼酷炫神奇AI演算法並以上層軟體整合執行之後,系統的結果就會正常,就好比人吃白飯,不可能會拉出金銀珠寶;又好比不可能用純語音訓練出來的語音model去做影像辨識、不可能沒有任何硬體單元之下就可以拿到感測資料(精確來說,世界上沒有甚麼「純軟體」這種事情,只是藉由可程式化的方式(分層)操控電腦這個「硬體系統」去完成功能)。但坦白說從碩士班許多同儕、業界的同事發甚至主管的狀況來看,「以為數據資料處理辨識演算法可以取代感測訊號處理電路」是某些純軟體的人有些觀念錯誤的地方(包含業界一些老闆和主管),但是成大工程科學系其實在大學部有一些電路相關的必修學科課程,也有微控制器系統相關的必選課程,但顯然對於許多人來說,修課的效果可能是極為有限,許多人其實有修過課,但就幾乎好像是沒修過一樣。而其實我在一些選擇走資訊軟體方向的電機系畢業學生身上也有看到一樣的狀況,並不是工程科學系的學生才有如此的狀況。

此外,也有一些具備電路、MCU韌體開發相關背景的資深業界主管,誤以為自己所做的系統不是嵌入式系統。換句話說,很多方面都問題來自於自身不擅長的跨領域問題(雖然以學校科系來說,工程科學系號稱是主打跨領域的系所)。

嵌入式系統是具備特定功能的電腦「系統」,包含硬體與軟體,絕對 不是 只有作業系統或者只有上層應用程式,很多人常誤以為嵌入式系統就是有跑作業系統軟體的系統,這也是常見的錯誤認知。事實上,多去查詢基本定義即可得知,歐美的專業領域課本也常列出,例如Muhammad Ali Mazidi等人所著作的「The 8051 Microcontroller and Embedded Systems (2nd Edition)」,從書名就可理解我上述所說,該原文書的進一步詳情可參考留言處,而這類原文書通常會將這些基本名詞的定義做出說明。

又要講實話了,台灣有很多人很愛嘴上談「學術」兩字,但是實際上似乎大多不太會想去把基本名詞定義給弄清楚,這是蠻奇怪的事情,如果重視學術就該有基本的嚴謹度,而不是只是把「學術」兩字掛在嘴巴上好像很高尚,但卻缺乏實質的內涵,偉大的工程開發貴在對細節的用心,包含這些名詞基本定義和用語。


-----

歡迎各方洽談合作,務實/踏實追求共好。

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2023年5月16日 星期二

「應付考試」 真的 不一定等於 「 學習」

 在臉書上看到 曹齊平老師/學長的這篇 貼文:




而 後輩我 個人的感觸如下:

曹齊平老師/學長 是大約在40年前的成大工程科學系畢業的學士、以及清大動力機械系畢業的碩士,那年代的大學很少、碩士更少,當年要考上這些學校,難度比近20年來考上這些學校的難度困難太多。要論考試,他絕對是高手,然而他勇於講出許多人不願意去面對的事實,也就是「考試不一定等於真正的學習」。

我個人近年來輔導許多工程師/名校生/產學公司主管/名校大學教授等 的經驗及感觸也是如此 (嵌入式系統工程技術開發設計領域),很多「基本」的內容或者基礎名詞的含義等方面,反而鮮為人知,因為缺乏深入的思考內化,且容易滿足於考試分數的表象以及這些表象所帶來的現實面好處/表面上的成就,導致許多人在需要實際進行工程技術專案開發時遭遇到許多障礙,大多肇因於真正的基礎(不是應付考試的那套,需要實際搭配實務去了解內化內容)不好。

考試確實只是一種容易量化競爭比較的方式,不一定真的等於「學習」,事實上,學歷也是類似的道理,但社會因應多人的情況,制度上就是以這些表面易於量化篩選的方式為主,久而久之就形成了根深蒂固且難以變通的文化/價值觀。

想起了幾年前一位名校碩士生跟我說的:「考試前再熬夜準備,這樣子CP值比較高」。但其實這種做法/習慣/觀念 ,對於專業工程技術的學習 及 「研究/開發」過程是極度不合適的,但是這確實就是多數人被台灣教育體系所培養出來的觀念。

以現實面而論,或許考試制度仍有其一定程度的必要性和作用,有其優點但也有很多缺點,但關鍵是社會大眾看待考試制度的態度/心態,不必過於極端、過度看重,應該可以更多元的去深入了解思考專業知識內容,以及更多包容/理解那些較不喜歡這種篩選方式的族群(絕對也有其強處,也不一定比較不聰明)。

我覺得如果在台灣大家很愛講「學術 」這兩字,那就更應該去多深入花時間面對許多表象以外的真實內容以及含義,而不是嘴巴整天講學術而其實都「只是」喜愛易於量化的表象(例如分數幾分、學歷有沒有拿到、年薪多少、論文數量績效、計畫經費數量績效、頭銜、年資數量等),這些一點都不「學術」。

或許沒有任何一種制度/體制是十全十美的,但重點其實是在於群眾看待這些制度體制的態度,不應該去過度迷信任何一種體制/制度,因為那樣只會造成體制/制度的缺點持續放大或者腐敗,應該要客觀地因應時代去看待/監督並動態調整。

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章



感謝各家產業界工程師學員的在課後的主動心得分享回饋肯定

最近對於一位AIoT相關產品開發的軟韌體工程師學員於其開發過程中所遇到的 Arm Cortex-A9 processor(with MMU) based SoC/MCU(廠牌為 瑞薩/Renesas之 bootloader、chip internal/external RAM的access以及對應的flow、linker script等方面的相關問題和狀況進行解析及說明。


-------



-------


另外,於上個月的另一位於IC設計產業任職的軟韌體工程師在之前的課後主動心得分享回饋如下:


(現在較重視保養喉嚨&課程學員人數控管了)


感謝各路軟韌體工程師學員們,對於我的嵌入式系統技術諮詢課程的支持鼓勵~!!
歡迎各方洽談合作,務實/踏實追求共好!

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章




2023年4月20日 星期四

近來,收到來自國內一線 IC design house 公司之研發工程師 的 技術輔導課程需求

近來開始有收到國內一線 IC design house 公司軟韌體工程師學員來尋求軟韌體系統開發基礎的輔導諮詢課程需求,有這方面課程需求的人明顯比過去還多。

長期以來,我很感謝所有工程師學員的認可和支持。

對於各類工程師的相關需求,都非常歡迎。

因自身一路以來的經歷和體會,多年來對於多數學校在軟韌體系統設計開發、軟硬體整合技術方面的巨大學用落差(亦包含許多產業公司對於招募機制的問題與輕忽)與技術輔導的看法及評估,至今已得到結果方面的證實。

(許多問題的根源是來自整個台灣社會長期以來的觀念和文化,並非單一方或者單一問題所致)

事實上,許多嵌入式系統開發的實際面向來說,絕對不單只是coding純軟體方面的技術問題(例如很多實際的軟硬體整合或/週邊驅動應用的開發、SoC(系統晶片)/MCU(微控制器)晶片中的內部硬體架構觀念,與這些年在某些公司面試與年輕求職者之間所盛行的純軟體刷題幾乎無直接相關,許多是軟體與基礎硬體觀念之間的隔閡問題;反過來說,許多較偏向純韌體的工程開發單位,普遍較缺乏對於計算機系統、作業系統方面的基礎觀念理解),實際狀況牽涉許多對於系統的理解、背景知識、自身對於軟硬體基礎的缺乏及實際開發除錯的經驗與思考等等。

歡迎各方洽談合作,務實/踏實追求共好。


-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2021年12月16日 星期四

【嵌入式系統基礎原理與實務課程】ADC驅動應用基礎教學

昨天替一位有十幾年業界經驗的工程師學員上課 (嵌入式系統基礎課程,該學員希望未來有機會轉職嵌入式系統韌體程式開發),

到了ADC (Analog to Digital Converter)基礎應用原理與實作應用的單元。

實驗平台使用ADC0804 (沒想到在過了十年後,又接觸到這顆IC),雖然這顆IC的型號款式似乎停產(?) 目前在各大通路都缺貨導致價格昂貴 (似乎有些地方的賣價漲到單顆IC數百元),

且這顆ADC0804是並列輸出(Parallel Output),現在的產品或許應該已經很少會用這顆IC。現在許多ADC都已整入於MCU/SoC之中,就算外接通常也會使用串列輸出(SPI、I2C)類型的ADC chip(例如Microchip的MCP30XX系列ADC)。

但是,這顆ADC(ADC0804)拿來作為嵌入式系統韌體初學者的教材仍然很好用,其中許多基礎包含MCU IC 與 周邊IC 之間的整合,還是有值得初學者學習之處,

例如ADC上的CS(Chip Select)、RD(Read)、WR(Write)、INTR(Interrupt)等腳位(Pin)的驅動存取 與 整合應用、ADC IC Datasheet內容(包含訊號的電氣特性、時序 等等)、與輸出類比訊號的感測器sensor(如光敏電阻作為環境亮度感測器之間的基礎整合應用)。

嵌入式系統軟韌硬體的初學者可藉此學習到以核心處理單元(如各式MCU/SoC)存取像是這類周邊裝置IC(如ADC)的一些相關基礎。

本單元課程內容包含ADC基礎應用原理(A/D的取樣、量化、解析度規格等),實驗方面以8051 MCU與這顆ADC0804之間的整合應用為主,以C語言撰寫MCU韌體去擷取ADC0804輸出的數位訊號教學,實驗方式包含透過MCU的GPIO與中斷控制器,去針對ADC0804 INTR訊號與轉換完畢的數位輸出訊號作輪詢(Polling) 與 中斷(Interupt),這兩種機制都會作完整介紹並且帶學員進行實驗。

黑線IC的部分修改自TI ADC080X Datasheet的general schematic來進行教學實驗中的電路繪製

TI ADC080X Datasheet

TI ADC080X Datasheet

TI ADC080X Datasheet

TI ADC080X Datasheet


註: 此課程專注在嵌入式系統韌體的ADC應用基礎教學,而不是在純硬體電路設計,所以該課程實驗教學沒有到去區分各種接地的差異。 

此外,課程也提供使用 別種形式的ADC實驗平台的教學選擇,例如使用MCU/SoC內部的ADC (例如: 該單元可用Atmega328P MCU內部ADC進行實驗教學)。

------

‼課程進一步詳情請參見下方blog網頁的課程介紹👇: