Cy_Srom_CallApi CY_SROM_OP_READ_FUSE_BYTE後のCY_SROM_DR_API_ERROR

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

完成したファームウェアコードで21_ANxxxxxx_eFuse_ReadWrite例を使用すると、次のような出力でシリコンIDを読み出す CAN

SiIdReadValues = (
ファミリー IdHigh = 1、
ファミリーIdLow = 7,
メジャーリビジョンID = 1、
マイナーリビジョンID = 2、
ライフサイクル状態 = CY_LIFE_CYCLE_STATE_NORMAL_PROVISIONED、
保護状態 = CY_PROTECTION_STATE_NORMAL、
userEfuseData = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))

だから私はSROM APIのためのIRQ 0とIRQ1のセットアップは大丈夫だと思いますか?!

私が次のようなefuseバイトを読み込もうとするとき

/* ヒューズバイトの読み取り */
        for (uint32_ti = 0; i < USER_EFUSE_SIZE; i++)
{
          memset(&params, 0, sizeof(params));
          パラメータRdヒューズarg0です。オペコード = CY_SROM_OP_READ_FUSE_BYTE;
          パラメータRdヒューズarg0です。eFuseAddr = i + USER_EFUSE_START_ADDR;
          miStatusSromDriver = Cy_Srom_CallApi(&params, &resp);
          CY_ASSERT(Cy_Srom_CallApi(&params, &resp) == CY_SROM_DR_SUCCEEDED);
          SiIdReadValues.userEfuseData[i] = (uint8_t)resp.Rdヒューズ応答0読み取りバイト;
}
 
miStatusSromドライバ出力がCY_SROM_DR_API_ERRORされ、その後ハードフォールト。
 
使用時にも検討
パラメータRdFuseMargin.arg0です。オペコード = CY_SROM_OP_READ_FUSE_BYTE_MARGIN; 
サンプルコードから、
CY_SROM_OP_READ_FUSE_BYTE_MARGINが定義されていません
&
un_srom_api_args_t にはフィールド RdFuseMargin がありません。
 
利用可能な新しいバージョンはありますか、それとも私は何かを見逃していますか?
 
事前に多くの感謝、
クリストフ

 

0 件の賞賛
1 解決策
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

ねえ

 

投稿をリンクしていただきありがとうございます@SDESA!

誰かが利用できるようにコードファイルを追加します CAN 。

宜しくお願いします、

クリストフ

 

 

元の投稿で解決策を見る

0 件の賞賛
9 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @SDESA

これはTrasveo2ファミリのCY3BB5CEEデバイスであり、7.7.0ドライバライブラリが使用されています。

efuseビットを読み取るためのSDLの例は正常に機能しています、ありがとうございます。 ただし、21_ANxxxxxx_eFuse_ReadWriteで説明されているブローエフューズのアプローチは 、SROMオペコードによって異なります。例はありません

CY_SROM_OP_BLOW_FUSE_BIT
 
含ま。
 
使用する必要がありますか
CY_SROM_OP_FLASH_PROGRAM_ROW
又は
CY_SROM_OP_FLASH_HASH
?
 
あなたの助けとよろしくありがとう、
クリストフ
0 件の賞賛
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @SDESA

これはTrasveo2ファミリのCY3BB5CEEデバイスであり、7.7.0ドライバライブラリが使用されています。

EFUSE ビットを読み取るための SDL サンプル SROM は、ストップ at と同じ結果になります。

Cy_Tcpwm_TriggerStart()

そしてその後ハードフォールトループ。

これはシステムコールの設定が間違っていることを示していますか? 私はいくつかの.docxを追加します 私がしたようにファイルします。

あなたの助けとよろしくありがとう、
クリストフ
0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

デバッグするとき、私は

Cy_Srom_GetResponseType() 
 
もし(g_scratchu32[0] & 0xF0000000ul) ==0xF0000000ul )
収益
CY_SROM_RESPONSE_FAIL
 
誰かが何を説明CAN
静的 un_srom_api_scrach_sram_t g_scratch; // これは SRAM 上に配置する必要があります。
のためですか?
 
助けてくれてありがとう、
クリストフ・ステファン
 
 
静的 un_srom_api_scrach_sram_t g_scratch; // これは SRAM 上に配置する必要があります。
 
 
0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @chriistoph


回答が遅れたことを心よりお詫び申し上げます。
アーキテクチャ TRM で説明したように、SROM 呼び出しを介してビットまたはバイト レベルで複数の eFuse を読み取る CAN をご存知かもしれません。 吹き飛ばされていない eFuse はロジック 0 として読み取られ、吹き飛ばされた eFuse は論理 1 として読み取られます。 私があなたの説明で見ているようにuserEfuseData = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))これは、eFusesが吹き飛ばされていないことを示します。 このエフューズを吹き飛ばしたい場合は、「BlowFuseBit」システムコールがTV IIデバイスでサポートされています。

cy_en_srom_response_type_t Cy_Srom_GetResponseType(void)//この関数は、ドライバーの汎用ステータスを提供します

{

現在のコアに D キャッシュがある場合にスクラッチ RAM を無効にして、CM0+ SROM ハンドラからのアップデートが正しく読み取られるようにする

Cy_SysLib_InvalidateCoreDCacheByAddr(&g_scratch, sizeof(g_scratch));

 

if((g_scratch.u32[0] & 0xF0000000ul) == 0xA0000000ul)

{

CY_SROM_RESPONSE_SUCCESSを返す。

}

else if((g_scratch.u32[0] & 0xF0000000ul) == 0xF0000000ul)

{

CY_SROM_RESPONSE_FAILを返します。

}

然も無くば

{

CY_SROM_NOT_RESPONSEを返します。

}

}
基本的に、すべてのシステムコールの最後に、IPCデータ構造の引数またはIPCの場所が指すSRAMアドレスにステータスコードが書き込まれます。 成功ステータスは 0xAXXXXXXX で、X は値を気にしないか、値を返すシステムコールのデータを返すことを示します。 エラーの状態は 0xF00000XX で示されます (XX はエラー コードです)。

次に、システムコールステータスを調べて、SDLが「Cy_Srom_Get_Api_Response」/ Cy_Srom_ConvertRespToStatus」機能を提供していることのシステムコールの失敗の理由を見つける必要があります詳細については、(\T2G_Sample_Driver_Library_7.X.X\docs)パスを参照し、機能の詳細についてはデバイス固有のドキュメントを参照してください。

あなたのステータスを教えてください。

感謝
シュバム

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

@SDESAあなたの助けとアドバイスをありがとう!!

含ま

    miSROM_apiStatus[0] = Cy_Srom_GetApiResponse(応答);
    miSROM_apiStatus[1] = Cy_Srom_ConvertRespToStatus(resp->resp[0]);
    miSROM_apiStatus[1] = Cy_Srom_ConvertRespToStatus(resp->resp[1]);
    miSROM_apiStatus[1] = Cy_Srom_ConvertRespToStatus(resp->resp[2]);
    miSROM_apiStatus[1] = Cy_Srom_ConvertRespToStatus(resp->resp[3]);
    if(Cy_Srom_GetResponseType() == CY_SROM_RESPONSE_FAIL)
{
        SROM API がスクラッチ RAM でエラーを返した場合は、エラーを返します
        CY_SROM_DR_API_ERRORを返します
}
    else if(Cy_Srom_GetResponseType() == CY_SROM_RESPONSE_SUCCESS)
{
        SROM API が "OK" を返した場合は、成功を返します
        CY_SROM_DR_SUCCEEDEDを返す
}
    然も無くば
{
        不明な状態を返す
        CY_SROM_DR_API_UNKNOWNを返します
}
 
Cy_Srom_CallApi()関数と出力は次のようなものでした
 
miSROM_apiStatus = (
CY_SROM_STATUS_NVM_PROTECTED、
CY_SROM_STATUS_INVALID、
CY_SROM_STATUS_SUCCESS、
CY_SROM_STATUS_SUCCESS、
CY_SROM_STATUS_SUCCESS)
miStatusSROM = CY_SROM_DR_API_ERROR
UnIdReadValues = (
ダイ ID0 = 0、
DieId1 = 0)
SiIdReadValues = (
ファミリー ID 高 = 1、
ファミリー IDLOW = 7、
メジャーリビジョン ID = 1、
マイナーリビジョン ID = 2、
ライフサイクル状態 = CY_LIFE_CYCLE_STATE_NORMAL_PROVISIONED、
保護状態 = CY_PROTECTION_STATE_NORMAL、
シリコンId高 = 233,
シリコンIdLow = 25,
フラッシュブートメジャーバージョン = 3,
フラッシュブートマイナーバージョン = 1、
SROM_FW_MajorVersion = 7、
SROM_FW_MinorVersion = 1)
 
DieId0/1 を読み取るための部分に到達することはありません。
 
したがって、エフスは保護されています
不揮発性メモリ(FLASHまたはeFuse)バイトは、保護によって読み取り/書き込み保護されています
 
Traveo 2 MCUが利用可能になる前に、工場で書き込みタスクが行われているかどうかを会社で調査します。
 
たとえば私のように、ファクトリーフラッシュステップでプログラマーデバイスでエフェクトが書き込まれる可能性があるという仮定はありますか?
 
さらに!
Cy_Srom_GetResponseType内(無効) 
ありません
Cy_SysLib_InvalidateCoreDCacheByAddr(&g_scratch, sizeof(g_scratch));
含ま。
 
助けてくれてありがとう、よろしくお願いします、
クリストフ
0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは@chriistoph

これに関する更新はありますか?

感謝
シュバム


0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @SDESA

 

私の問題に関心をお寄せいただきありがとうございます!

ステータスは現在、評価ボードを介していくつかのデバイスと3つの生チップをテストしました。 そのうちの2つだけがANから手順を進めます。 このような出力:

 

chriistoph_1-1695812737120.png

残りの部分は、数回のforループ反復後にハードフォールトに入ります。 いくつかのデバイスと一部の生のチップがNVM_PROTECTED理由をさらに調査し、投稿し続けます。

 

CAN 私は親切にさらに質問をします..バージンデバイスで私は0800 0x1700 sflashユーザーエリアを書きたいと思います

残念ながらANはありません。 SROM APIオペコード0x05 WriteRowが見つかりません。

CAN あなたはアドバイスを与えるか、私はこの質問を新しく投稿する必要がありますか?

 

前もって感謝します!

クリストフ

 

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは@chriistoph

あなたの最近の質問は以下のスレッドで議論されていることがわかりました
リンク: https://community.infineon.com/t5/TRAVEO-T2G/WriteRow-SROM-API-0x05/td-p/615158

感謝
シュバム



0 件の賞賛
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

ねえ

 

投稿をリンクしていただきありがとうございます@SDESA!

誰かが利用できるようにコードファイルを追加します CAN 。

宜しくお願いします、

クリストフ

 

 

0 件の賞賛