EALLOW

EALLOW :仿真讀取使能位。

復位時,該位允許對仿真和其他暫存器進行讀取。EALLOW可以由指令AEALLOW置位,由EDIS指令清0,可以使用POP ST1指令或POP DP:ST1指令進行設定。查看某一設備的數據頁來決定保護的暫存器。 當CPU服務於某一中斷時,EALLOW的當前值被存入堆疊(當ST1保存在堆疊中時),然後將EALLOW清0。然而,在中斷服務子程式ISR的開始就去讀取仿真暫存器是不允許的。如果ISR必須讀取仿真暫存器,它必須包含一個EALLOW指令,在ISR的結束,可以利用IRET指令進行恢復。2812中有一些配置暫存器是受保護的,無法直接操作。也就是說在對這些暫存器進行修改之前,需要先去掉保護功能 而保護狀態是由狀態暫存器中EALLOW標誌來指示的。彙編指令“EALLOW”就是將該標誌位置位,允許對受保護的暫存器操作 。
EALLOW一般和EDIS配套使用,在對受保護的暫存器操作之後,用EDIS恢復暫存器的被保護狀態。
在TI的說明中 712 的98頁,有介紹:
5.2 EALLOW 保護暫存器
Preliminary
EALLOW 保護暫存器
280x 器件上的幾個控制暫存器受EALLOW 保護機制保護以防止虛假的CPU 寫入。狀態暫存器1 (ST1) 中的
EALLOW 位指示保護的狀態是否如表5-4
在復位時EALLOW 位被清除以啟用EALLOW 保護。在受保護時,CPU 對受保護暫存器進行的所有寫入被忽略且只允許CPU 讀取、JTAG 讀取和JTAG 寫入。如果設定了此位,則通過執行EALLOW 指令可以允許CPU 自由寫入受保護的暫存器。在修改暫存器之後,可以通過執行EDI 指令清除EALLOW 位使它們再次受保護。
以下列暫存器受EALLOW 保護:
· 器件仿真暫存器
· 快閃記憶體暫存器
· CSM 暫存器
· PIE 矢量表
· GPIO MUX 暫存器
· 某些eCAN 暫存器
EALLOW ---Edit allow
EDIS ---- Edit disable
such as:
EALLOW; // Enable EALLOW
GpioMuxRegs.GPAMUX.all |= 0x003F; // Setting PWM1-6 as primary output pins
EDIS; // Disable EALLOW
EINT Enable interrupt #define EINT asm(" clrc intm")
DINT Disable interrupt #define DINT asm(" setc intm")

相關詞條

熱門詞條

聯絡我們