總網頁瀏覽量

顯示具有 技術教學 標籤的文章。 顯示所有文章
顯示具有 技術教學 標籤的文章。 顯示所有文章

2025年5月23日 星期五

歡迎各領域學員學習 專業領域研發知識與技術



兩年多前有 台大機械系碩士班(一般生)畢業幾年的業界工程師來作專業技術的諮詢與學習

現在是該系所博士班學生來詢問

歡迎各領域學員學習 專業領域研發知識與技術 


-----

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

孫文良 個人簡歷: 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,亦可先點擊參考這篇介紹文章



2022年12月14日 星期三

【 嵌入式系統(Embedded System) 到底是什麼? 】

【 嵌入式系統(Embedded System) 到底是什麼? 】

關於這方面,許多台灣的大學學術界資深老師(無論名校或者非名校)、產業界資深主管/工程師,常會誤以為嵌入式系統就是指有嵌入Linux的系統,其實這是個明顯的認知錯誤。個人應該已經不只十次在企業職缺或者大學校院內的論文看到這個問題,直到今年(2022)我還是有在國內的研討會論文中看到這個錯誤。

這情況類似之前提過的微處理機/微控制器的名詞常被混用的狀況,而許多歐美的相關技術書籍對此名詞有較嚴謹的說明。如果大家很重視「學術」,那就應該要對這些名詞的基本定義有一定的嚴謹程度。

同時讓我們看一下 Wikipedia英文版頁面內容(較詳細)對於嵌入式系統(Embedded system)的基本定義[1]:  「An embedded system is a computer system—a combination of a computer processorcomputer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system.  It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. 

簡單來說,嵌入式系統就是被嵌入到電子/機械/機電硬體系統內、具備特定/專用功能的 計算機(電腦)系統。 這個「嵌入」並不是 在指Linux OS軟體被嵌入到一個系統。

就算是跑non-OS類型的軟韌體的MCU為核心的系統產品,基本上也都是嵌入式系統。並不是只有那些有跑(執行)嵌入式Linux或Android的系統才叫做嵌入式系統。

對於專業名詞定義認知落差,有時候就是造成工程開發過程中的溝通問題的來源。

Ref: 

[1] Wikipedia, Embedded system, https://en.wikipedia.org/wiki/Embedded_system .


-----

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


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

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

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

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

2021年5月21日 星期五

【課程內容介紹】【STM32】STM32 UART基礎教學之部份簡介(主要以簡易的Receive data應用為範例作教學)

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

STM32_UART基礎教學之部份簡介(主要以簡易的Receive data應用為範例作教學)。

課程會介紹關於UART的基礎使用方式,包含Polling(輪詢)和interrupt(中斷)機制的差異和基本使用觀念。

而在中斷的方面,

下列影片1的情況是因為我們 沒有 讓CPU或DMA去讀(read) Receive Data Register之中的接收資料,也沒有去對RXNE flag寫0,所以RXNE flag沒有被清除,導致UART ISR flow不斷地被觸發。

影片1

而影片2的情況是因為我們讓CPU從Receive Data Register把資料給讀走(在ISR flow中呼叫使用了HAL_UART_Receive),所以RXNE flag被清除,所以每當UART收到來自PC端(中間串接UART轉USB的module)的字元資料(character byte data),UART ISR flow才會被觸發。

影片2

另外,在課程中也會提及blocking mode API(以HAL_UART_Receive為例) 和 non-blocking mode API(以HAL_UART_Receive_IT為例)的差異,如影片3。

影片3

影片中使用的STM32板子型號是STM32F407G-DISC1 (STM32F4-Discovery),板子上的主MCU晶片型號是STM32F407VGT6(ARM Cortex-M4 CPU based)。

另外關於一些在ST官方手冊[1]中相關的部分:

ST RM0090官方手冊[1]



ST RM0090官方手冊[1]

題外話,注意這裡的STM32 MCU通訊功能周邊裝置的blocking/non-blocking mode API,和作業系統(如Linux)的blocking/non-blocking I/O model的意思(實際狀況)不太一樣,勿混淆。

也可於下方連結進去我於facebook的公開貼文中觀看,謝謝。



Ref: 

[1] STM32 RM0090 Reference manual Rev 19: https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf


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

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

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