2024年2月2日 星期五

Linux Driver開發的2種模式


(1)本機開發模式:

 人在本機上直接開發Driver, 本機可以是PC或Raspberry pi 這類的機器。當然你要能進入到本機裡開發,Toolchain (就是程式繑譯的相關工具),這個工具必須配合本機的作業系統環境安裝。編譯程式所編譯出來的code 是可以直接在本器上執行的。

P.S. 艾鍗的Linux Driver 課程是刻意準備成"本機開發模式"。為了給學員把學習重點放在"Linux Device Driver "上學習,而不要花太多時間在其他嵌式入開發的支微末節。這就好像學習"Window Device Driver"一樣,先專注Windows 作業系統驅動程式的軟體架構和流程。







(2)嵌入式開發模式:


通常本機是PC,而Target端是MCU/SoC開發板,當然也可以是Raspbeery Pi。 把Pi當作Target 端. 人在本機上寫Driver,但也得先安裝Toolchain ,這個工具也必須配合本機的作業系統環境安裝,但這個Toolchain 的Compiler 稱作Cross-compiler, 因為它產出的二進位檔是給Target 端執行的。本機多半和Target 端的CPU不同,是無法讀懂此二進位的指令格式,此二進位檔必會有一個方式傳到Target端去使用。



[Linux Driver] 技術回覆整理

 

2024年1月6日 星期六

3種不同的Bus bridge 連接HPS (ARM SoC)和 FPGA

FPGA Fabric 內部元件連接使用的是Avalon Bus, 而ARM SoC 內部使用 AXI Interface.

Intel  SoC FPGA 解決方案使用可以使用3種不同的bridge 連接HPS (ARM SoC)和 FPGA

  1. HPS-to-FPGA Bridge : HPS ---> FPGA (for high perfromancee data transfer)
  2. Lightweight HPS-to-FPGA Bridge: HPS ---> FPGA (for low perfromancee , fixed 32bit data width,tune for latency. suitable for control and status register access)
  3. FPGA-to-HPS Bridge: FPGA---> HPS 



學習課程連結:

2023年11月21日 星期二

使用OpenAI 的LLM


OpenAI 目前提供的API 種類有這些: 


但使用這些API ,要先在 OpenAI https://platform.openai.com/ 註冊並取得API Key 才能呼叫。但取得API  Key 是需要付費的。 使用 Free trial  API Key 須付 5塊美金,此 Key 有效期為 3 個月。到期後,必須填寫信用卡資訊轉換成付費帳戶。

針對不同的AI模型, 如 聲音識別的 whisper-1, 文字生成影像 dall-e-2, 大型語言模型(LLM) gpt-3.5-turbo , 均有不同的使用資費。如下



1. GET API Key

 1. First, create an OpenAI account or sign in. Next, navigate to the API key page and "Create new secret key", optionally naming the key

2. Install the OpenAI Python library

 > pip install  openai langchain 

3. 程式測試





2023年11月20日 星期一

WSGI Server + Application Server(Flask)



 Flask 內部實現了精簡的 WSGI 接口, 不過這只適合在開發階段使用,因為效能不佳,所以進入到產品化階段,須使用性能高的WSGI 伺服器



WSGI Server + Application Server(Flask)

# On Windows

  原本python app.py 改成用waitress 啓動web 服務

     pip install waitress

waitress-serve --host=0.0.0.0 --port=5000 app:app


#On Linux

可以用 gunicorn 作為WSGI Server

References:


2023年11月19日 星期日

OCR using Google vision API

OCR
OCR by google vision API 





CAPTCHA Demo



  • 用 HTTP 讀取網頁並記錄此Session
  • 以Beautiful Soup 解析HTML , 取出 CAPTCHA 所在的標籤, 另存圖片
  • 對CAPTCHA圖片進行OCR , 解碼出文字
  • HTTP Seesion 傳送解碼後的文字給Web Server 



啓用WSGI Server + Flask 的版本





模仿瀏覽器的行為(使用session)




mimic the behavior of browser

session = requests.Session()

用sesson 送出 HTTP 請求(get/post)  會將session id 存在內部的cookie中。下次再發送session.post()或session.get() 會帶出相同的session-id . 否則會被認為這是不同的HTTP 請求。用這種方法才能將同一個請求,視為同一個對話(Session) 才能正確模仿瀏覽器的行為。