ZHCABI8 March 2022 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1
C28 與 AM263x 有相似的控制外設。但架構(gòu)和連接外設完全不同。一般來說,與控制外設相關(guān)的程序可以在很少或沒有修改的情況下進行遷移,而與 CPU、內(nèi)存管理和連接外設相關(guān)的程序必須針對 AM263x 技術(shù)參考手冊中的細節(jié)進行更新。
眾所周知,直接操作寄存器在過去的 C28 程序中得到廣泛應用。最近幾年,從寄存器操作改為了 API 調(diào)用。從寄存器操作改為 API 調(diào)用可以簡化較復雜的 MCU 的采用。但是,從寄存器用戶轉(zhuǎn)為 API 用戶需要完成一些工作。對于 C28 和 AM263x,這項工作都是不可避免的。完成這項工作后,不難使用 AM263x 控制子系統(tǒng),因為來自 ADC 和 PWM 等模塊的概念非常相似。表 3-2 中提供了有關(guān)控制 API 相似性的一些示例。另外,AM263x SDK 還提供強大的 Sysconfig。它提供直觀的系統(tǒng)配置用戶接口。終端用戶可以直接將他們對控制外設的想法應用到配置中,而無需擔心 API 細節(jié)。控制環(huán)路中廣泛使用的 API 已經(jīng)在框架中提供并在Topic Link Label2中介紹。
API 函數(shù) | AM263x 定義 | C28 定義 |
---|---|---|
獲取 ADC 結(jié)果 |
static inline uint16_t ADC_readResult (uint32_t resultBase, ADC_SOCNumber socNumber) |
static inline uint16_t ADC_readResult (uint32_t resultBase, ADC_SOCNumber socNumber) |
設置 PWM 占空比 |
static inline void EPWM_setCounterCompareValue (uint32_t base, EPWM_CounterCompareModule compModule, uint16_t compCount) |
static inline void EPWM_setCounterCompareValue (uint32_t base, EPWM_CounterCompareModule compModule, uint16_t compCount) |
另一方面,盡管二者有相似之處,但在 SDK 和名稱相似的某些設計上也有些不同。如Topic Link Label3.2 所示,AM263x 的 SDK 結(jié)構(gòu)與 C28 的 SDK 非常不同。盡管它們都有相似的控制外設和相似的 API,但仍然必須了解 SDK 結(jié)構(gòu)的不同,以便在開發(fā)過程中輕松查找細節(jié)。對于 XBAR 等某些特性,C28 和 AM263x 都用 XBAR 同步模塊之間的操作,但 AM263x 中的 XBAR 遠比 C28 中的 XBAR 更加強大。這也帶來一項挑戰(zhàn),必須充分理解和正確配置它。C28 中的 XBAR 程序無法直接應用于 AM263x 項目。