如何設定 pFlash 讀取保護 (不使用 HSM)

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

你好。

我想通過用戶軟件設置 HF_CONTROL.DDFP 來激活 PFlash 讀取保護。

手冊說:

在 DMU 提升 SSW 之後...在內部快閃記憶體中啟動:— HF_ 控制。DDFP 已清除為 0B

軟件可以在 DMU_HF_ 控制中設置 DDFP 位元:

            CGuru334_0-1705576393994.png

在我的用戶程序中,我寫到註冊器:

DMU_HF_CONTROL.B.DDFP = 1;

但沒有什麼改變。 值在 0x00000017 小時保持不變

即使只要編寫它也不會改變任何東西(DMU_HF_CONTROL.U = 0x000117;)

    CGuru334_1-1705579218767.png

 

 

在 UCB_PFLASH_ORIG 和 UCB_PFLASH_COPY 中設置 PFlash 保護(所有磁區,已確認,DMU_HF_PROCONPF = 0x80000000)不會改變任何內容。 啟動後,HF_PROCONPF.DDFP 為 0(如手冊中所述),將忽略任何寫入 DDF P。

 

 

有人知道,如何激活讀取保護?

 

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/td-p/679128

1 解決方案
Translation_Bot
Community Manager
Community Manager
Community Manager

此功能禁用安全性 endinit 保護,但在文檔中僅標記 E,這意味著 CPU endinit(據我所知,SE 是用於安全性的)。 根據我的知識,安全性 endinit 不會自動意味著 CPU 安全性。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/680078

在原始文章中檢視解決方案

0
11 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

我使用AURIX™ Development Studio (v1.19.16) 嘗試了您的設定。

我使用任務 C/C ++ 調試器檢查了,DDFP 位元未設置為 1。
另一方面,當我使用 WinIdea 調試器檢查時,DDFP 位元設置為 1。
winIDEA_debugger DDFP bit check.png

 



這可能是特定於除錯器的問題。
我希望這些信息對您有所幫助。

最好的問候,

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679389

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好。

不,這不僅是特定於調試器的問題。

我透過 can-bus 指令設定並讀取TESTBOARD_150PC_OUT DMU_HF_CONTROL 值,因此在設定並稍後讀回後,我隨時都會得到該值:0x00000017。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679490

0
Translation_Bot
Community Manager
Community Manager
Community Manager

您好,

感謝您的回复。

請告訴我你的情況。
・請告訴我您正在使用的AURIX™ Development Studio (ADS) 的版本。
・請告訴我您在 ADS 中使用哪個破壞器。 (任務 C/C ++ 調試器? 或 WinIdea 調試器?)

我能夠在 WinIdea 調試器中設置 DDPF 位,所以請嘗試一下。

最好的問候,
森。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679595

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好。

感謝您的回复。

我使用AURIX™ Development Studio 1.9.0 和 1.9.20 對其進行了測試,

使用任務調試器和 WinIDEA 調試器。

無法設置 DDFP 位元,即使從程序和 WinIDEA 調試器中,也無法設置:

 

CGuru334_0-1705646791935.png

最近的嘗試是通過激活主管模式,我試圖寫入 DDFP 位。 但這也沒有成功。

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679673

0
Translation_Bot
Community Manager
Community Manager
Community Manager

您好,

感謝您分享與 WinIdea 運行的結果。

通過執行 ST.B 指令來存儲數據。
因此,您可以在 " 拆卸 " 中執行 ST.B 指令(附圖中的 0x8000351E)嗎?

最好的問候,
森。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679764

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,在文檔中,我還注意到,特別是這個註冊器可能受到 endinit 保護。 您是否嘗試停用並稍後啟用此保護?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679847

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,莫里。

如果我在編譯器中的 WinIDEA 調試器中單獨運行程序步驟,則使用 ST.B 指令,DDFP 位實際上被設置。

 

如果我在調試器中運行程序步驟並使用 F10 執行(相同)整個語句,則 DDFP 位不會設置。 -> 為什麼,執行相同的編譯器代碼

 

如果我讓程序正常運行並嘗試設置 DDFP 位,則這也不可能。

 

這意味著:我無法從程序中設置 DDFP 位元。

如果我想要它,我必須在車輛上聘請一名助手,他會通過 PC 和 WinIDEA 調試器使用斷點短暫停固件,然後在單步模式 😂 中進行步驟操作

 

是否沒有其他投注選擇?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679829

0
Translation_Bot
Community Manager
Community Manager
Community Manager

此功能禁用安全性 endinit 保護,但在文檔中僅標記 E,這意味著 CPU endinit(據我所知,SE 是用於安全性的)。 根據我的知識,安全性 endinit 不會自動意味著 CPU 安全性。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/680078

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好。

設置 DDFP 位元後添加 __isync() after MTCR (there still was a isynch) and  __ isync()不會更改它。

刪除 MTCR 不會更改它(我仍處於主管模式)。

 

甚至:

safetyWdtPw = IfxScuWdt_getSafetyWatchdogPassword();
IfxScuWdt_clearSafetyEndinit(safetyWdtPw);

__isync();
DMU_HF_CONTROL.B.DDFP = 1;
__isync();

IfxScuWdt_setSafetyEndinit(safetyWdtPw);

幫助。 DMU_HF_ 控制保持在 0x00000017

只有在 WinIDEA 調試器中,可以一次設置位元。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679980

0
Translation_Bot
Community Manager
Community Manager
Community Manager

您好

,有一點關注我。

您的軟體會在將 DDFP 位元設定為 1 之前執行 MTCR 指令。
我明白該過程可能是取消 Endinit 保護,但是這是正確的嗎?

此外,必須在執行 MTCR 指令後執行 ISYNC。
// TriCore™ TC1.6.2 核心架構手冊 - 指令集(第 2 卷,共 2 卷)(第 166 頁)
//同步
[…]
註:ISYNC 指令應位於 MTCR 指令之後。這可確保 MTCR 後的所有指示都能看到 CSFR 更新的效果。
[...]
https://www.infineon.com/dgdl/Infineon-AURIX_TC3xx_Architecture_vol2-UserManual-v01_00-EN.pdf?fileId...

由於未執行 ISYNC,因此在發行 ENDINIT 保護之前,有可能會嘗試將 DDFP 位元設定為 1。

請在 MTCR 指令後添加 ISYNC,然後再試一次嗎?

最好的問候,

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/679948

0
Translation_Bot
Community Manager
Community Manager
Community Manager

您好老 PC 揚聲器。

很棒的信息。 這就是解決方法:

使用此代碼它可以工作:

uint16   password = IfxScuWdt_getGlobalEndinitPassword();
Ifx_CPU *cpu      = IfxCpu_getAddress(IfxCpu_ResourceCpu_0);
IfxScuWdt_clearGlobalEndinit(password);
__isync();
DMU_HF_CONTROL.B.DDFP = 1;
__isync();
IfxScuWdt_setGlobalEndinit(password);

 

非常感謝

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-set-the-PFlash-read-protection-without-using-HSM/m-p/680086

0