C2 埠支援

  1. 版權所有 2007 Rodolfo Giometti <giometti@enneenne.com>

本程式是自由軟體;您可以根據自由軟體基金會發布的GNU通用公共許可證的條款重新分發和/或修改它;無論是許可證的第2版,還是(由您選擇)任何更高的版本。

本程式的釋出是為了希望它有用,但沒有任何擔保;甚至沒有適銷性或特定用途適用性的暗示擔保。詳情請參閱GNU通用公共許可證。

概述

此驅動實現了Linux對Silicon Labs (Silabs) C2介面的支援,該介面用於微控制器的系統內程式設計。

使用此驅動,您可以無需EC2或EC3除錯介面卡即可重新程式設計系統內快閃記憶體。此解決方案在微控制器透過特殊GPIO引腳連線的系統中也很有用。

參考資料

C2 介面的主要參考資料位於 (https://www.silabs.com) Silicon Laboratories 網站],請參閱

但是,它實現了一個兩線序列通訊協議(位翻轉),旨在實現在低引腳數 Silicon Labs 器件上的系統內程式設計、除錯和邊界掃描測試。目前,此程式碼僅支援快閃記憶體程式設計,但易於新增擴充套件。

使用驅動

驅動載入後,您可以使用sysfs支援獲取C2port資訊或讀寫系統內快閃記憶體

# ls /sys/class/c2port/c2port0/
access            flash_block_size  flash_erase       rev_id
dev_id            flash_blocks_num  flash_size        subsystem/
flash_access      flash_data        reset             uevent

最初,C2port訪問是停用的,因為您的硬體可能將這些線路與其他裝置複用,因此,要訪問C2port,您需要以下命令

# echo 1 > /sys/class/c2port/c2port0/access

之後,您應該讀取連線的微控制器的裝置ID和修訂ID

# cat /sys/class/c2port/c2port0/dev_id
8
# cat /sys/class/c2port/c2port0/rev_id
1

然而,出於安全原因,系統內快閃記憶體訪問尚未啟用,要啟用它,您需要以下命令

# echo 1 > /sys/class/c2port/c2port0/flash_access

之後,您可以讀取整個快閃記憶體

# cat /sys/class/c2port/c2port0/flash_data > image

擦除它

# echo 1 > /sys/class/c2port/c2port0/flash_erase

並寫入它

# cat image > /sys/class/c2port/c2port0/flash_data

寫入後,您必須重置裝置以執行新程式碼

# echo 1 > /sys/class/c2port/c2port0/reset