HC32F460 系列的數(shù)據(jù)計(jì)算單元 DCU
1
摘要
本篇應(yīng)用筆記主要介紹 hc32f460 系列芯片的數(shù)據(jù)計(jì)算單元(data computing unit, dcu)模塊,并通過硬件事件觸發(fā)運(yùn)算操作。
2
dcu 簡介
數(shù)據(jù)計(jì)算單元(data computing unit)是一個(gè)不借助于 cpu 的簡單處理數(shù)據(jù)的模塊。每個(gè) dcu單元具有 3 個(gè)數(shù)據(jù)寄存器,能夠進(jìn)行 2 個(gè)數(shù)據(jù)的加減和比較大小,以及窗口比較功能。
3
hc32f460 系列的 dcu
3.1
簡介
hc32f460 系列的 mcu 搭載 4 個(gè) dcu 單元,每個(gè)單元均可獨(dú)立完成自身功能。
3.2
說明
3.2.1 dcu 功能
ÿ
可進(jìn)行 4 種數(shù)據(jù)處理:2 個(gè)數(shù)據(jù)的加法,減法,比較以及 3 個(gè)數(shù)據(jù)窗口比較。
ÿ
加法和減法對(duì) data0 和 data1 寄存器中的數(shù)據(jù)進(jìn)行運(yùn)算,結(jié)果存放在 data0 中。
ÿ
加法和減法可以選擇寫寄存器后計(jì)算或由其他外圍電路事件觸發(fā)進(jìn)行運(yùn)算。
ÿ
加法和減法運(yùn)算可自動(dòng)將結(jié)果進(jìn)行一次減半操作,并將減半的結(jié)果和加減運(yùn)算的結(jié)果分別放入 2 個(gè)數(shù)據(jù)寄存器內(nèi)供其他模塊使用。
ÿ
比較模式可以對(duì) data0 和 data1 寄存器之間,以及 data0 和 data2 寄存器之間的 2個(gè)數(shù)據(jù)進(jìn)行比較,可以分別選擇當(dāng)滿足大于,小于,等于時(shí)產(chǎn)生中斷和標(biāo)志位。
ÿ
比較模式可以用來進(jìn)行窗口比較,即分別設(shè)置 data1 和 data2 為窗口的上下限,根據(jù)data0 和 data1 及 data0 和 data2 的比較結(jié)果判斷 data0 在窗口內(nèi)或窗口外。
ÿ
能夠由其他外圍電路事件觸發(fā)進(jìn)行運(yùn)算,并根據(jù)運(yùn)算結(jié)果產(chǎn)生多種中斷和事件信號(hào),事件信號(hào)用于當(dāng)其他具有硬件觸發(fā)啟動(dòng)功能的外圍電路選擇 dcu 作為觸發(fā)源時(shí),由 dcu 產(chǎn)生
4
樣例代碼
4.1
代碼介紹
用戶可根據(jù)上述的工作流程編寫自己的代碼來學(xué)習(xí)驗(yàn)證該模塊,也可以直接通過華大半導(dǎo)體的網(wǎng)站獲取到設(shè)備驅(qū)動(dòng)庫(device driver library, ddl)的樣例代碼并使用其中的 dcu 的樣例進(jìn)行驗(yàn)證。
4.2 代碼運(yùn)行
用戶可以通過華大半導(dǎo)體的網(wǎng)站獲取到 hc32f460 的 ddl 的樣例代碼
(dcu_hw_trigger_add),并配合評(píng)估用板(ev-hc32f460-lqfp100-050-v1.1)運(yùn)行相關(guān)代碼學(xué)習(xí)使用 dcu 模塊。
以下部分主要介紹如何在評(píng)估板上運(yùn)行 dcu 樣例代碼并觀察結(jié)果:
- 確認(rèn)安裝正確的 iar ewarm v7.7 工具(請(qǐng)從 iar 網(wǎng)站獲取相應(yīng)的安裝包,并參考用戶手冊(cè)進(jìn)行安裝)。
- 華大半導(dǎo)體網(wǎng)站有hc32f460 ddl 代碼。
- 運(yùn)行 dcu\dcu_hw_trigger_add\中的工程文件:
5
總結(jié)
以上章節(jié)簡要介紹了 hc32f460 系列的 dcu,說明了 dcu 模塊的寄存器及部分操作流程,并且演示了如何使用 dcu 樣例代碼,在實(shí)際開發(fā)中用戶可以根據(jù)自己的需要配置和使用 dcu模塊。