超額利用硬件資源
動態重配置的可行性
本文引用地址:http://www.104case.com/article/147239.htm根據可編程器件的架構,動態重配置可適用于許多應用。不過,如果開發人員要了解每個寄存器,并手動設置寄存器的值,那么實現動態重配置就變得相當復雜,耗時費力。為了讓動態重配置切實可行,開發工具必須提供有效且最省力的方法來設置寄存器的值,同時還要為運行實現方案提供基本的重配置基礎架構。以下兩種特性非常重要:
· 自動生成配置寄存器值
· 簡化開關配置
自動生成配置寄存器值:開發工具必須提供一種簡單方法來定義和管理多種配置。定義配置是指選擇使用的外設及其內部互連。根據配置定義,開發工具必須為配置中使用的每個模塊生成所需的寄存器值。舉例來說,圖4顯示了PSoC Designer IDE(集成開發環境)根據具體配置所用外設生成的代碼。

從代碼可以看出,當開發工具可以生成所需的寄存器值時,就能將開發工作從手動生成這些值中解放出來,這也可以讓開發人員頻繁修改配置也不會有任何問題。
簡化開關配置:假設開發人員必須管理不同配置之間的切換,那么當他們編寫代碼用于從閃存中讀取數值并將其寫入所需的寄存器,特別是開發過程中對配置所做的頻繁修改,就會造成巨大的開銷。一個錯誤可能會造成難以檢測和定位的系統故障。因此,開發工具必須提取出低級寄存器寫入細節,并提供高級API來完成這項任務。
由于加載了先前的配置,寫入值的“卸載”也會進一步使切換配置復雜化。并不是所有的情況都需要卸載,但大多數情況需要。舉例來說,設想一個應用有一種基礎配置和兩種可加載的配置。基礎配置包含隨時都需要的資源,任何時間點都無需加載和卸載。這種配置在輸入主應用代碼之前就加載了。在這個應用實例中,基礎配置需要通過UART與主機CPU通信。在第一個可加載配置中,需要一個ADC。在另一個可加載配置中,需要一個PWM和一個觸摸傳感器。假定UART需要兩個可編程數字資源,PWM需要一個,同時ADC和觸摸傳感器使用相同數量的資源,那么不同配置之間的切換如圖5所示。

因此,開發工具必須提供輕松加載和卸載配置的方法,且無需了解低級寄存器和配置值在閃存中的儲存位置。
模數轉換器相關文章:模數轉換器工作原理
塵埃粒子計數器相關文章:塵埃粒子計數器原理 衰減器相關文章:衰減器原理 熱敏打印機相關文章:熱敏打印機原理
評論