總網頁瀏覽量

顯示具有 python 標籤的文章。 顯示所有文章
顯示具有 python 標籤的文章。 顯示所有文章

2021年9月3日 星期五

【Embedded Linux(嵌入式Linux)系列課程】Root Filesystem之編譯建置與執行 課程簡介

Root Filesystem之編譯建置與執行 課程簡介

Root Filesystem為根目錄檔案系統。簡而言之,檔案系統為電腦資料的儲存和組織(架構)方式,與作業系統之間有著密切的關係

延續上一節Kernel之編譯建置與執行之課程內容後,這節課程將會帶領學員:

  • 課程實驗內容將透過 純文字指令方式(command line) 進行,符合科技產業界對於此類系統的開發方式

  • Host PC端之Ubuntu Linux開發環境中,取得Busybox這款知名的開源檔案系統建置工具的source code,並透過GNU Toolchain編譯工具對其進行編譯,以建置出給Beaglebone Blcak嵌入式系統開發板所運行使用的Root Filesystem(根目錄檔案系統)

  • 以Busybox建置製作Root Filesystem的過程,包含嵌入式系統目標平台上所需的基本目錄及裝置節點(device nodes)

  • 準備Busybox執行所需之動態連結函數庫(該課程主要實驗方式);也會額外補充介紹靜態連結的編譯方式。

  • 建立檔案系統所需之基礎檔案(如/etc/inittab、/etc/init.d/rcS、/etc/fstab......等等)

  • 如何讓執行於Beaglebone Blcak板子的Linux Kernel從SD卡掛載(mount)學員於課程內所建立的Root Filesystem 

實驗Demo影片:


從上電進行開機流程之後進入根目錄畫面,展示在Beaglebone Black板子上執行ls、cat /proc/interrupts及cat /proc/cpuinfo指令。



本園區之FB粉絲專頁如下:

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

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

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

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先參考 課程招生網頁連結




2021年7月6日 星期二

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

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

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

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

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

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

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


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

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

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

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


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

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

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

2020年12月23日 星期三

樹莓派3(Raspberry Pi 3)內建藍牙與APP INVENTOR 2的藍牙連線問題記錄(使用pyserial lib的API直接對/dev/ttyAMA0做存取)

這篇就當成一個實驗過程小記錄 (這篇和我之前的許多篇文章風格不同,在這篇文章不會去探究底層Linux device driver或者上層library的內容細節等等,僅從上層純應用Raspberry Pi的maker角度來作個簡單的記錄)

因為手邊的一個小需求,需要用樹莓派3 Model B之板子上的藍牙(實際硬體為BCM43438的藍牙+WiFi的二合一SoC chip)與APP INVENTOR2所開發出的Android的APP的藍牙功能進行連線

這次在樹莓派3上面執行的這個小應用程式是用python撰寫。起初使用bluetoothctl等一連串指令進行藍牙的連線配對後,使用pyserial lib的API直接對/dev/ttyAMA0做存取(也就是藉由UART來對板子上面的藍牙做存取)的方式(這相對類似比較沒有依賴現成藍牙API的作法。以前曾經在其他的專案的開發過程中和HC系列藍牙模組進行連線,當時這樣做是OK的)。而這次在測試與手機端Android App連線的時,在手機端Android App開啟藍牙連線的過程(與樹莓派3板子內建的藍牙連線)遇到問題(連線失敗)。

後來改搭配使用常見的libbluetooth-dev lib搭配PyBluez lib的API來撰寫樹莓派3上面執行的這個python小應用程式,就可成功連線了。

(或者就如同下sudo rfcomm0 watch hci0指令也可成功連線,當然只下指令的話還缺乏後續的應用,所以還是須要撰寫程式)

進一步的詳細過程內容和原因,如果在未來有時間和機會的話,再另外撰寫文章分享



2020年8月29日 星期六

樹莓派Raspberry Pi常用之PiGPIO library之安裝

 

分享一下樹莓派基礎應用、非自行撰寫Linux device driver的情況下的開發者,常會應用到的一個樹莓派gpio控制的python API library: PiGPIO library之安裝筆記

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

2019年2月12日 星期二

[python] 當遇到ValueError: need more than 1 value to unpack錯誤訊息


當撰寫python code時

如果透過split('符號')method去讀取某個文字檔的時後,遇到下列直譯錯誤訊息:

ValueError: need more than 1 value to unpack

通常就是讀取的文字檔可能有某行沒有你split method內所指定的符號(有時可能只是不小心按下enter產生的空白行,因為這種空白行通常不會有任何你指定的符號所以會錯誤)

如果是上述不小心按下enter產生的空白行可以刪掉該空白行就好,或者透過find method搭配條件式偵測該行有無指定符號,若無則透過continue跳過該次處理該行的迴圈,直接進行下一次迴圈的執行

關於這部分,網路上有篇文章說明得很清楚(有以實際範例來說明),可參考: https://www.jianshu.com/p/c0e43f918920

該篇文章的範例文字檔內容: http://python.itcarlow.ie/chapter3/sketch.txt 

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