總網頁瀏覽量

2021年7月6日 星期二

【阿良的韌體科普系列】系列文章─開張文

這幾年來逐漸發現,現在因為某些議題被過度炒作和放大(如AI,不論在新聞媒體/報章雜誌上面),且學術界(大學校院)又過於績效導向,大多為了角逐計畫和資源,而不斷地去追求所謂比較的名詞的相關議題(未必能反映台灣產業界的真實專業技術人才需求),導致一些重要的紮實專業技術教育越來越不受到重視。

於電腦相關領域(資訊工程領域),在較上層的程式語言(如Python)隨著上述議題而一同受到社會高度重視的同時,越來越學生 或 初入社會的人士,能了解何謂電腦系統的底層(如 韌體硬體),

但是,其實產業界對於電腦底層相關的工程師職務需求量是很大的(可自行搜尋人力銀行求證),

許多人似乎都快忘記,軟體終究是被拿來控制/驅動電腦硬體的、軟體是被硬體所執行的,

而且,其實軟體也有很多不同的層面和種類,軟體 並不是 只有一般人眼睛看得到的 視窗介面軟體、APP 或 網頁 而已,

不少人似乎把底層系統都給忘記,甚至不太曉得 較底層的系統軟體(韌體、驅動程式、開機啟動程式、作業系統核心等名詞)存在和意義


有鑑於上述狀況,本園區這邊最近會開始撰寫並分享【阿良的韌體科普系列】系列文章,希望透過比較淺顯易懂的文字介紹方式,讓更多人對於電腦底層、韌體相關的軟體程式、硬體等底層單元,能有更多的了解。

這系列文章的撰寫風格,會盡量避免太過繁瑣詳細的內容,但同時保持內容的正確性,雖然這樣的有可能會犧牲一些詳細的說明,但還是希望能藉此方式,讓更多朋友能對於電腦底層的軟硬體相關知識有些了解。

希望讓大家能擴展自己對於職涯的選擇性和技術視野,而不是等到去工作了,才知道自己做的工作到底是在做什麼。

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


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

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

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: 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,亦可先點擊參考這篇介紹文章

2021年5月20日 星期四

【STM32】記錄今天看到的STM32 MCU RM0090 Reference manual Rev 19的973~974頁 USART Receiver(章節30.3.3)的一個寫法上的小問題

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

STM32 MCU的多數手冊都寫得不錯,但偶爾似乎還是難免會有些小問題。

今天下午看到一個關於STM32 MCU RM0090 Reference manual(STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 advanced Arm®-based 32-bit MCUs)  Rev 19的973~974頁 USART Receiver(章節30.3.3)的Start bit detection和Character reception這兩個連續的小節的內容中,對於RXNE flag被set(被設立為1)的條件的條件方面的文意內容的矛盾。

下列兩張圖皆為該ST手冊[1]的內容,請注意被紅線框起的部分:

[1] 973頁




[1] 974頁

[1] 1006頁



後來看到ST論壇也曾有外國人提出來討論。連結網址: https://community.st.com/s/question/0D50X00009XkhmtSAB/rxne-irq-generation


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,亦可先點擊參考這篇介紹文章

2021年5月13日 星期四

小時候不喜歡填鴨教育和考試,絕對不代表不聰明。絕對不要放棄自己

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

我個人很喜歡做專業領域的研究(產業技術和學術)

但是我也是差點被教育體系給弄到不可能像是有今天這樣接觸專業領域研究的機會,

很感謝高三在統一補習班的電子學老師和基本電學老師、高二時期學校的數位邏輯(數位電路)老師。

回想起來,

無論是國小、國中、高職時期,

其實我有很多不喜歡台灣傳統填鴨教育制度和考試的同學,

是真的都很聰明、相當具有某些方面的才能和天賦,

只是台灣的教育基本上完全不重視學生興趣啟發養成發展和個人特質,只知道不斷地對學生進行填鴨式教育。

是真的耽誤了蠻多人,讓太多人被放棄。

埋沒了很多原本在興趣的領域會發揮得很好的天才。

我建議任何這樣遭受狀況的學生都不要放棄,有時候是某些老師和家長們的視野狹隘,而不是學生的資質差。

台灣教育體制的標準本來就有些問題,自己不要放棄,多客觀思考分析,認清楚狀況,堅持正途、找出自己有熱情的方向,我相信早晚會找到適合自己發展的路。

2021年5月6日 星期四

每個國家都適合起源於歐洲的學術界機制嗎?

 

新聞標題: 台灣論文造假數全球第二!私校工會嘆:學術道德淪喪至此

新聞標題: 台灣學術造假世界第二!教團:學界已無恥感

-----------

雖是去年的新聞 但還是印象深刻

基本上,我覺得學術研究這套,在世界上的某些愛演戲的文化充斥的地區的國家,是很難玩起來的,因為學術研究是需要高度自律性的項目。

而以華人地區為例,自古以來至今,多數人從小填鴨考試讀書就只是為了要獲取名利,而不是真的對於書本的的知識內容有興趣和熱忱,

所以這種從小填鴨到大的文化之下,本來就很難去搞需要高度熱忱興趣和自律性的學術研究。

個人在科技業看過蠻多工程師,對於其工作內容和專業根本沒有太大的興趣和熱忱或想法(假日絕對不碰和專業相關的內容),大多只是想要賺錢過日子,這都是一樣的道理。

2021年4月28日 星期三

最近看到關於學術界的一些新聞


今天在網路上看到這則與台北教育大學和高雄科大相關的鏡周刊的新聞 。

至於事情的更進一步之來龍去脈和結果,或許就只能靜待政府相關單位的調查和後續作為。


這幾年來,與大學/學術界相關的新聞報導其實很多 (有興趣的朋友可以自己GOOGLE搜尋)

例如幾年前的台大醫學論文事件

 

而我一直都記得一位 很正派 且 勇於直言 的清大退休教授彭明輝老師,在好幾年以前就常以文章的方式去描述學術界的某些面向,例如:

亡台從五年五百億開始

這樣子的一流大學?呸!呸!呸!

直到現在彭老師還是有在寫文章,像是:

大學為何存在?為誰存在?

我很敬佩這位清大退休的彭老師,願意以文章來分享這些內容。

其實,既然早在至少十年前,就有像是清大退休教授彭老師這樣的內行人出來講話了,

讓我覺得社會大眾應該更積極的去關注和監督公共議題(包含教育界/學術界)才是。

2021年4月26日 星期一

國高中時期的數學和理化學科考試分數不好,就代表一定不適合走理工嗎?

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

之前寫過兩篇文章

當軟硬體研發工程師,一定要數學和物理學科成績很好才適合嗎?

在台灣教育體制下之小時候對數學考試沒興趣,其數學能力就一定會一直爛嗎? 書讀越高越高尚?

因為仍然看到很多人有一些刻板的觀念,所以延續說明

好像很多學生家長仍總是保持舊有觀念,似乎大多以為自己國高中時期的填鴨式數理學科考試分數不好,或者不擅長應對這些學科的「考試」,就認為自己未來不該/不適合走理工科系,或者不適合從事工程相關行業。

其實這是極大的錯誤認知,理工的範圍很廣,層面也很多,絕對不是上述舊有認知的那個樣子

否則以我個人來說,根本不可能走這行,如果按照上述錯誤的舊有刻板觀念,從我小時候對於學校數理學科的排斥程度來看,多數人一定認為我長大後不可能能在畢業後去什麼聯發科當軟韌體工程師,也不可能去輔導成大工程系所的研究生和教授關於工程方面的專業技術和經驗。

我上大學以前,最沒興趣的科目是數理;但上大學後,最有興趣的科目也是數理(我是 讀電機電子工程類的系所)。

因為大學之前覺得沒有賦予物理意義的純數學考試真的很無聊,而物理的科目一被考試制度給填滿就變得不像物理,所以根本不想去應付這些學科的考試,甚至有排斥及厭惡感。

直到高三在補習班聽到補習班電子學和基本電學老師教得很好,才知道數學的實際應用如此有趣,才知道到底為何要學數學,也因為有這些電學科目的啟發,加上上了大學後有了比國高中職時期還自由許多的學習空間,從大一時期就對於微積分和物理之中的電學和磁學深感興趣(其實就連自己都想像不到會有這一天),而當一個人對於一件事情真的有興趣時,自然就會去補足相關的基礎知識,而不是只能被強迫填鴨。

反倒是許多在小時候學科成績表現不錯的同學,到了大學後因為開始沒有人強迫自己,反而就不知道目標導致最後迷失了自己,這在名校或者非名校大學都有著太多的實例(每年每屆都有),這樣子的狀況並不是具備工程專案開發天賦的樣態。

至於從事工程師的行業,其實工程師有百百種,以我自己接觸過的軟硬體整合設計開發性質相關的領域來說,我個人認為最需要的是熱忱、耐心、邏輯和經驗,而不是你國高中甚至大學學科考幾分。

台灣填鴨式的教育方式本來就是不適合多數人的,即便硬吃也不一定會有好的成果;即便排斥厭惡也絕對不代表沒有天份或不適合。

因為填鴨就真的是填鴨,不是什麼適合大多數人的學習方式,更不是什麼很宇宙無敵通用標準。

更何況,每個人在每個階段的狀況和發展本來就不同,而且時代也會變,現在是個網路資訊發達的時代,學習知識的管道並非只能在名校,但上述舊有的刻板觀念應該是幾十年前的(甚至更久),只能說很少人真正隨著時代去更新觀念,也很少人去思考就讀名校的真正意義到底是什麼。

所以我才會覺得,台灣某些產業界公司招募員工的方面總是喜歡看學歷文憑血統(看是否一路讀名校,甚至看到高中讀哪裡)的這個陋習其實是相當的愚蠢(至今仍如此)。

個人就曾經輔導高職和大學都是就讀食品科系的人(他在學時期的學科表現並不好,但其實都還是能逐漸啟發興趣並且輔導起來),後來成功跨領域轉職為韌體程式開發相關職務的工程師。

人有無限的可能,不需要老是把自己和別人侷限在一些奇怪的小框框內。