ZHCABI8 March 2022 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1
C28 與 AM263x 有相似的控制外設(shè)。但架構(gòu)和連接外設(shè)完全不同。一般來說,與控制外設(shè)相關(guān)的程序可以在很少或沒有修改的情況下進(jìn)行遷移,而與 CPU、內(nèi)存管理和連接外設(shè)相關(guān)的程序必須針對(duì) AM263x 技術(shù)參考手冊(cè)中的細(xì)節(jié)進(jìn)行更新。
眾所周知,直接操作寄存器在過去的 C28 程序中得到廣泛應(yīng)用。最近幾年,從寄存器操作改為了 API 調(diào)用。從寄存器操作改為 API 調(diào)用可以簡(jiǎn)化較復(fù)雜的 MCU 的采用。但是,從寄存器用戶轉(zhuǎn)為 API 用戶需要完成一些工作。對(duì)于 C28 和 AM263x,這項(xiàng)工作都是不可避免的。完成這項(xiàng)工作后,不難使用 AM263x 控制子系統(tǒng),因?yàn)閬碜?ADC 和 PWM 等模塊的概念非常相似。表 3-2 中提供了有關(guān)控制 API 相似性的一些示例。另外,AM263x SDK 還提供強(qiáng)大的 Sysconfig。它提供直觀的系統(tǒng)配置用戶接口。終端用戶可以直接將他們對(duì)控制外設(shè)的想法應(yīng)用到配置中,而無需擔(dān)心 API 細(xì)節(jié)??刂骗h(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) |
| 設(shè)置 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 和名稱相似的某些設(shè)計(jì)上也有些不同。如Topic Link Label3.2 所示,AM263x 的 SDK 結(jié)構(gòu)與 C28 的 SDK 非常不同。盡管它們都有相似的控制外設(shè)和相似的 API,但仍然必須了解 SDK 結(jié)構(gòu)的不同,以便在開發(fā)過程中輕松查找細(xì)節(jié)。對(duì)于 XBAR 等某些特性,C28 和 AM263x 都用 XBAR 同步模塊之間的操作,但 AM263x 中的 XBAR 遠(yuǎn)比 C28 中的 XBAR 更加強(qiáng)大。這也帶來一項(xiàng)挑戰(zhàn),必須充分理解和正確配置它。C28 中的 XBAR 程序無法直接應(yīng)用于 AM263x 項(xiàng)目。