2024年4月16日 星期二

[Linux Driver] 掛載AT24 EEPROM Driver

(一) 使用sysfs 的方式操作EEPROM

Load at24 driver (eeprom) 要配合 device tree 的操作.

  step 1: 
   
   # compile dts to dtbo
    >>    dtc -@ -I dts -O dtb -o at24.dtbo at24.dts
        
   # copy to /boot/overlays  
    >> sudo cp at24.dtbo  /boot/overlays 


   # modify /boot/config.txt and add this line 

   dtoverlay=at24

  # reboot pi  

    >> sudo reboot

  
step 2: sudo modprobe at24 (載入Kernel 原生 Driver )





step3:  正常情況下會產生   /sys/bus/i2c/devices/1-0050/eeprom
                   你可以讀寫此eeprom檔案, 例如:

         sudo dd if=123.bmp of=/sys/bus/i2c/devices/1-0050/eeprom
         sudo dd of=~/dump.bin  if=/sys/bus/i2c/devices/1-0050/eeprom



=====================================================

(二) 使用字元裝置的方式操作EEPROM

掛載 i2c-dev 模組後, 會生成 /dev/i2c-1 檔案, 可利用i2c tools 工具進行讀寫









---------

at24.dts

// Definitions for I2C EEPROM (24lcxx)
// www.ittraining.com.tw
/dts-v1/;
/plugin/;

/ {
        compatible = "brcm,bcm2708";

        fragment@0 {
                target = <&i2c1>;
                __overlay__ {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "okay";
                     
  
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;  // I2C address of the AT24C02
pagesize = <8>;
size = <256>;
};
  
                        
                };
        };
        
        
};

2024年3月25日 星期一

[Linux Driver] 技術回覆整理

 

Q0: Driver 開發方式為何?


Ans: 

請參考"Linux Driver開發的模式"  https://blog.ittraining.com.tw/2024/02/linux.html

 

Q1: 在Linux 驅動程式-> Linux GPIO host control 的bcm2708_gpio.c 是在哪個路徑下?


Ans: 課程使用的是kernel 4.4.x , 其關於bcm2708_gpio.c 改為 driver_gpio.c
路徑位於 /home/pi/linux-raspberrypi-kernel_1.20190401-1/drivers/bcma



Q2: 為何在範例"LinuxDriver_Data_20191001 \Code\14-GPIO-RPI_H\gpio.c"裡

只有定義

MODULE_LICENSE("GPL");
MODULE_AUTHOR("ittraining.com.tw");
MODULE_DESCRIPTION("A Simple GPIO Device Driver module for RaspPi");

而沒有定義
module_init();
module_exit();

Ans:

原始module 進入及離開點, 都是固定這個名字,
int init_module(void)
void cleanup_module(void)

若想要換別的名字,可以用以下巨集代換成別的名字.
module_init(led_init_module);
module_exit(led_remove_module);

Q3: 02_BTN_LED 裡的local_irq_save(flags), 禁止的irq是button_irq, 對嗎?

Ans:  不是. 

local_irq_save(flags)   //是對本次被中斷的CPU, 禁止它再接受何任何中斷

/*the critical section of code*/
.
local_irq_restore(flags) //還原被中斷前的CPU狀態


Q4:  Raspberry Pi 開發板接上電源後(I/O板接電腦USB埠, 主板接USB電源), 開機訊息或是下dmesg會常出現以下:

[ 10.391505] Under-voltage detected! (0x00050005)
[ 14.561447] Voltage normalised (0x00000000)

Ans:  其實可以略過此訊息, 但如果要消除此訊息.. 另外購買 2.5A power supply 供電, 不能用PC的 USB供電,因為電腦電流供應不足.

Q5:   關於中斷控制器

   這個local arm周邊的 具體是甚麼樣的周邊 請舉例
   這些周邊也接到GPU的中段控制器裡嗎? 
   另外, 中斷控制器有沒有在GPU裡?
   bcm2835 GPU ARM內部的IP簡圖去哪查?

Ans: 


(1) 來自ARM內部本身的中斷, 主要就是ARM 內部timer和作為和GPU溝通界面(Mailbox)的中斷通知
(2) 不知道,但也不用管GPU內部的中斷控制器
(3) 沒有, 我們講的中斷控制器是用來通知ARM 而己
(4)   Hardware architecture:   GPU ----> Interrupt controller ---> ARM


   資料來源: BCM2835-ARM-Peripherals  Ch7 Interrupts

 

Q5: 如何自己編譯核心或準備本機開發模式

請參閱 "Quick guide for building Raspberry Pi kernel 4.4.x"


Q6:

暫存器的確有可能因為中斷而改變狀態,但不懂得是明明已經說是存取暫存器
並不是一般放在記憶體的變數, 根本沒所謂保存在記憶體裡阿




上面這段描述是不是錯的?  我看gpio dirver也沒有加所以volatile?






Ans: 

(1) 現在計算機架構採用Memory-mapped I/O ,  將Peripheral Register  (Special Function Register)也映射在記憶體的一個區段, 所以存取週邊亦等同於存取記憶體.
   
(2)也許  readl 函式宣告像這樣.  readl (volatile uint32_t* paddr)

Q6 :電壓準位的問題

  Ans: 



2024年3月1日 星期五

艾鍗學院ARM MCU Board - NEW


艾鍗ARM MCU  實驗套件採用新唐 M482LE8AE (NuMicro® M482 USB OTG 系列)



MCU:

  • 新唐 M482LE8AE (NuMicro® M482 USB OTG 系列)
  • 高達 192 MHz Arm® Cortex®-M4F 核心
  • 128 KB 快閃記憶體,支援 eXecute-Only-Memory ( XOM )
  • 64 KB RAM,包含 32 KB 硬體奇偶校驗


電源: USB 輸入電源 5V,500mA 自復型保險絲限流保護,系統穩壓 3.3V


燒錄除錯器:  DAPLink


USB:  

USB 2.0 全速裝置/主機/OTG 控制器及內置 PHY


GPIO:

一組 1602 文字型 LCD

on board 輸入按鍵 x1

一組步進馬達及控制器模組


12bits SAR ADC:

AD 通道 12:10K 熱敏電阻(on board)

AD 通道 13:100K VR(on board)


12bits DAC: 1 組 DAC 輸出通道


16bits PWM:

PWM1_1:蜂鳴器 Buzzer

PWM1_2:Capture mode 紅外線收發模組(on board)


UART:

CH340G USB 模組 (UART1)

ESP8266 WiFi 模組 (UART1)


I2C: BH1750 照度計

SPI: NRF24L01P 2.4G 無線通訊模組



M482LE8AE晶片規格資料:

核心
  - 高達 192 MHz Arm® Cortex®-M4F 核心
  - DSP 指令集
  - 記憶體保護單元
   
記憶體
  - 128 KB 快閃記憶體,支援 eXecute-Only-Memory ( XOM )
  - 64 KB RAM,包含 32 KB 硬體奇偶校驗
  - 2 KB 一次性燒錄區塊 ( OTP )
   
循環冗餘校驗 ( CRC ) 單元
   
16 通道周邊 DMA 控制器
   
外部匯流排介面
  - LCD 平行介面,i80 模式
   
時脈源 ( Clocks )
  - 4 到 24 MHz 晶振
  - RTC 用 32 kHz 振盪器
  - 內部 48 MHz RC 振盪器 ( X-less )
  - 內部 12 MHz RC 振盪器
  - 內部 10 kHz RC 振盪器
   
RTC
  - 獨立 VBAT 電源輸入
  - 20 位元組備份暫存器
   
計時器和 PWM
  - 4 個 32 位元計時器
  - 12 路增強型 PWM ( 12 個 16 位元計時器 )
  - 12 路基本型 PWM ( 2 個 16 位元計時器 )
  - 1 個 24 位元倒數 SysTick 計時器
  - 1 個看門狗計時器
  - 1 個視窗看門狗計時器
類比周邊
  - 1 個 12 位元,多達 12 通道 5 MSPS SAR ADC
  - 1 個 12 位元 1 MSPS DAC
  - 2 個滿擺幅 ( Rail-to-rail ) 比較器
   
通訊介面
  -

多達 8 個低功耗 UART 介面 ( 17 Mbps ) ,包含 2 個 LIN 介面

  - 1個 ISO-7816 介面 ( 3.4 MHz ) ,支援全雙工 UART 模式
  - 3 個 I²C 介面 ( 可達 3.4 Mbps )
  - 2 個四線 SPI 介面 ( 可達 96 MHz )
  - 多達 2 個 SPI /I²S 介面 ( SPI 可達 96 MHz 、I²S 可達 192 kHz/16-bit )
  - 1 個 I²S 介面 ( 192 kHz/32-bit )
  - 1 個 SD 卡控制器 ( 50 MHz )
   
控制介面
  - 個正交編解碼介面 ( QEI )
  - 個 24 位元 通道輸入捕捉計數器單元
   
影像輸入介面
  - CMOS 感測器介面帶有硬體 1 位元亮度輸出
    
進階連結
  - USB 2.0 全速裝置/主機/OTG 控制器及內置 PHY
   
操作特性
  - 電壓範圍: 1.8V to 3.6 V
  - 溫度範圍: - 40 ℃ to 105 ℃
     
符合 IEC-60730 Class B
   
加解密引擎
  - AES-256
  - 真亂數產生器



資源連結:
1. M482LE8AE晶片規格
2. 艾鍗ARM Cortex M4 板電路圖








2024年2月19日 星期一

筆試考試樣題參考

計算題樣題-相關題型

※僅列相關題型”作為參考例題,為確知應試者邏輯/運算能力,實際考題文字描述或數字可能修改。

1.        下圖為某班數學成績的次數分配折線圖,則下列敘述哪一個正確?
(A)  
有人考100                                        (B)   恰有12人考65
(C)  
全班共有48                                      (D)   及格的人數剛好為全班人數


2.        某班男、女生共36人,調查他們喜歡的科目,如下表



下列敘述何者正確?
(A)  
全班喜歡數學的比例,和女生中喜歡數學的比例一樣多
(B)  
男生中喜歡數學的比例,比女生中喜歡數學的比例多
(C)  
男生中喜歡國文的比例,和女生中喜歡英文的比例一樣多
(D)  
男生中喜歡數學的比例,比女生中喜歡英文的比例多

3.        下圖所示為某航空公司應徵人員身高的累積相對次數分配折線圖,若初選的條件為身高 170公分以上,則初選不合格的百分比應為多少?
(A) 45%                  (B) 50%                  (C) 65%                  (D) 70%


4.        下表是某班40位學生第二次段考的數學成績,請問該班估計的平均分數應是多少?
(A) 65.25
                    (B) 66.25                    (C) 67.25                    (D) 68.25

(Hint:直方圖因為沒有原始資料, 估計平均數方法可利用組中點乘以次數求出平均數)





5.      12÷2+6÷3×2的計算結果為?
(A) 7                        (B) 10                      (C) 8                        (D) 16

6.        已知有5個數由小到大排序為 abcde,其平均數為 321,中位數為 320 10a+3510b+3510c+3510d+3510e+35 的平均數為𝑥,中位數為𝑦,則𝑥 𝑦 =
(A) 10                      (B) 35                      (C) 321                    (D) 320

7.        中午12 點,小明到同一家餐廳外帶餐點,點了4份餐後,要結帳時,看到櫃台張貼:防疫期間,外帶優惠方式:每買5 份餐,其中一個價格最便宜的餐可以免費,因此小明多買了一個香烤鯛魚飯,則小明最多只要再多付多少錢,就可以多買一個香烤鯛魚飯?
(A) 40                      (B) 30                      (C) 20                      (D) 10


8.        下圖為2017年九個國家,每百萬人器官捐贈率,則從下圖中,下列選項何者正確?
(A)
西班牙為2017 年九個國家中,器官捐贈總人數最多的國家
(B) 2017
年九個國家中,台灣器官捐贈總人數多於中國器官捐贈總人數
(C)
無法判斷葡萄牙和比利時兩國,捐贈器官總人數哪個國家多
(D) 2017
年九個國家中,香港器官捐贈總人數是第5


9. 

10.



計算機概論-相關題型

1. 在電腦的硬體架構中,負責協調各個單元運作,並控制指令執行順序的部件為何?

(A) 算術邏輯單元 (ALU)

(B) 控制單元 (CU)

(C) 輸出單元 (OU)

(D) 儲存單元 (SU)

2. 關於「雲端運算(Cloud Computing)」的特性,下列敘述何者錯誤?

(A) 使用者可以隨需應變地取得運算資源

(B) 必須在特定的地理位置才能存取資料

(C) 資源通常是透過網路進行存取

(D) 具有高度的可擴展性與彈性

3. 在作業系統中,為了讓使用者能在同一個時間內執行多個程式(如:邊聽音樂邊打報告),這種技術稱為?

(A) 多工處理 (Multi-tasking)

(B) 批次處理 (Batch Processing)

(C) 虛擬實境 (Virtual Reality)

(D) 資料備份 (Data Backup)

4. 下列哪一種網路拓樸(Network Topology)中,若中央節點故障,則整個網路都會癱瘓?

(A) 環狀 (Ring)

(B) 星狀 (Star)

(C) 匯流排 (Bus)

(D) 網狀 (Mesh)

5. 在電子郵件協定中,主要負責「發送」郵件的是哪一個協定?

(A) POP3

(B) IMAP

(C) SMTP

(D) FTP

6. 下列何種技術主要用於保護內部網路免於外部未經授權的侵入?

(A) 路由器 (Router)

(B) 防火牆 (Firewall)

(C) 集線器 (Hub)

(D) 調變解調器 (Modem)

7. 在資料庫管理系統中,用來唯一識別表格中每一筆紀錄的欄位稱為什麼?

(A) 外鍵 (Foreign Key)

(B) 索引 (Index)

(C) 主鍵 (Primary Key)

(D) 視圖 (View)

8. 關於「快閃記憶體(Flash Memory)」的敘述,下列何者正確?

(A) 電源關閉後資料會立即消失

(B) 常見於隨身碟、SSD 固態硬碟中

(C) 存取速度比 CPU 的暫存器還快

(D) 是一種昂貴的揮發性記憶體

9. 在網頁瀏覽時,URL 開頭若顯示為 "https://",其中的「s」代表什麼意義?

(A) Speed(代表傳輸速度極快)

(B) Secure(代表通訊經過加密安全)

(C) Simple(代表網頁結構簡單)

(D) Server(代表這是伺服器專用)

10. 下列何者不屬於系統軟體(System Software)?

(A) 作業系統 (OS)

(B) 編譯程式 (Compiler)

(C) 驅動程式 (Driver)

(D) 簡報軟體 (PowerPoint)


人工智慧樣題-相關題型


  1. 下列何者不是人工智慧的定義? (A) 機器能夠展現類似人類的智慧 (B) 計算機系統能夠執行通常需要人類智慧的任務 (C) 模擬人類的學習、解決問題和決策能力的技術 (D) 任何形式的電腦程式

  2. 人工智慧的核心目標是什麼? (A) 取代人類工作 (B) 創造自主意識的機器 (C) 提升人類生活品質和解決問題效率 (D) 發展超越人類智慧的機器

  3. 下列何者不是 AI 技術在隱私、安全性與倫理層面可能面臨的挑戰? (A) 數據偏見 (B) 算法歧視 (C) 隱私洩露 (D) 電腦運算速度

  4. 數據在 AI 模型中扮演什麼角色? (A) 燃料 (B) 引擎 (C) 方向盤 (D) 導航系統

  5. 下列何者不是 機器學習的基本原理? (A) 從數據中學習模式 (B) 根據經驗進行預測或決策 (C) 無需明確編程即可執行任務 (D) 模擬人類情感

  6. 常見的機器學習方法不包括下列何者? (A) 監督式學習 (B) 非監督式學習 (C) 強化學習 (D) 量子計算

  7. 鑑別式 AI 和生成式 AI 的主要區別是什麼? (A) 鑑別式 AI 根據數據進行預測,生成式 AI 創造新的內容 (B) 鑑別式 AI 需要大量數據,生成式 AI 不需要數據 (C) 鑑別式 AI 只能處理圖像,生成式 AI 只能處理文本 (D) 鑑別式 AI 已經過時,生成式 AI 是最新的技術

  8. 下列何者不是 生成式 AI 的應用? (A) 圖像生成 (B) 文本創作 (C) 語音合成 (D) 數據分析

  9. No Code / Low Code 工具的主要優勢是什麼? (A) 降低 AI 開發門檻,讓非專業人士也能參與 (B) 提升 AI 模型的準確度 (C) 減少 AI 模型的訓練時間 (D) 解決所有 AI 倫理問題

  10. 生成式 AI 導入的第一步是什麼? (A) 購買最昂貴的 AI 工具 (B) 進行全面的市場調查 (C) 確認業務需求和目標 (D) 建立 AI 專家團隊

  1. 下列何者不是 生成式 AI 的應用領域? (A) 藝術創作 (B) 產品設計 (C) 數據分析 (D) X光照片診斷

  2. 生成式 AI 工具的選擇應基於哪些因素? (A) 價格 (B) 應用場景和需求 (C) 使用者介面 (D) 以上皆是

  3. 如何有效應用生成式 AI 工具? (A) 盲目相信 AI 生成的結果 (B) 將 AI 工具視為輔助工具,結合人類的專業知識和判斷力 (C) 忽略 AI 倫理問題 (D) 以上皆非

  4. 生成式 AI 導入評估應考慮哪些因素? (A) 技術可行性 (B) 成本效益 (C) 風險評估 (D) 以上皆是

  5. 生成式 AI 導入規劃應包含哪些步驟? (A) 需求分析 (B) 資源分配 (C) 試用測試 (D) 以上皆是

  6. 生成式 AI 風險管理應關注哪些方面? (A) 數據安全 (B) 算法偏見 (C) 倫理問題 (D) 以上皆是

  7. 下列何者不是 No Code / Low Code 平台的優勢? (A) 縮短開發時間 (B) 降低開發成本 (C) 提升開發效率 (D) 100% 保證 AI 模型的準確度

  8. No Code / Low Code 平台的限制是什麼? (A) 功能可能不如傳統編程方式靈活 (B) 可能無法滿足所有複雜的 AI 應用需求 (C) 以上皆是 (D) 以上皆非

  9. 如何善用 No Code / Low Code 平台進行生成式 AI 應用? (A) 選擇適合的平台 (B) 充分了解平台的功能和限制 (C) 結合其他 AI 技術和工具 (D) 以上皆是

  10. No Code / Low Code 平台的未來發展趨勢是什麼? (A) 功能更加強大 (B) 應用更加廣泛 (C) 與其他 AI 技術更加融合 (D) 以上皆是

  1. 自然語言處理(NLP)不包括下列哪項技術? (A) 語音辨識 (B) 圖像生成 (C) 機器翻譯 (D) 文本分析

  2. 電腦視覺技術不包括下列哪項應用? (A) 物件識別 (B) 人臉辨識 (C) 語音合成 (D) 圖像分類

  3. 多模態人工智慧是指什麼? (A) 只能處理單一類型數據的 AI 模型 (B) 能夠處理和整合多種類型數據(如文本、圖像、語音)的 AI 模型 (C) 只能處理文本數據的 AI 模型 (D) 只能處理圖像數據的 AI 模型

  4. AI 導入評估應考慮哪些因素? (A) 業務需求 (B) 技術可行性 (C) 數據品質 (D) 以上皆是

  5. AI 導入規劃應包含哪些步驟? (A) 確定目標 (B) 制定策略 (C) 分配資源 (D) 以上皆是

  6. AI 風險管理應關注哪些方面? (A) 數據安全 (B) 算法偏見 (C) 倫理問題 (D) 以上皆是

  7. 數據準備在 AI 系統部署中扮演什麼角色? (A) 可有可無 (B) 影響 AI 模型的準確度和效能 (C) 僅在 AI 模型訓練初期需要 (D) 以上皆非

  8. AI 技術系統集成應考慮哪些因素? (A) 系統架構 (B) 數據流 (C) 應用場景 (D) 以上皆是

  9. AI 系統部署的最後一步是什麼? (A) 測試和驗證 (B) 數據收集 (C) 模型訓練 (D) 以上皆非

  10. 如何有效管理 AI 系統的運維? (A) 定期監控 (B) 性能優化 (C) 安全維護 (D) 以上皆是




#其他參考資料

[2]  生成式AI 概念    https://youtu.be/ibvLNwEFnNM?si=ExGOrdHckZyxV95a