Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
CODEWARRIOR 11.1 I used a M9S08QG8 micro chip, with this code in 1984. I am using windows 11 now. Is there a compiler that will debug this code Now. Also, is this chip still made? void my_main(void) { initial(); } void initial(void) { if(loopcount==2){goto initend;} PTADD_PTADD0 = 0; //io direction PTADD_PTADD1 = 0; PTADD_PTADD2 = 0; PTADD_PTADD3 = 1; PTBDD_PTBDD0 = 1; PTBDD_PTBDD1 = 1; //PTADD_PTADD4 = 0; //io direction //PTADD_PTADD5 = 0; //PTBDD_PTBDD6 = 1; //osc direction //PTBDD_PTBDD7 = 0; //PTBPE_PTBPE6 = 1; //pullup resistor //PTBPE_PTBPE7 = 0; //PTAPE_PTAPE0 = 0; //PTAPE_PTAPE1 = 0; //PTAPE_PTAPE2 = 0; //PTAPE_PTAPE4 = 0; //PTAPE_PTAPE5 = 0; //ICSC1_IREFS = 0; //select external osc param //ICSC1_CLKS0 = 0; //ICSC1_CLKS1 = 1; //ICSC2_EREFS = 0; //ICSC2_BDIV0 = 0; //ICSC2_BDIV1 = 0; PTAD_PTAD0 = 0; PTAD_PTAD1 = 0; PTAD_PTAD2 = 0; PTAD_PTAD3 = 0; PTBD_PTBD0 = 1; PTBD_PTBD1 = 1; bobbin_one_white=0; bobbin_two_white=0; bobbin_one_black=0; bobbin_two_black=0; bobbin_count_one=0; bobbin_count_two=0; bobbin_one_count_up_down = 20; bobbin_two_count_up_down = 20; bobbin_three_count_up_down = 20; bobbin_four_count_up_down = 20; rewind1 = 1; rewind2 = 1; rewind3 = 1; rewind4 = 1; programlength = 10; buzzcount = 0; buzzdelay = 0; buzzonoff = 1; needle = 20; delay = 100; light = 20; speed = 1000; c=0; //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=1;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=0;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=1;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=0;} PTAD_PTAD3 = 0; //buzzonoff = 1; buzzonoff = 0; initend: PTAD_PTAD3 = 1; //PTAD_PTAD3 = 0; c=0; peace(); } void peace(){ loopcount=2; onemoretime: buzzer(); //__RESET_WATCHDOG(); for(speed=0;speed<=delay;speed++){} if(PTAD_PTAD2==0){PTAD_PTAD3=0;buzzonoff=1;} //if(PTAD_PTAD2==0){setlength();} // winding bobbin on bobbin winder if(PTAD_PTAD0==0){bobbin_one_black++;PTBD_PTBD1=0;if(bobbin_count_one==1){bobbin_count_one=2;}} if(PTAD_PTAD0==1){bobbin_one_white++;PTBD_PTBD1=1;halfturna=1;bobbin_count_one=1;} if(bobbin_count_one==2){ if(halfturna == 1){fullturna=1;bobbin_count_one=0;}} // hook sewing if(PTAD_PTAD1==0){bobbin_two_black++;PTBD_PTBD0=0;if(bobbin_count_two==1){bobbin_count_two=2;}} if(PTAD_PTAD1==1){bobbin_two_white++;PTBD_PTBD0=1;halfturnb=1;bobbin_count_two=1;} if(bobbin_count_two==2){ if(halfturnb== 1){fullturnb=1;bobbin_count_two=0;}} if(fullturna==1)goto bobbinwinder; if(fullturnb==1)goto hook; goto onemoretime; Re: CODEWARRIOR 11.1 Hello, The CodeWarrior tool version 11.1, is supported in windows 11, this tool supports different connections [P&E USB Multilink Universal / USB Multilink, P&E Cyclone, Open-Source BDM, P&E Full chip simulation] You can download the tool from this link: CodeWarrior® for MCUs (Eclipse IDE) v11.1 The device status is in "NOT RECOMMENDED FOR NEW DESIGNS (NRND)", but you can still order from the distributors available stock, please refer to product part page in buy options section MC9S08QG8CDTE Product Information | NXP Semiconductors Best Regards, Luis
記事全体を表示
コードウォリアー 11.1 I used a M9S08QG8 micro chip, with this code in 1984. I am using windows 11 now. Is there a compiler that will debug this code Now. Also, is this chip still made? void my_main(void) { initial(); } void initial(void) { if(loopcount==2){goto initend;} PTADD_PTADD0 = 0; //io direction PTADD_PTADD1 = 0; PTADD_PTADD2 = 0; PTADD_PTADD3 = 1; PTBDD_PTBDD0 = 1; PTBDD_PTBDD1 = 1; //PTADD_PTADD4 = 0; //io direction //PTADD_PTADD5 = 0; //PTBDD_PTBDD6 = 1; //osc direction //PTBDD_PTBDD7 = 0; //PTBPE_PTBPE6 = 1; //pullup resistor //PTBPE_PTBPE7 = 0; //PTAPE_PTAPE0 = 0; //PTAPE_PTAPE1 = 0; //PTAPE_PTAPE2 = 0; //PTAPE_PTAPE4 = 0; //PTAPE_PTAPE5 = 0; //ICSC1_IREFS = 0; //select external osc param //ICSC1_CLKS0 = 0; //ICSC1_CLKS1 = 1; //ICSC2_EREFS = 0; //ICSC2_BDIV0 = 0; //ICSC2_BDIV1 = 0; PTAD_PTAD0 = 0; PTAD_PTAD1 = 0; PTAD_PTAD2 = 0; PTAD_PTAD3 = 0; PTBD_PTBD0 = 1; PTBD_PTBD1 = 1; bobbin_one_white=0; bobbin_two_white=0; bobbin_one_black=0; bobbin_two_black=0; bobbin_count_one=0; bobbin_count_two=0; bobbin_one_count_up_down = 20; bobbin_two_count_up_down = 20; bobbin_three_count_up_down = 20; bobbin_four_count_up_down = 20; rewind1 = 1; rewind2 = 1; rewind3 = 1; rewind4 = 1; programlength = 10; buzzcount = 0; buzzdelay = 0; buzzonoff = 1; needle = 20; delay = 100; light = 20; speed = 1000; c=0; //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=1;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=0;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=1;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=0;} PTAD_PTAD3 = 0; //buzzonoff = 1; buzzonoff = 0; initend: PTAD_PTAD3 = 1; //PTAD_PTAD3 = 0; c=0; peace(); } void peace(){ loopcount=2; onemoretime: buzzer(); //__RESET_WATCHDOG(); for(speed=0;speed<=delay;speed++){} if(PTAD_PTAD2==0){PTAD_PTAD3=0;buzzonoff=1;} //if(PTAD_PTAD2==0){setlength();} // winding bobbin on bobbin winder if(PTAD_PTAD0==0){bobbin_one_black++;PTBD_PTBD1=0;if(bobbin_count_one==1){bobbin_count_one=2;}} if(PTAD_PTAD0==1){bobbin_one_white++;PTBD_PTBD1=1;halfturna=1;bobbin_count_one=1;} if(bobbin_count_one==2){ if(halfturna == 1){fullturna=1;bobbin_count_one=0;}} // hook sewing if(PTAD_PTAD1==0){bobbin_two_black++;PTBD_PTBD0=0;if(bobbin_count_two==1){bobbin_count_two=2;}} if(PTAD_PTAD1==1){bobbin_two_white++;PTBD_PTBD0=1;halfturnb=1;bobbin_count_two=1;} if(bobbin_count_two==2){ if(halfturnb== 1){fullturnb=1;bobbin_count_two=0;}} if(fullturna==1)goto bobbinwinder; if(fullturnb==1)goto hook; goto onemoretime; Re: CODEWARRIOR 11.1 こんにちは、 CodeWarriorツールバージョン11.1はWindows 11でサポートされており、このツールはさまざまな接続に対応しています[P&E USB Multilink Universal / USB Multilink、P&E Cyclone、オープンソースBDM、P&E Full chip simulation] このツールはこちらのリンクからダウンロードできます: CodeWarrior® for MCUS (Eclipse IDE) v11.1 デバイスの状態は「新しいデザインには推奨されません(NRND)」ですが、代理店の在庫からも注文可能です。製品情報の購入オプションセクションMC9S08QG8CDTE製品部品ページを参照してください 。NXPセミコンダクターズ 敬具、ルイス
記事全体を表示
PDB ADC プリトリガーシーケンスエラー回復 こんにちは、NXPコミュニティの皆さん、 S32K144では、ランタイムフラッシュ消去/プログラム操作後にADC0/ADC1割り込みが停止します。 前回の質問の続きとして、S32K144におけるPDB ADCのプリトリガーシーケンスエラーから適切に復旧する方法について、いくつか説明が必要です。 以下の3つの方法を試しましたが、そのうち1つだけが正しく動作しました。 方法1(動作中): フラッシュ消去/書き込み操作を実行する前に、PDB0とPDB1を停止してください。 フラッシュ処理が完了したら、両方のPDBを再起動し、対応するISRを再度有効にします。 この方法を用いると、PDB配列のエラーは発生しない。 方法2: フラッシュメモリの消去/書き込み操作が完了した後、PDB0とPDB1を停止して再起動しました。しかし、PDBプレトリガーシーケンスエラーが発生しました。そこで、PDBモジュールを停止して再起動することで復旧を試みましたが、シーケンスエラーは解消されませんでした。 方法3: 方法3(効果なし): フラッシュ消去/書き込み操作中、PDB0とPDB1を停止または再起動しませんでした。その代わりに、操作が完了した後、保留中のPDB ISRとADC ISRがそれぞれ1つずつトリガーされました。 PDB ISR内で、以下の方法でシーケンスエラーフラグをクリアしようと試みました。 PDB0->CH[0].S &= (uint32_t)(~PDB_S_ERR_MASK); 対応するADC割り込みサービスルーチンが実行され、ADC結果レジスタを読み取ることでCOCOフラグがクリアされた。これでさらなるプリトリガーシーケンスエラーを防ぐつもりでしたが、問題は依然として解決せず、この方法はうまくいきませんでした。 私の質問は、PDBプリトリガーシーケンスエラーが発生した場合、システムをリセットせずにPDB/ADCの動作を回復し、通常のトリガー動作を再開することは可能かということです。それとも、回復不能な状態に陥るのを避けるために、PDBを事前に停止して再起動する必要があるのでしょうか? Re: PDB ADC pre trigger sequence error recovery こんにちは、 PDB_S_ERRをクリアするだけでは、ADC/PDBシーケンスが既に同期していない可能性があるため、プリトリガーシーケンスエラーからの回復には通常不十分です。テスト結果に基づくと、フラッシュ処理の前にPDBを停止し、処理後に再起動することで、この問題を回避するのが最も確実な方法であると思われます。 エラー発生後に復旧を試みる場合は、PDBとADCの両方の状態が完全に再同期されていることを確認することをお勧めします。これには、PDB の無効化、保留中の PDB ステータス フラグのクリア、保留中のすべての ADC 変換結果が読み取られていることの確認 (COCO がクリアされていること)、PDB の再有効化、および再開をトリガーする前に必要に応じて構成の再読み込みが含まれる場合があります。 RMによると、プレトリガーロックは対応するCOCOフラグが設定されたとき、プリトリガーが無効化されたとき、またはPDBが無効化されたときに解除されるため、完全なPDB無効化・有効シーケンスも検討する価値があるかもしれません。 BR、ペトル Re: PDB ADC pre trigger sequence error recovery こんにちは、PetrSさん。 私は以下の方法を試してみました。 PDB停止なしでフラッシュ消去操作を行った後、マイクロコントローラは保留中のADC ISRコールバックを1つ受け取りました。そのコールバック関数内で、ADC結果レジスタを読み取った後、以下の関数を呼び出してPDBシーケンスエラーをチェックし、エラーから回復します。 「`c」 void PDB1_check_seq_err(void) ヤージュ ((PDB1->CH[0].S & PDB_S_ERR_MASK) != 0) の場合 ヤージュ PDB1->CH[0].S &= (uint32_t)(~PDB_S_ERR_MASK); PDB1->SC &= (uint32_t)(~PDB_SC_PDBEN_MASK); PDB1->SC |= (uint32_t)PDB_SC_PDBEN_MASK; PDB1->SC |= (uint32_t)PDB_SC_SWTRIG_MASK; } } void PDB0_check_seq_err(void) ヤージュ ((PDB0->CH[0].S & PDB_S_ERR_MASK) != 0) の場合 ヤージュ PDB0->CH[0].S &= (uint32_t)(~PDB_S_ERR_MASK); PDB0->SC &= (uint32_t)(~PDB_SC_PDBEN_MASK); PDB0->SC |= (uint32_t)PDB_SC_PDBEN_MASK; PDB0->SC |= (uint32_t)PDB_SC_SWTRIG_MASK; } } 「`」 私が使用した復旧手順は以下のとおりです。 1. `ERR`フラグをクリアします。 2. PDBを停止します。 3. PDBを再度有効化して再起動します。 この停止と開始のシーケンスにより、すべてが再び正常に動作するようになります。後続のプリトリガーが発生し、ADC ISRコールバックが正常に呼び出されます。 しかし、なぜこれが必要なのか、私にはまだ完全には理解できていません。リファレンスマニュアルには、「ERR」条件をクリアし、ADC結果レジスタ(「COCO」をクリア)を読み取ることでロックが解除されると述べられています。私のCASEでは、それだけでは十分ではなく、回復にはPDBのストップ/ストップシーケンスが必要です。 また、`PDBn->SC |= PDB_SC_SWTRIG_MASK` は厳密には必須ではないことも確認しました。ソフトウェアトリガーを発行しなくても、ロックは解除され、PDB再起動後にADC ISRの実行が再び始まります。 RMでは「ERR」と「COCO」をクリアすればロックが解除されるはずだと示されているにもかかわらず、なぜPDBを停止して再起動する必要があるのか、説明していただけますか?
記事全体を表示
MCU_performreset is not happening in S32J100 HI,  I am trying to reset the controller using the Mcu_performReset function but the PC is coming out of the function with reset and the function which handles this reset mechanism Power_Ip_Specific_RequestPerformReset() has no data depending on the Functional or destructive reset. i tried configuring the S32DS but issue persist. i am using SW32J100_RTD_R23-11_0.8.0_CD04_HF01, S32DS 3.6.7 version. can you please suggest where i am going wrong? Thanks, Amol Re: MCU_performreset is not happening in S32J100 Hi @PavelL , I understood the Scenario, Will connect to the Field engineers for this issue. Thanks for the support. Regards, Amol  Re: MCU_performreset is not happening in S32J100 Hello @Ajadhav5 , I am writing to you in regard to a product currently in your possession – an NPI (New Product Introduction) which has not been officially launched yet. Please be advised that customers who have been granted early access to such products have assigned their field engineers. Your designated field engineer should serve as your primary support channel for any issues, concerns or queries you may have about this product. Our online support team will be opening a wider range of support for this product once it has been officially released. Until then, we will not be equipped to provide the desired assistance. We appreciate your understanding in this matter and look forward to further enhance our partnership with you. Should you have any questions, please feel free to connect with your field engineer or contact my team and me directly. Thank you for your understanding. Best regards, Pavel
記事全体を表示
PDB ADC 预触发序列错误恢复 NXP社区的各位好, S32K144 运行时闪存擦除/编程操作后,ADC0/ADC1 中断停止 作为我之前问题的延续,我需要一些关于如何正确恢复 S32K144 上的 PDB ADC 预触发序列错误的说明。 我尝试了以下三种方法,但只有一种方法有效。 方法一(有效): 在执行闪存擦除/编程操作之前,请先停止 PDB0 和 PDB1。 闪存操作完成后,重新启动两个 PDB 并重新启用相应的 ISR。 采用这种方法,不会出现PDB序列错误。 方法2: 闪存擦除/编程操作完成后,我停止并重新启动了 PDB0 和 PDB1。然而,PDB 预触发序列出现错误。然后我尝试通过停止并重新启动 PDB 模块来恢复,但序列错误仍然存在。 方法三: 方法三(无效): 在闪存擦除/编程操作期间,我没有停止或重新启动 PDB0 和 PDB1。相反,操作完成后,产生了一个待处理的 PDB ISR 和一个 ADC ISR 触发信号。 在 PDB ISR 中,我尝试使用以下方法清除序列错误标志: PDB0->CH[0].S &= (uint32_t)(~PDB_S_ERR_MASK); 然后执行相应的 ADC ISR,读取 ADC 结果寄存器清除 COCO 标志。我原本期望这样做可以防止进一步的预触发序列错误,但问题仍然存在,这种方法并没有奏效。 我的问题是:一旦触发了 PDB 预触发序列错误,是否有可能在不 RESET 系统的情况下恢复 PDB/ADC 操作并恢复正常触发信号?或者是否需要事先停止并重新启动 PDB,以避免进入不可恢复的状态? Re: PDB ADC pre trigger sequence error recovery 嗨 PetrS, 我尝试了以下方法。 在未停止 PDB 的情况下执行闪存擦除操作后,微控制器收到一个待处理的 ADC ISR 回调。在该回调函数中,读取 ADC 结果寄存器后,我调用以下函数来检查和恢复 PDB 序列错误: ```c void PDB1_check_seq_err(void) { 如果 ((PDB1->CH[0].S & PDB_S_ERR_MASK) != 0) { PDB1->CH[0].S &= (uint32_t)(~PDB_S_ERR_MASK); PDB1->SC &= (uint32_t)(~PDB_SC_PDBEN_MASK); PDB1->SC |= (uint32_t)PDB_SC_PDBEN_MASK; PDB1->SC |= (uint32_t)PDB_SC_SWTRIG_MASK; } } void PDB0_check_seq_err(void) { 如果 ((PDB0->CH[0].S & PDB_S_ERR_MASK) != 0) { PDB0->CH[0].S &= (uint32_t)(~PDB_S_ERR_MASK); PDB0->SC &= (uint32_t)(~PDB_SC_PDBEN_MASK); PDB0->SC |= (uint32_t)PDB_SC_PDBEN_MASK; PDB0->SC |= (uint32_t)PDB_SC_SWTRIG_MASK; } } ``` 我使用的恢复顺序是: 1. 清除 `ERR` 标志。 2. 停止 PDB。 3. 重新启用并重启 PDB。 通过这种停止和启动序列,一切都恢复正常:后续的预触发发生,ADC ISR 回调正常调用。 然而,我仍然不太明白为什么有必要这样做。参考手册指出,清除“ERR”条件并读取ADC结果寄存器(这将清除“COCO”)应该可以释放锁定。就我而言,仅靠这一点似乎还不够,需要执行 PDB 停止/启动序列才能恢复。 另外,我观察到 `PDBn->SC |= PDB_SC_SWTRIG_MASK` 并不是严格必需的。即使没有发出软件触发信号,PDB 重启后,锁定也会被释放,ADC ISR 也会再次开始执行。 请问为什么在这种情况下需要停止并重新启动 PDB,即使 RM 指示清除 `ERR` 和 `COCO` 应该可以释放锁? Re: PDB ADC pre trigger sequence error recovery 您好, 仅清除 PDB_S_ERR 通常不足以从触发信号前序列错误中恢复,因为 ADC/PDB 序列可能已经失去同步。根据您的测试结果,在刷写操作之前停止 PDB,然后在刷写操作之后重新启动 PDB,似乎是防止出现这种情况的最可靠方法。 如果在发生错误后尝试恢复,我建议确保 PDB 和 ADC 的状态完全重新同步。这可能包括禁用 PDB、清除待处理的 PDB 状态标志、确保所有待处理的 ADC 转换结果都已读取(COCO 已清除)、重新启用 PDB,以及在执行触发信号恢复之前根据需要重新加载配置。 根据 RM 的说法,当相应的 COCO 标志被设置、预触发被禁用或 PDB 被禁用时,预触发锁将被释放,因此完整的 PDB 禁用/启用序列也可能值得研究。 BR,彼得
記事全体を表示
S32J100 中 MCU_performreset 没有执行。 你好, 我尝试使用 Mcu_performReset 函数 RESET 控制器,但 PC 从该函数退出时处于 RESET 状态,而处理此 RESET 机制的函数Power_Ip_Specific_RequestPerformReset () 没有数据,取决于功能性 RESET 还是破坏性 RESET。我尝试配置S32DS,但问题仍然存在。 我使用的是 SW32J100_RTD_R23-11_0.8.0_CD04_HF01,S32DS 3.6.7 版本。 请问我哪里做错了? 谢谢! 阿莫尔 Re: MCU_performreset is not happening in S32J100 嗨@PavelL , 我了解了情况,会联系现场工程师解决这个问题。 感谢您的支持。 此致, 阿莫尔 Re: MCU_performreset is not happening in S32J100 你好@Ajadhav5 , 我写信给您是关于您目前拥有的一款产品——一款尚未正式上市的新产品(NPI)。 请注意,已获准提前使用此类产品的客户已指派了现场工程师。您指定的现场工程师应作为您解决有关本产品任何问题、疑虑或疑问的主要支持渠道。 我们的在线支持团队将在该产品正式版本发布后,提供更广泛的支持服务。在此之前,我们将无法提供所需的帮助。 感谢您对此事的理解,我们期待进一步加强与您的合作关系。如有任何疑问,请随时联系您的现场工程师,或直接联系我的团队和我。 感谢您的理解。 顺祝商祺! 帕维尔
記事全体を表示
MC33774 Balance Ctrl HI. 我当前使用33665A+33774的采样系统,我在控制MC33774均衡开启时遇到一个问题,我希望使用定时器均衡的模式,并且设置超时时间为10S来开启均衡,但是当我按照“MC33774_ADDR_BAL_GLOB_TO_TMR->MC33774_ADDR_BAL_TMR_CH_ALL->MC33774_ADDR_BAL_GLOB_CFG”的顺序开启均衡时,我发现MC33774_ADDR_BAL_TMR_CH_ALL的数据在下发后会马上清0导致均衡无法开启。 我想知道这是什么原因导致的?另外我看到手册中说均衡会以奇偶交替的方式开启,这部分是奇数通道在前还是偶数通道在前,有寄存器可以控制吗? Re: MC33774 Balance Ctrl 你可以用公司的邮箱提交ticket的形式获得这个手册,但是再community您被识别为C客户因为用了自己的邮箱所以无法share Home Re: MC33774 Balance Ctrl 非常感谢,这个问题解决了。请问下这个操作流程手册是开源的吗? Re: MC33774 Balance Ctrl 尝试下按照下面的steps:
記事全体を表示
CODEWARRIOR 11.1 I used a M9S08QG8 micro chip, with this code in 1984. I am using windows 11 now. Is there a compiler that will debug this code Now. Also, is this chip still made? void my_main(void) { initial(); } void initial(void) { if(loopcount==2){goto initend;} PTADD_PTADD0 = 0; //io direction PTADD_PTADD1 = 0; PTADD_PTADD2 = 0; PTADD_PTADD3 = 1; PTBDD_PTBDD0 = 1; PTBDD_PTBDD1 = 1; //PTADD_PTADD4 = 0; //io direction //PTADD_PTADD5 = 0; //PTBDD_PTBDD6 = 1; //osc direction //PTBDD_PTBDD7 = 0; //PTBPE_PTBPE6 = 1; //pullup resistor //PTBPE_PTBPE7 = 0; //PTAPE_PTAPE0 = 0; //PTAPE_PTAPE1 = 0; //PTAPE_PTAPE2 = 0; //PTAPE_PTAPE4 = 0; //PTAPE_PTAPE5 = 0; //ICSC1_IREFS = 0; //select external osc param //ICSC1_CLKS0 = 0; //ICSC1_CLKS1 = 1; //ICSC2_EREFS = 0; //ICSC2_BDIV0 = 0; //ICSC2_BDIV1 = 0; PTAD_PTAD0 = 0; PTAD_PTAD1 = 0; PTAD_PTAD2 = 0; PTAD_PTAD3 = 0; PTBD_PTBD0 = 1; PTBD_PTBD1 = 1; bobbin_one_white=0; bobbin_two_white=0; bobbin_one_black=0; bobbin_two_black=0; bobbin_count_one=0; bobbin_count_two=0; bobbin_one_count_up_down = 20; bobbin_two_count_up_down = 20; bobbin_three_count_up_down = 20; bobbin_four_count_up_down = 20; rewind1 = 1; rewind2 = 1; rewind3 = 1; rewind4 = 1; programlength = 10; buzzcount = 0; buzzdelay = 0; buzzonoff = 1; needle = 20; delay = 100; light = 20; speed = 1000; c=0; //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=1;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=0;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=1;} //__RESET_WATCHDOG(); for(speed=0;speed<=1000;speed++){ PTAD_PTAD3=0;} PTAD_PTAD3 = 0; //buzzonoff = 1; buzzonoff = 0; initend: PTAD_PTAD3 = 1; //PTAD_PTAD3 = 0; c=0; peace(); } void peace(){ loopcount=2; onemoretime: buzzer(); //__RESET_WATCHDOG(); for(speed=0;speed<=delay;speed++){} if(PTAD_PTAD2==0){PTAD_PTAD3=0;buzzonoff=1;} //if(PTAD_PTAD2==0){setlength();} // winding bobbin on bobbin winder if(PTAD_PTAD0==0){bobbin_one_black++;PTBD_PTBD1=0;if(bobbin_count_one==1){bobbin_count_one=2;}} if(PTAD_PTAD0==1){bobbin_one_white++;PTBD_PTBD1=1;halfturna=1;bobbin_count_one=1;} if(bobbin_count_one==2){ if(halfturna == 1){fullturna=1;bobbin_count_one=0;}} // hook sewing if(PTAD_PTAD1==0){bobbin_two_black++;PTBD_PTBD0=0;if(bobbin_count_two==1){bobbin_count_two=2;}} if(PTAD_PTAD1==1){bobbin_two_white++;PTBD_PTBD0=1;halfturnb=1;bobbin_count_two=1;} if(bobbin_count_two==2){ if(halfturnb== 1){fullturnb=1;bobbin_count_two=0;}} if(fullturna==1)goto bobbinwinder; if(fullturnb==1)goto hook; goto onemoretime; Re: CODEWARRIOR 11.1 你好, CodeWarrior 工具版本 11.1 支持 Windows 11,该工具支持不同的连接方式 [P&E USB Multilink Universal / USB Multilink、P&E Cyclone、开源 BDM、P&E 全芯片仿真]。 您可以从以下链接下载该工具: CodeWarrior ® for MCUs (Eclipse IDE) v11.1 该设备状态为“不建议用于新设计 (NRND)”,但您仍然可以从代理商的现有库存中订购,请参阅购买选项部分的产品零件页面: MC9S08QG8CDTE 产品信息 | NXP 半导体 此致敬礼,路易斯
記事全体を表示
imx93 free running ccm clko via device tree only hi everybody, i would like to output a free-running 12288000Hz clock on MX93_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3 according to the manual this should be possible to derive from IMX93_CLK_AUDIO_PLL. can anybody give a hint on how to do this via device-tree only? Linux Re: imx93 free running ccm clko via device tree only refer to the imx93 clock driver, you need add new pll to support this, couldn't modify the dts only
記事全体を表示
猎鹰模式下的 OP-TEE || iMX8MP_EVK 您好, 我想在 i.MX8MP EVK 上启用OP-TEE 和 Falcon 模式。 机器: imx8mpevk 代码库: https://github.com/nxp-imx/imx-manifest 分支: imx-linux-walnascar XML: imx-6.12.34-2.1.0.xml 目前,我使用meta-imx-fastboot (lf-6.12.20-2.0.0-secure)通过 Falcon 模式实现快速启动。但是,当启用猎鹰模式时,OP-TEE 将被禁用。 根据我的要求,我需要同时启用 OP-TEE 和 Falcon 模式。 请问如何在 i.MX8MP EVK 的 Falcon 模式下启用 OP-TEE? i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano 安全 Yocto Project Re: OP-TEE in Falcon Mode || iMX8MP_EVK 嗨@Sanjiv_Mns 目前 meta-imx-fastboot 层不支持 OP-TEE。理论上是可行的,但目前尚未实现。 说明:在默认的 电路板支持包。 中,OP-TEE 的起始地址和大小是在 U-Boot 的正确启动阶段根据rom_pointer计算的(参见: https://github.com/nxp-imx/uboot-imx/blob/lf-6.12.20-2.0.0/arch/arm/mach-imx/dt_optee.c#L13) 。 与 U-Boot 本身相比,SPL 中的rom_pointer具有不同的含义/值。因此,如果不进行进一步修改,就无法从 SPL 执行ft_add_optee_node函数。 谢谢! 埃琳娜 Re: OP-TEE in Falcon Mode || iMX8MP_EVK 嗨@elena_popa 请问如何才能进一步实现SPL → OP-TEE → Linux启动流程?我想了解使其可靠运行所需的正确步骤和元器件。 我还找到了以下链接,其中在STM32MP平台上实现了类似的流程: https://patchwork.ozlabs.org/project/uboot/cover/[email protected]/ 请问这种方法是否适用于我的使用场景,或者其中的部分内容是否可以重复使用或修改,以在我的平台上实现相同的启动顺序? Re: OP-TEE in Falcon Mode || iMX8MP_EVK 嗨@elena_popa 我已经完成了这项操作,现在它在我的 i.MX8MP 开发板上启动成功了。 当前启动流程如下: SPL → ATF → OP-TEE → Linux 一切运行正常。感谢你的评论@elena_popa   [ 0.412349] optee:探测管道方法。 [ 0.412373] optee:修订版 4.6 (788dc101b05ae47b) [ 0.412678] optee:动态共享内存已启用 [ 0.413062] optee:已初始化驱动程序 Re: OP-TEE in Falcon Mode || iMX8MP_EVK 嗨@Sanjiv_Mns 我成功地在 Falcon 模式下为 i.MX 8MP 启用并运行了 OP-TEE。 i.MX 8MP 的启动流程为:SPL -> ATF -> OP-TEE -> Linux 步骤如下: 1. 删除 meta-imx-fastboot 层的 conf/layer.conf 中的以下行。 MACHINE_FEATURES:remove = "optee" 2.在imx-boot mkimage 源代码中,修改iMX8M/mkimage_fit_atf_kernel.sh脚本,将 OP-TEE 二进制文件添加到 FIT 镜像中。 6a7,9 > # keep backward compatibility > [ -z "$TEE_LOAD_ADDR" ] && TEE_LOAD_ADDR="0xfe000000" > 19a23,41 > [ -z "$BL32" ] && BL32="tee.bin" > PAD=../scripts/pad_image.sh > > if [ ! -f $BL32 ]; then > BL32=/dev/null > else > echo "Building with TEE support, make sure $BL31 is compiled with spd. If you do not want tee, please delete $BL32" >&2 > if [ $TEE_COMPRESS_ENABLE ]; then > echo "Start compress $BL32" >&2 > rm -f $BL32.lz4 > lz4 -9 $BL32 $BL32.lz4 >&2 > BL32=$BL32.lz4 > ./$PAD $BL32 >&2 > fi > echo "$BL32 size: " >&2 > ls -lct $BL32 | awk '{print $5}' >&2 > LOADABLES="$LOADABLES, \"tee-1\"" > fi > 71a94,103 > tee-1 { > description = "TEE firmware"; > data = /incbin/("$BL32"); > type = "firmware"; > arch = "arm64"; > compression = "none"; > load = <$TEE_LOAD_ADDR>; > entry = <$TEE_LOAD_ADDR>; > }; > 87c119 < loadables = "kernel","dtb"; --- > loadables = "tee-1","kernel","dtb"; 3. 在内核设备树中,手动添加 OP-TEE 节点(固件和保留内存)。编辑imx8mp.dtsi设备树并: - 在根节点(“/”)中添加以下 OP-TEE 固件节点。 firmware { optee { compatible = "linaro,optee-tz"; method = "smc"; }; }; - 在保留内存节点下添加 OP-TEE 保留内存区域: optee_core@56000000 { reg = <0 0x56000000 0 0x1e00000>; no-map; }; optee_shm@57e00000 { reg = <0 0x57e00000 0 0x200000>; no-map; }; 4. 构建镜像并将其写入启动设备。 5. 要检查 OP-TEE 是否已启动以及 Linux 是否已探测到驱动程序,请运行: root@imx8mp-lpddr4-evk:~# dmesg | grep optee [ 0.000000] OF: reserved mem: 0x0000000057e00000..0x0000000057ffffff (2048 KiB) nomap non-reusable optee_shm@57e00000 [ 0.000000] OF: reserved mem: 0x0000000056000000..0x0000000057dfffff (30720 KiB) nomap non-reusable optee_core@56000000 [ 2.581777] optee: probing for conduit method. [ 2.590862] optee: revision 4.8 (e7ed997213779e3d) [ 2.596363] optee: dynamic shared memory is enabled [ 2.601567] optee: initialized driver 6.如果你想测试 OP-TEE,你可以运行xtest 。 root@imx8mp-lpddr4-evk:~# xtest Run test suite with level=0 TEE test application started over default TEE instance ###################################################### # # regression+pkcs11+regression_nxp # ###################################################### * regression_1001 Core self tests o regression_1001.1 Core self tests regression_1001.1 OK o regression_1001.2 Core dt_driver self tests regression_1001.2 OK o regression_1001.3 Core transfer list self tests ..... +----------------------------------------------------- 49354 subtests of which 0 failed 161 test cases of which 0 failed 0 test cases were skipped TEE test application done! 如果您在启用过程中遇到任何问题,请告诉我。 谢谢! 埃琳娜
記事全体を表示
S32N55 HSE2 — 使用 ADKP 的 CRS(APP) 功能域安全调试身份验证 HI 我们正在为 S32N55 平台开发安全调试身份验证,并且已经通过 SDC-600 使用 ADKP (HSE_OTP_FOEM_ADKP_ATTR_ID) 成功实现了 FSS 功能域调试授权。 我们现在正尝试将其扩展到 CRS 功能域(HSE_DEBUG_DOMAIN_APP = 0x1B),并有以下问题: --- [Q1] ADKP 是否可用于 CRS 功能域安全调试身份验证? 通过 HSE_OTP_FOEM_ADKP_ATTR_ID 配置 ADKP 后,是否可以使用同一个 ADKP 通过 HSE_DEBUG_CMD_APP_CHALLENGE 进行 CRS 功能域(APP)安全调试身份验证? --- [Q2] SetOwnerDebugKeyMap() 是否需要针对每个 MU(FSS MU 与 CRS MU)单独调用? 根据 RM 对 hseOwnerDebugKeyMapConfig_t 的描述: “这项服务由拥有该设备的 MU 为每个已安装设备的所有者单独调用。 HSE FW 会根据发送此服务请求的 MU 来假定所有者身份。 我们目前的实现仅通过 FSS MU (MU0) 调用 SetOwnerDebugKeyMap() (HSE_SRV_ID_DEBUG_KEY_MAPPING),映射 aOwnerAuthRef[0] = HSE_OTP_KEY_FOEM_ADKP。 - CRS 功能域身份验证是否需要通过 CRS MU 单独调用 SetOwnerDebugKeyMap()? - 如果是这样,S32N55 上的 CRS 功能域应该使用哪个 MU 编号? --- [Q3] 每次启动时都需要调用 SetOwnerDebugKeyMap() 吗? RM表示: “仅记录 numOfAuthorizationRefEntries 和 numOfAuthenticationRefEntries, 其余条目将被忽略。 这意味着密钥映射是易失性的,不会存储在非易失性存储器 (NVM) 中。这是否意味着对于 FSS 和 CRS 域,每次启动时(在授予 SU 权限之后)都必须调用 SetOwnerDebugKeyMap()? --- [Q4] 更正 APP_CHALLENGE 的 keyRef 值 在 hseDebugAuthorizeStartCmd_t 中,keyRef 字段引用通过 hseOwnerDebugKeyMapConfig_t 映射的索引。由于我们将 aOwnerAuthRef[0] 映射为 HSE_OTP_KEY_FOEM_ADKP,因此我们发送 keyRef = 0x00 来进行 CRS 功能域身份验证。这样对吗? --- [Q5] APP_CHALLENGE 的响应大小和数据包结构 根据 hseDebugAuthorizeProofProvCmd_t 字节映射,数据包结构始终为 32 字节(2 个数据包 x 8 个字)。HSE_CR_APP_RESPONSE_SIZE = 16U 与 HSE_CR_FSS_OR_HSE_RESPONSE_SIZE = 32U。 对于 APP_CHALLENGE,主机是否应该发送: - 16 字节的 AES 加密响应 + 16 字节的零填充 = 总共 32 字节? 或者只有 16 字节? 目前,在发送 FLAG_START + DebugSignalMap(4 字节) + Response(16 字节) + FLAG_END 后,HSE2 没有响应,T32 无限期地挂起等待。当我们发送 32 字节(16 字节响应 + 16 字节零填充)时,会观察到同样的卡顿现象。 --- 供参考: - Sherpa_Cdd_AllocateChannel() 总是分配 MU0 (FSS) - SetOwnerDebugKeyMap(): aOwnerAuthRef[0] = HSE_OTP_KEY_FOEM_ADKP (0x00000302),使用 SU 权限调用 - crs_auth.cmm:DEBUG_TARGET=0x1B,OID=0xFF*16,keyRef=0x00 - AUTH_MODE_REQ 请求成功通过(已收到 HSE_DEBUG_WAITING_RESPONSE_TO_CHG 信号) - 已接收挑战码:32 字节 发送响应后,未收到来自 HSE2 的 ACK (0x4A4A4A4A)。 请参阅附件中的CMM脚本和日志以供参考。 提前谢谢您。 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, 谢谢你的建议。应要求,我创建了一个新帖子来跟踪 CRS(APP 功能域)安全调试身份验证问题: [S32N55 HSE2 — CRS(应用程序功能域)通过 hseDebugCardCmd_t 进行安全调试身份验证] (请在NXP社区搜索以上标题) 这个问题目前影响了我们的客户发货计划。请您在方便的时候尽快查看一下这篇新文章。 CMM脚本(crs_auth.cmm)新帖子中附上了日志文件。 非常感谢您的及时支持。 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, 感谢您的回复。 我们对 S32N55 上 CRS (APP) 功能域安全调试身份验证的 hseDebugCardCmd_t 实现还有其他疑问。 --- [Q1] hseDebugCardInfo_t 中的 Owner ID (ownerId) 是否与通过 hseOwnerDebugKeyMapConfig_t 配置的值相同? 我们的设备配置为单所有者场景,其中 Fss_Firmware_au8Oid[] = {0xFF * 16}。 hseDebugCardCmd_t 中的 ownerId 字段是否也应设置为 0xFF * 16? 或者它是否需要与设备所有者安装期间配置的特定值相匹配? --- [Q2] hseDebugCardCmd_t 是否需要在 APP_CHALLENGE 之后发送,还是应该代替 hseDebugAuthorizeProofProvCmd_t 发送? 根据 RM 的说法:“对于基于 APP 的选项,调试信号仅通过调试卡身份验证启用和授权(参见 hseDebugCardCmd_t)(该字段被忽略)。” 我们目前的流程: 1. AUTH_MODE_REQ (DEBUG_TARGET=0x1B) 2. rx_authmode → 已收到 HSE_DEBUG_WAITING_RESPONSE_TO_CHG 3. APP_CHALLENGE → rx_challenge(已接收 32 字节) 4. 直接发送 hseDebugCardCmd_t(跳过 hseDebugAuthorizeProofProvCmd_t) 5. HSE2 停止响应(T32 卡在 CARD_REQUEST 的 FLAG_END 处挂起) 是否应该在发送 hseDebugCardCmd_t 之前发送 hseDebugAuthorizeProofProvCmd_t (appChallengeAuth = AES256-CMAC)? 或者,是否应该在不发送 ProofProv 的情况下,直接在 rx_challenge 之后发送 hseDebugCardCmd_t? --- [Q3] 使用 MAC 方案时,hseDebugCardTag_t 的正确认证标签 (authTag) 计算方法是什么? 我们正在使用: authScheme.macScheme.macAlgo = HSE_MAC_ALGO_CMAC (0x11) authTag = AES256-CMAC(key=ADKP, data=Challenge[32 字节]) authLen = 16 这个计算结果正确吗?或者 CMAC 输入是否应包含其他字段(OID、功能域映射等)? --- [Q4] hseDebugCardCmd_t 的正确数据包结构是什么? 基于 RM 字节映射,我们目前的实现方式如下: 数据包 1(32 字节):KRI(4 字节)+ CMD(4 字节=0x5DCDEB77)+ OID(16 字节=0xFF*16)+ AuthScheme(8 字节=CMAC) 数据包 2(32 字节):启用调试域映射(bit27=0x08000000)+ 填充(28B) 数据包 3:debugDomainMapping(4B) + numOfAllowedUids(2B) + reserved(2B) + authLen(2B) + reserved(2B) + authTag(256B) 这个结构正确吗?HSE2 在接收到 OID 字段(0xFF 字节)后停止响应。 --- 请问您的邮箱地址是什么?我会把用于 CRS 认证的 CMM 文件发给你。 BRs。 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, @EddiePark 感谢你的帖子。 很高兴听到S32N55 平台的安全调试认证已经通过 SDC-600 使用 ADKP (HSE_OTP_FOEM_ADKP_ATTR_ID) 成功实现了 FSS 功能域调试授权。 我会继续协助您核实新问题的详细信息。很抱歉我没有看到您提供的 CMM 脚本和日志,能否请您再次上传以便我们参考? BR 陈银 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, @EddiePark 感谢您的回复。 本帖中已有 6 个问题,可能需要较长时间进行调查,为了提高效率,对于其他问题,我建议另开新帖进行跟踪。 正如您所提到的,会有脚本/日志作为附件供检查,但我没有在您的帖子中看到,请问它们是否会再次上传? BR 陈银 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, @EddiePark 感谢您的回复。 1.我们将一如既往地尽力解答您的疑问。 2. 我理解这是一个紧急问题,但正如我之前在支持中提到的,S32N55 仍处于预生产阶段,尚未通过社区渠道提供支持(在此期间,我们建议您直接联系您的 FAE/代理商以加快效率),因此回复可能需要较长时间。此外,使用 LC advanced 进行安全调试通常处于开发后期阶段,近期相关的文档/示例仍然有限。 给您带来的不便,敬请谅解。 BR 陈银 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, @EddiePark 感谢您的耐心等待,以下是一些初步评论供您参考。 [Q1] ADKP 是否可用于 CRS 功能域安全调试身份验证? [评论] :是的,用于应用程序功能域安全调试身份验证的密钥是从 hseOwnerDebugKeyMapConfig_t->pOwnerCardAuthenticationRef 中选择的,它可能包含 ADKP 的密钥句柄。 [Q2] SetOwnerDebugKeyMap() 是否需要针对每个 MU(FSS MU 与 CRS MU)单独调用? [评论] :SetOwnerDebugKeyMap() 应该绑定到设备所有者,而不是 MU。设备所有者可以包含多个群组,每个群组可以有多个 MU 实例。如果 FSS 和 CRS 属于同一设备所有者,则可以通过 CRS MU 或 FSS MU 调用。 [Q3] 每次启动时都需要调用 SetOwnerDebugKeyMap() 吗? 【评论】 :不应该在每次启动时都调用,配置应该保存在 SYS-IMG 或熔丝中,否则设备重新上电后安全调试将失败,这不符合安全调试的设计预期。但是,我不确定应该从当前可用资源中存储此配置的哪个位置。 [Q4] 更正 APP_CHALLENGE 的 keyRef 值 在 hseDebugAuthorizeStartCmd_t 中,keyRef 字段引用通过 hseOwnerDebugKeyMapConfig_t 映射的索引。由于我们将 aOwnerAuthRef[0] 映射为 HSE_OTP_KEY_FOEM_ADKP,因此我们发送 keyRef = 0x00 来进行 CRS 功能域身份验证。这样对吗? 【备注】 :是的,如果 ADKP 句柄是 OwnerCardAuthenticationRef 的第一个条目,并且用户想要使用 ADKP 对 CRD 调试进行身份验证,则 authKeyRef 应为 0(ADKP 句柄条目的索引)。 [Q5] APP_CHALLENGE 的响应大小和数据包结构 【注释】 :对于应用程序调试,除了调试信号映射和挑战响应数据字段外,数据包 1 中的其他未使用数据可以填充 0。 由于有关此主题的相应文件尚未完全更新(S32N55 仍处于早期阶段),因此我们能提供的信息有限。 给您带来的不便,敬请谅解。 BR 陈银 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, 再次感谢您一直以来的支持。我们完全理解 S32N55 仍处于预生产阶段,目前有关该主题的文档/资源有限。对于这些额外的问题,我们深表歉意。但由于我们的客户交货日期临近,而这是一个关键的障碍,我们不得不请求您提供更多指导。 我们已采纳您之前的评论(Q1-Q5):keyRef=0x00,ADKP 在 pOwnerCardAuthenticationRef 中,数据包 1 填充为 32 字节(debugSignalMap 4B + appChallengeAuth 16B + 未使用的 12B = 0)。 但是,我们仍然卡在 ProofProv / CARD_REQUEST 阶段。我们目前的状况: 1. AUTH_MODE_REQ (DEBUG_TARGET=0x1B) -> OK (HSE2 返回 0x4A4A4A4A) 2. APP_CHALLENGE -> OK(已收到 32 字节挑战) 3. ProofProv (hseDebugAuthorizeProofProvCmd_t): - 数据包 1 = debugSignalMap(4B=0) + appChallengeAuth(16B AES256-CMAC) + unused(12B=0) 所有 32 字节数据均已通过 SDC-600 成功传输 - >>> HSE2 在此之后没有反应 <<< SDC-600 TX 在发送约 20 字节后似乎会停止,HSE2 也不会发送任何响应帧。 请您澄清以下关于APP(CRS)功能域认证顺序的问题: [Q1] 主机发送 APP_CHALLENGE 的 ProofProv (hseDebugAuthorizeProofProvCmd_t with appChallengeAuth) 后,HSE2 是否会向主机发送中间响应帧?或者 HSE2 保持静默,等待下一个命令? 作为参考,在 FSS 功能域中,经过 ProofProv 后,HSE2 返回 0x4A4A4A4A。我们在 APP 功能域未观察到此类响应。这是预期之内的吗? [Q2] 对于 APP_CHALLENGE,ProofProv (hseDebugAuthorizeProofProvCmd_t) 和 CARD_REQUEST (hseDebugCardCmd_t) 之间的正确顺序是什么? - 选项 A:APP_CHALLENGE -> ProofProv -> (HSE2 响应?)-> 卡片请求 - 选项 B:APP_CHALLENGE -> CARD_REQUEST 直接执行(APP 跳过 ProofProv) - 选项 C:其他序列 由于 RM 指出 debugSignalMap 对于 APP 是“忽略的”,并且授权“仅通过调试卡认证”进行,那么对于 APP 功能域是否应该发送 ProofProv,或者我们应该在挑战后直接执行 CARD_REQUEST? [Q3] 请提供从 COMM_START 到最终授权响应的 APP (CRS) 功能域安全调试身份验证的完整命令序列? 我们希望确认具体的命令顺序以及哪些命令需要 HSE2 的响应,具体如下: COMM_START -> AUTH_MODE_REQ -> APP_CHALLENGE -> [ProofProv?] -> [CARD_REQUEST?] -> [final response?] 任何关于 APP/CRS 功能域的参考流程或示例都将非常有帮助,因为当前的行为(ProofProv 后 HSE2 静默)与 FSS 功能域的流程不符。 非常感谢您的理解和支持。 顺祝商祺! Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP 你好, 谢谢你的回复,我明白了,以后也会一直明白。我们会尽力提供支持。 1.我已经下载了您在另一个帖子“S32N55 HSE2 CRS 功能域身份验证未完成”中分享的 cmm 和 auth 文件,它们与当前使用的文件相同吗? 2. 对于您稍后提出的问题: [Q1] hseDebugCardInfo_t 中的 Owner ID (ownerId) 是否与通过 hseOwnerDebugKeyMapConfig_t 配置的值相同? 【评论】 :是的,hseDebugCardInfo_t 的 OID 就是设备所有者安装服务的 ownerid。 [Q2] hseDebugCardCmd_t 是否需要在 APP_CHALLENGE 之后发送,还是应该代替 hseDebugAuthorizeProofProvCmd_t 发送? [注释] :应在发送 CARD_REQUEST 之前发送 hseDebugAuthorizeProofProvCmd_t。 [Q3] 使用 MAC 方案时,hseDebugCardTag_t 的正确认证标签 (authTag) 计算方法是什么? 【备注】:抱歉,API RM 中没有关于这方面的明确描述。但是 App 功能域 的身份验证标签可能不会使用收到的质询,该质询用于 hseDebugAuthorizeProofProvCmd_t。对于用户的 CRS 功能域调试,可能是authTag = AES256-CMAC(key=ADKP, data=hseDebugCardInfo_t)。您可以尝试一下。 [Q4] hseDebugCardCmd_t 的正确数据包结构是什么? 【备注】: hseDebugCardCmd_t 的结构可以参考 HSE FW API 接口中的注释,这比 HSE FW API RM 中的描述更清晰。通过检查您分享的原始脚本,我们发现 hseDebugCardCmd_t 的结构存在一些错误,请参见附件。 如果您觉得其他文件不方便在帖子中分享,可以通过私信发送给我。 BR 陈银
記事全体を表示
ファルコンモードのOP-TEE || iMX8MP_EVK こんにちは、 i.MX8MP EVKで、OP-TEEとFalcon Modeの両方を有効にしたいです。 マシン: imx8mpevk リポジトリ: https://github.com/nxp-imx/imx-manifest Branch: imx-linux-walnascar XML: imx-6.12.34-2.1.0.xml 現在、私はmeta-imx-fastboot(lf-6.12.20-2.0.0-secure)を使用して、Falcon Mode経由で高速起動を実現しています。しかし、ファルコンモードが有効になっている場合、OP-TEEは無効になります。 私の要望としては、 OP-TEEとファルコンモードの両方を同時に有効にする必要があります。 i.MX8MP EVKのファルコンモードでOP-TEEを有効にする方法を教えていただけますか? i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Security Yocto Project Re: OP-TEE in Falcon Mode || iMX8MP_EVK こんにちは、 @Sanjiv_Mns 現在、meta-imx-fastbootレイヤーはOP-TEEをサポートしていません。原理的には可能であるはずだが、まだ実現されていない。 説明: デフォルトの BSP では、OP-TEE の開始アドレスとサイズは、 rom_pointerに基づいて U-Boot の適切なブート ステージ中に計算されます (参照: https://github.com/nxp-imx/uboot-imx/blob/lf-6.12.20-2.0.0/arch/arm/mach-imx/dt_optee.c#L13) 。 SPLにおけるrom_pointerは、U-Boot本体とは異なる意味/値を持つ。SO、 ft_add_optee_node 関数はSPLからさらに変更なしで実行できません。 ありがとうございます エレナ Re: OP-TEE in Falcon Mode || iMX8MP_EVK こんにちは、 @elena_popa OP-TEE→LinuxブートフローでSPLを達成するためにさらに進める方法→教えていただけませんか?これを確実に動作させるために必要な正しい手順と構成要素を理解したいです。 また、 STM32MP プラットフォームで同様のフローが実装されているリンクも見つけました。 https://patchwork.ozlabs.org/project/uboot/cover/[email protected]/ この方法が私のユースケースに適用できるのか、それとも一部を再利用したり、同じブートシーケンスを実現するために適応できるのか教えていただけますか? Re: OP-TEE in Falcon Mode || iMX8MP_EVK こんにちは、 @Sanjiv_Mns i.MX 8MPでOP-TEEをFalconモードで有効化して実行することに成功しました。 i.MX 8MPのブートフローは、SPL -> ATF -> OP-TEE -> Linux となります 手順は以下の通りです。 1. meta-imx-fastboot レイヤーの conf/layer.conf ファイル から次の行を削除します。 MACHINE_FEATURES:remove = "optee" 2.imx-boot mkimageのソースコードにおいて、 iMX8M/mkimage_fit_atf_kernel.shスクリプトを修正し、OP-TEEバイナリをFITイメージに追加する。 6a7,9 > # keep backward compatibility > [ -z "$TEE_LOAD_ADDR" ] && TEE_LOAD_ADDR="0xfe000000" > 19a23,41 > [ -z "$BL32" ] && BL32="tee.bin" > PAD=../scripts/pad_image.sh > > if [ ! -f $BL32 ]; then > BL32=/dev/null > else > echo "Building with TEE support, make sure $BL31 is compiled with spd. If you do not want tee, please delete $BL32" >&2 > if [ $TEE_COMPRESS_ENABLE ]; then > echo "Start compress $BL32" >&2 > rm -f $BL32.lz4 > lz4 -9 $BL32 $BL32.lz4 >&2 > BL32=$BL32.lz4 > ./$PAD $BL32 >&2 > fi > echo "$BL32 size: " >&2 > ls -lct $BL32 | awk '{print $5}' >&2 > LOADABLES="$LOADABLES, \"tee-1\"" > fi > 71a94,103 > tee-1 { > description = "TEE firmware"; > data = /incbin/("$BL32"); > type = "firmware"; > arch = "arm64"; > compression = "none"; > load = <$TEE_LOAD_ADDR>; > entry = <$TEE_LOAD_ADDR>; > }; > 87c119 < loadables = "kernel","dtb"; --- > loadables = "tee-1","kernel","dtb"; 3. カーネルデバイスツリーに、OP-TEEノード(ファームウェアと予約済みメモリ)を手動で追加します。imx8mp.dtsiデバイスツリーを編集して、以下の手順を実行してください。 - ルートノード("/")に以下のOP-TEEファームウェアノードを追加します。 firmware { optee { compatible = "linaro,optee-tz"; method = "smc"; }; }; - OP-TEEの予約済みメモリ領域をreserved-memoryノードの下に追加します。 optee_core@56000000 { reg = <0 0x56000000 0 0x1e00000>; no-map; }; optee_shm@57e00000 { reg = <0 0x57e00000 0 0x200000>; no-map; }; 4. イメージを作成し、ブートデバイスに書き込みます。 5. OP-TEEが起動しLinuxがドライバーをプローブしたかを確認するには、以下を実行します: root@imx8mp-lpddr4-evk:~# dmesg | grep optee [ 0.000000] OF: reserved mem: 0x0000000057e00000..0x0000000057ffffff (2048 KiB) nomap non-reusable optee_shm@57e00000 [ 0.000000] OF: reserved mem: 0x0000000056000000..0x0000000057dfffff (30720 KiB) nomap non-reusable optee_core@56000000 [ 2.581777] optee: probing for conduit method. [ 2.590862] optee: revision 4.8 (e7ed997213779e3d) [ 2.596363] optee: dynamic shared memory is enabled [ 2.601567] optee: initialized driver 6.OP-TEEをテストしたいなら xtestを実行することができます。 root@imx8mp-lpddr4-evk:~# xtest Run test suite with level=0 TEE test application started over default TEE instance ###################################################### # # regression+pkcs11+regression_nxp # ###################################################### * regression_1001 Core self tests o regression_1001.1 Core self tests regression_1001.1 OK o regression_1001.2 Core dt_driver self tests regression_1001.2 OK o regression_1001.3 Core transfer list self tests ..... +----------------------------------------------------- 49354 subtests of which 0 failed 161 test cases of which 0 failed 0 test cases were skipped TEE test application done! イネーブルメント中に問題があれば、ぜひ教えてください。 ありがとうございます エレナ Re: OP-TEE in Falcon Mode || iMX8MP_EVK こんにちは、 @elena_popa この作業は既に完了しており、現在私のi.MX8MPボードで正常に起動しています。 現在の起動フローは以下のとおりです。 SPL → ATF → OP-TEE → Linux すべて想定通りに動作しています。@elena_popaさん、コメントありがとうございます。   [ 0.412349] OPEE:導管方法のプロービング。 [ 0.412373] optee: リビジョン 4.6 (788dc101B05ae47b) [ 0.412678] optee: 動的共有メモリが有効です [ 0.413062] optee: 初期化されたドライバ
記事全体を表示
imx93 仅通过设备树自由运行 ccm clko 大家好, 我希望在 MX93_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3 上输出一个自由运行的 12288000Hz 时钟。 根据手册,这应该可以从 IMX93_CLK_AUDIO_PLL 中推导出来。 请问有人能提供一下仅通过设备树实现此功能的方法吗? Linux Re: imx93 free running ccm clko via device tree only 请参考imx93时钟驱动程序,您需要添加新的pll来支持此功能,仅修改dts文件是无法实现的。
記事全体を表示
S32N55 HSE2 — ADKPを用いたCRS(APP)ドメインセキュアデバッグ認証 ハイ 私たちはS32N55プラットフォーム向けのSecure Debug認証に取り組んでおり、SDC-600経由でADKP(HSE_OTP_FOEM_ADKP_ATTR_ID)を用いてFSSドメインデバッグ認可を成功裏に実装しました。 現在、これをCRSドメイン(HSE_DEBUG_DOMAIN_APP = 0x1B)に拡張しようとしており、以下の質問があります。 --- [Q1]ADKPはCRSドメインのSecure Debug認証に使えますか? HSE_OTP_FOEM_ADKP_ATTR_ID経由でADKPをプロビジョニングした後、HSE_DEBUG_CMD_APP_CHALLENGEを通じてCRSドメイン(APP)のSecure Debug認証に同じADKPを使用することは可能でしょうか? --- [Q2]SetOwnerDebugKeyMap()はMU(FSS MUとCRS MU)ごとに別々に呼び出す必要がありますか? hseOwnerDebugKeyMapConfig_t の RM の説明によると、次のようになります。 「このサービスは、所有するMUから、インストールされている各デバイスの所有者ごとに個別に呼び出されます。」 HSE FWは、このサービスリクエストが送信されたMUに基づいて所有者IDを推測します。 現在の実装では、SetOwnerDebugKeyMap() (HSE_SRV_ID_DEBUG_KEY_MAPPING) は FSS MU (MU0) を介してのみ呼び出され、aOwnerAuthRef[0] = HSE_OTP_KEY_FOEM_ADKP にマッピングされます。 - CRSドメイン認証のためにCRS MUを経由した別のSetOwnerDebugKeyMap()呼び出しが必要ですか? - もしそうなら、S32N55のCRSドメインにはどのMU番号を使うべきでしょうか? --- [Q3]SetOwnerDebugKeyMap()は毎回起動するたびに呼び出す必要がありますか? RMには次のように記載されています。 「numOfAuthorizationRefEntries と numOfAuthenticationRefEntries のみがログに記録されます。」 残りのエントリは無視されます。 これは、キーマッピングが揮発性であり、NVMには保存されないことを意味します。これは、FSSドメインとCRSドメインの両方において、起動時(SU権限が付与された後)に毎回SetOwnerDebugKeyMap()を呼び出す必要があるという意味でしょうか? --- [Q4]正しいkeyRef値APP_CHALLENGE hseDebugAuthorizeStartCmd_t では、keyRef フィールドは hseOwnerDebugKeyMapConfig_t を介してマッピングされたインデックスを参照します。aOwnerAuthRef[0] = HSE_OTP_KEY_FOEM_ADKPをマッピングするため、CRSドメイン認証のためにkeyRef = 0x00を送信します。これは正しいですか? --- [Q5] APP_CHALLENGEの応答サイズとパケット構造 hseDebugAuthorizeProofProvCmd_t バイトマップによると、パケット構造は常に 32 バイト (2 パケット x 8 ワード) です。HSE_CR_APP_RESPONSE_SIZE = 16U 対 HSE_CR_FSS_OR_HSE_RESPONSE_SIZE = 32U。 APP_CHALLENGEの場合、ホストは以下を送るべきです: - AES暗号化レスポンス16バイト+ゼロパディング16バイト=合計32バイト? - それとも16バイトだけ? 現在、FLAG_START + DebugSignalMap(4バイト) + Response(16バイト) + FLAG_END を送信した後、HSE2 は応答せず、T32 は無期限に待機状態になります。32バイト(16バイトの応答+16バイトのゼロパディング)を送信した場合も、同様のハングアップが発生します。 --- 参考までに: - Sherpa_Cdd_AllocateChannel() は常に MU0 (FSS) を割り当てます - SetOwnerDebugKeyMap(): aOwnerAuthRef[0] = HSE_OTP_KEY_FOEM_ADKP (0x00000302)、SU権限で呼び出されました - crs_auth.cmm:DEBUG_TARGET=0x1B、OID=0xFF*16、keyRef=0x00 - AUTH_MODE_REQ が正常に通過しました (HSE_DEBUG_WAITING_RESPONSE_TO_CHG を受信しました) - チャレンジ受信: 32バイト - レスポンスを送信した後、HSE2からACK(0x4A4A4A4A)を受信しませんでした。 参考資料として、添付のCMMスクリプトとログをご覧ください。 事前に感謝いたします。 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 ご回答ありがとうございます。 S32N55 hseDebugCardCmd_t CRS(APP)ドメインSecure Debug認証の実装について追加の質問があります。 --- [Q1]hseDebugCardInfo_tの所有者ID(ownerId)は、hseOwnerDebugKeyMapConfig_tでプロビジョニングされた値と同じですか? 当社のデバイスは、Fss_Firmware_au8Oid[] = {0xFF * 16} となるシングルオーナーシナリオで構成されています。 hseDebugCardCmd_t の ownerId フィールドも 0xFF * 16 に設定すべきでしょうか? それとも、デバイスオーナーのインストール時に設定された特定の値と一致させる必要があるのでしょうか? --- [Q2]hseDebugCardCmd_t APP_CHALLENGE後に送る必要があるのか、それともhseDebugAuthorizeProofProvCmd_tの代わりに送る必要があるのか? RMによると:「APPベースのオプションでは、デバッグ信号はデバッグカード認証(hseDebugCardCmd_t参照)のみ有効かつ承認されます(フィールドは無視されます)。」 現在のフロー: 1. AUTH_MODE_REQ (DEBUG_TARGET=0x1B) 2. rx_authmode → HSE_DEBUG_WAITING_RESPONSE_TO_CHG を受信しました 3. APP_CHALLENGE → rx_challenge (32バイト受信) 4. hseDebugCardCmd_t を直接送信します (hseDebugAuthorizeProofProvCmd_t はスキップされます) 5. HSE2が応答しなくなる(T32がCARD_REQUESTのFLAG_ENDでハングアップする) hseDebugAuthorizeProofProvCmd_t (appChallengeAuth = AES256-CMAC) は、hseDebugCardCmd_t より前に送信する必要がありますか? それとも、ProofProvなしでrx_challengeの直後にhseDebugCardCmd_tを送信すべきでしょうか? --- [Q3]MAC方式を使用する場合、hseDebugCardTag_tの正しい認証タグ(authTag)計算方法は何ですか? 私たちは以下を使用しています: authScheme.macScheme.macAlgo = HSE_MAC_ALGO_CMAC (0x11) authTag = AES256-CMAC(key=ADKP, data=Challenge[32 bytes]) 認証長 = 16 この計算は正しいですか?あるいは、CMACの入力には追加のフィールド(OID、ドメインマップなど)を含めるべきでしょうか? --- [Q4]hseDebugCardCmd_tの正しいパケット構造は何ですか? RMバイトマップに基づくと、現在の実装は次のようになります。 パケット 1 (32 バイト): KRI(4B) + CMD(4B=0x5DCDEB77) + OID(16B=0xFF*16) + AuthScheme(8B=CMAC) パケット 2 (32 バイト): enabledDebugDomainMap(bit27=0x08000000) + padding(28B) パケット 3: debugDomainMapping(4B) + numOfAllowedUids(2B) + reserved(2B) + authLen(2B) + reserved(2B) + authTag(256B) この構造は正しいですか?HSE2はOIDフィールド(0xFFバイト)を受信した後に応答を停止します。 --- CANメールアドレスを教えていただけませんか?CRS認証用のCMMファイルを送付します。 BRs。 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 ご提案ありがとうございます。ご要望に応じて、CRS(APP)のSecure Debug認証の問題を追跡するために新しい投稿を作成しました。 [S32N55 HSE2 — CRS(APPドメイン)セキュアデバッグ認証(hseDebugCardCmd_t経由) (上記のタイトルをNXPコミュニティで検索してください) この問題が現在、お客様の配達スケジュールを妨げています。できるだけ早く新しい投稿をご覧いただけますか? CMMスクリプト(crs_auth.cmm)ログファイルは新しい投稿に添付されています。 緊急のサポートに心より感謝いたします。 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 @EddiePark 投稿ありがとうございます。 S32N55プラットフォームのSecure Debug認証が、SDC-600経由でADKP(HSE_OTP_FOEM_ADKP_ATTR_ID)を用いてFSSドメインデバッグ認証を成功裏に実装したことを嬉しく思います。 引き続き、新しい問題の詳細確認をお手伝いいたします。添付のCMMスクリプトとログを確認できなかったことをお詫び申し上げます。よろしければ、再度アップロードして共有していただけますでしょうか? BR チェイン Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 @EddiePark ご返信ありがとうございます。 この投稿には既に6つの質問があり、調査には比較的長い時間がかかる可能性があります。効率を向上させるため、追加の質問については、追跡用の新しい投稿を作成することをお勧めします。 ご指摘のとおり、確認用のスクリプトやログが添付されているとのことですが、投稿には見当たりません。再度アップロードしていただけますでしょうか? BR チェイン Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 @EddiePark ご返信ありがとうございます。 1.いつも通り、ご質問にできる限りサポートいたします。 2. 緊急の問題であることは理解していますが、前回のサポートで述べたように、S32N55はまだプリプロダクション段階にあり、コミュニティチャネルでのサポートはまだされていません(この期間中は、効率化を加速するために直接FAE/代理店に連絡することをお勧めします)そのため、返信には比較的長い時間がかかります。さらに、 LC Advancedによるセキュアデバッグは通常、比較的開発の後期段階にあり、近年もドキュメントやサンプルは限られています。 ご迷惑をおかけして申し訳ございません。 BR チェイン Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 @EddiePark ご辛抱いただきありがとうございます。以下に、参考までにいくつかの初期コメントを記載します。 [Q1]ADKPはCRSドメインのSecure Debug認証に使えますか? [コメント]: はい、アプリドメインのセキュアデバッグ認証に使用される鍵はhseOwnerDebugKeyMapConfig_t->pOwnerCardAuthenticationRefから選択されており、ADKPのキーハンドルを含む可能性があります。 [Q2]SetOwnerDebugKeyMap()はMU(FSS MUとCRS MU)ごとに別々に呼び出す必要がありますか? [コメント] : SetOwnerDebugKeyMap() は MU ではなく Device owner にバインドする必要があります。デバイス所有者は複数のコホートを含み、複数のMUインスタンスを持つこともあります。FSSとCRSが同じデバイス所有者に含まれている場合、CRS MUまたはFSS MUによって呼び出されることがあります。 [Q3]SetOwnerDebugKeyMap()は毎回起動するたびに呼び出す必要がありますか? [コメント]: 毎回起動するたびに呼び出してはいけません。設定はSYS-IMGまたはヒューズに保存されるべきです。そうでなければ、デバイスの再電源後にセキュアデバッグが失敗し、セキュアデバッグの設計期待を満たしていません。しかし、現在利用可能なリソースからこの設定をどこに保存すればよいのか分かりません。 [Q4]正しいkeyRef値APP_CHALLENGE hseDebugAuthorizeStartCmd_t では、keyRef フィールドは hseOwnerDebugKeyMapConfig_t を介してマッピングされたインデックスを参照します。aOwnerAuthRef[0] = HSE_OTP_KEY_FOEM_ADKPをマッピングするため、CRSドメイン認証のためにkeyRef = 0x00を送信します。これは正しいですか? [コメント]: はい、ADKPハンドルがOwnerCardAuthenticationRefの最初のエントリで、ユーザーがADKPを使ってCRDデバッグを認証したい場合、authKeyRefは0(ADKPハンドルエントリのインデックス)にすべきです。 [Q5] APP_CHALLENGEの応答サイズとパケット構造 [コメント]: App Debugでは、デバッグ信号マップとチャレンジ応答データに加え、パケット1の未使用データは0で埋めることができます。 対応する文書はまだこのテーマに完全には更新されていない(S32N55はまだ初期段階)ため、提供できる情報は限られています。 ご迷惑をおかけして申し訳ございません。 BR チェイン Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 改めて、皆様の継続的なご支援に感謝いたします。S32N55がまだプリプロダクション段階にあり、このトピックに関するドキュメントやリソースが限られていることは十分理解しています。追加の質問をして申し訳ありませんが、お客様の配達スケジュールが近づいており、これが重大な障害となるため、もう少し詳しいご助言をお願いしたいと思い申し上げます。 以前のコメント(Q1-Q5)を適用しました:keyRef=0x00、pOwnerCardAuthenticationRefのADKP、そしてパケット1は32バイトに埋められています(debugSignalMap 4B + appChallengeAuth 16B + unused 12B = 0)。 しかし、依然としてProofProv / CARD_REQUESTの段階で処理が滞っています。現在の状況: 1. AUTH_MODE_REQ (DEBUG_TARGET=0x1B) -> OK (HSE2 は 0x4A4A4A4A を返します) 2. APP_CHALLENGE -> OK(32バイトのチャレンジを受信しました) 3. ProofProv (hseDebugAuthorizeProofProvCmd_t): - パケット 1 = debugSignalMap(4B=0) + appChallengeAuth(16B AES256-CMAC) + unused(12B=0) - 32バイトすべてがSDC-600経由で正常に送信されました - >>> この後、HSE2 から応答がありません <<< SDC-600 TXは、約20バイト送信した直後に停止し、HSE2は応答フレームを一切送信しないようです。 APP(CRS)ドメイン認証の順序について、以下の点を説明していただけますか? [Q1]ホストがProofProv(appChallengeAuth付きhseDebugAuthorizeProofProvCmd_t)APP_CHALLENGEを送った後、HSE2は中間応答フレームをホストに返しますか?それともHSE2は沈黙したまま、次のコマンドを待つのでしょうか? 参考までに、FSSドメインでは、ProofProvの後、HSE2は0x4A4A4A4Aを返します。APPドメインでは、そのような反応は観察されませんでした。これは想定内のことでしょうか? [Q2]ProofProv(hseDebugAuthorizeProofProvCmd_t)とCARD_REQUEST(hseDebugCardCmd_t)の正しい順序はAPP_CHALLENGE? - オプションA:APP_CHALLENGE -> ProofProv -> (HSE2応答?)-> カードリクエスト - オプションB:APP_CHALLENGE → CARD_REQUESTに直接送信(APPの場合はProofProvをスキップ) - オプションC:その他のシーケンス RMはAPPではdebugSignalMapが「無視」され、認証は「デバッグカード認証のみで行われる」と述べているので、APPドメインに対してProofProvを送るべきでしょうか、それともチャレンジ後直接CARD_REQUESTに送るべきでしょうか? [Q3]APP(CRS)ドメインのSecure Debug認証のCOMM_STARTから最終承認応答までの完全なコマンドシーケンスを教えていただけますか? 正確なコマンドの順序と、HSE2からの応答を期待するコマンドについて確認したいと思います。具体的には以下のとおりです。 COMM_START -> AUTH_MODE_REQ -> APP_CHALLENGE -> [ProofProv?] -> [CARD_REQUEST?] -> [最終応答?] APP/CRSドメインに関する参照フローや例があれば大変助かります。現状の動作(ProofProv後のHSE2がサイレントになる)はFSSドメインのフローと一致しないためです。 ご理解とご支援に心より感謝いたします。 よろしくお願いいたします。 Re: S32N55 HSE2 — CRS(APP) Domain Secure Debug Authentication using ADKP こんにちは、 ご返信ありがとうございます。理解しましたし、これからもずっと理解し続けます。サポートするよう努めています。 1.他の投稿から共有されたCMMと認証ファイルをダウンロードしました。S32N55 HSE2 CRSドメイン認証が完了しませんが、現在使われているものは今も同じものですか? 2. 下記の質問については、以下をご覧ください。 [Q1]hseDebugCardInfo_tの所有者ID(ownerId)は、hseOwnerDebugKeyMapConfig_tでプロビジョニングされた値と同じですか? [コメント] : はい、hseDebugCardInfo_t の OID は、デバイス所有者インストールサービスの ownerid です。 [Q2]hseDebugCardCmd_t APP_CHALLENGE後に送る必要があるのか、それともhseDebugAuthorizeProofProvCmd_tの代わりに送る必要があるのか? [コメント] : hseDebugAuthorizeProofProvCmd_t は CARD_REQUEST を送信する前に送信する必要があります [Q3]MAC方式を使用する場合、hseDebugCardTag_tの正しい認証タグ(authTag)計算方法は何ですか? [コメント]: API RM にこれに関する明確な説明がなくて申し訳ありません。しかし、App ドメインの認証タグは受け取ったチャレンジを使わず、チャレンジはhseDebugAuthorizeProofProvCmd_tに使われます。ユーザーのCRSドメインデバッグの場合、authTag = AES256-CMAC(key=ADKP, data=hseDebugCardInfo_t)かもしれません。試してみてはどうだ。 [Q4]hseDebugCardCmd_tの正しいパケット構造は何ですか? [コメント]: hseDebugCardCmd_tの構造はHSE FW API インターフェースのコメントを参照でき、これはHSE FW API RMの説明よりも明確です。元のスクリプトを確認したところ、構造hseDebugCardCmd_tに関するいくつかの誤りが見つかりました。添付の単語を参照してください。 投稿内で共有するのが都合の悪いその他のファイルについては、プライベートメッセージで私に送ってください。 BR チェイン
記事全体を表示
MC33774 バランス制御 こんにちは。 現在、33665A+33774 サンプリングシステムを使用しています。MC33774 イコライゼーションの開始を制御する際に問題が発生しました。タイマーイコライゼーションモードを使用し、タイムアウトを 10 秒に設定してイコライゼーションを開始しようとしました。しかし、「MC33774_ADDR_BAL_GLOB_TO_TMR->MC33774_ADDR_BAL_TMR_CH_ALL->MC33774_ADDR_BAL_GLOB_CFG」の順序でイコライゼーションを開始したところ、MC33774_ADDR_BAL_TMR_CH_ALL のデータが送信後すぐに 0 にクリアされてしまい、イコライゼーションが開始されないことがわかりました。 何が原因なのか知りたいです。また、マニュアルにはイコライゼーションが奇数チャンネルと偶数チャンネルで交互に有効になると書いてありました。これは奇数チャンネルが先に処理されるという意味でしょうか、それとも偶数チャンネルが先に処理されるという意味でしょうか?これを制御できるレジスタはありますか? Re: MC33774 Balance Ctrl このマニュアルは、会社のメールアドレスを使用してチケットを送信することで入手できますが、ご自身のメールアドレスを使用したため、コミュニティでは顧客Cとして識別されるため、そのメールアドレスを共有することはできません。 家 Re: MC33774 Balance Ctrl 以下の手順を試してみてください。 Re: MC33774 Balance Ctrl どうもありがとうございました。問題は解決しました。このユーザーマニュアルはオープンソースでしょうか?
記事全体を表示
MCXN FlexCOMM support for dual I2C and UART? Per the FlexCOMM configuration, it is possible to set PERSEL to 0x7 to enable dual UART and I2C functionality on a single FlexCOMM (with four pins). Several questions regarding this functionality: Do both channels operate simultaneously and independently? How is this handled in the interrupt handler? Is there support in the MCUXpresso Config Tool for configuring the peripheral driver to operate in this mode? Is there support in the SDK for utilizing this mode? Thank you for your time. Board Design Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) MCXN Re: MCXN FlexCOMM support for dual I2C and UART? Hi @WilliamDavy  Yes, simultaneous UART+I2C is possible on MCXN. 1. Do both channels operate simultaneously and independently? They can operate simultaneously, but not fully independently. The MCX N23x RM says “UART and I2C can be used simultaneously with limited functionality” , and the detailed LP_FLEXCOMM description says LPUART and LPI2C “can be selected at the same time with reduced interface” 2 How is this handled in the interrupt handler? The LP_FLEXCOMM interface generates a single interrupt from the configured peripheral communications function(s). When the LP_FLEXCOMM interface is configured for both LPUART and LPI2C functions, you can read the source of the interrupt from ISTAT. 3.Is there support in the MCUXpresso Config Tool for configuring the peripheral driver to operate in this mode? No 4.Is there support in the SDK for utilizing this mode? Yes, you can refer to this example. BR Harry
記事全体を表示
MCXN FlexCOMM 是否支持双 I2C 和 UART? 根据 FlexCOMM 配置,可以将 PERSEL 设置为 0x7,以在单个 FlexCOMM(具有四个引脚)上启用双 UART 和 I2C 功能。 关于此功能,有几个问题: 这两个通道是同时独立运行的吗? 中断处理程序是如何处理这种情况的? MCUXpresso 配置工具是否支持配置外设驱动程序以在此模式下运行? SDK 是否支持使用此模式? 感谢您抽出时间。 电路板设计 通信与控制(I3C | I2C | SPI | FlexCAN | 以太网 | FlexIO) MCX N Re: MCXN FlexCOMM support for dual I2C and UART? 嗨@WilliamDavy 是的,MCXN 可以同时支持 UART 和 I2C。 1. 这两个通道是否同时独立运行? 它们可以同时运行,但不能完全独立运行。MCX N23x RM 表示“UART 和 I2C 可以同时使用,但功能有限”。 LP_FLEXCOMM 的详细描述指出,LPUART 和 LPI2C“可以同时选择,接口也相应减少”。 2 中断处理程序如何处理这种情况? LP_FLEXCOMM 接口从配置的外设通信功能生成单个中断。当 LP_FLEXCOMM 接口同时配置为 LPUART 和 LPI2C 功能时,您可以从 ISTAT 读取中断源。 3.MCUXpresso 配置工具是否支持配置外设驱动程序以在此模式下运行? 无 4. SDK 是否支持使用此模式? 是的,您可以参考这个例子。 BR 哈里
記事全体を表示
詐欺に遭わずに失ったビットコインを取り戻す方法 まさか自分が仮想通貨投資詐欺の被害者になるとは想像もしていませんでした。他の多くの人と同じように、私も高利回りを約束され、投資は安全だと信じ込まされていました。有望な仮想通貨投資として始まったものが、あっという間に私がこれまで経験した中で最も辛い出来事の一つへと変わってしまった。多くのファイナンシャル成長とセキュリティを求める人々と同様に、私は正当な投資プラットフォームのように見えるものを信頼していました。ウェブサイトはプロフェッショナルな印象で、担当者の対応も説得力があり、誠実だった。やがて、私は自分とファミリのためにより良いFUTUREを築いていると信じて、合計21万ユーロをビットコインに投資しました。そして、何の予告もなく、すべてが変わった。資金を引き出そうとした際、遅延や言い訳、追加ペイメントの要求に直面しました。その後まもなく、連絡は完全に途絶えた。私は巧妙な詐欺の被害に遭ったことが、痛いほど明らかになった。その感情的な衝撃は計り知れないものだった。裏切られたような気持ちになり、恥ずかしく、打ちのめされた。一生懸命稼いだお金は消え、自信や心の平穏、数えきれないほどの自己非難の瞬間、そしてこの大きな喪失から立ち直れないのではないかという増す恐怖も失われました。この辛い時期、私は定期的にセラピストに何が起こったのかを話しました。彼女は、その喪失が私の精神状態と全体的な幸福感にどれほど大きな影響を与えているかを理解してくれた。彼女は、Digital Light Solutionのウェブサイト(https://digitallightsolution.com/ )に連絡を取るように勧めてくれました。彼らのチームと初めて接した時から、私は長い間感じていなかった感情、つまり希望を感じた。彼らは私のCASEをプロフェッショナリズムと忍耐、理解をもって対応してくれました。何よりも重要なのは、彼らが耳を傾けてくれたことだ。人生で最も暗い時期の一つに、Digital Light Solutionの指導とサポートが自信を取り戻し、前向きな一歩を踏み出す助けとなりました。今日、私が自分の体験を語るのは、感謝の気持ちを表すためだけでなく、他の人々に警告するためでもあります。仮想通貨詐欺は日々巧妙化している。偽の投資プラットフォーム、恋愛詐欺、オンラインの求人詐欺が、世界中の無実の人々の人生を破壊し、貯蓄を奪っています。この経験から私が学んだ教訓を一つ挙げるとすれば、それは投資する前に必ず徹底的な調査を行うこと、確実なリターンを約束する言葉を決して信用しないこと、そしてインターネット上では常に警戒を怠らないことだ。大切に稼いだお金を失うことは打ちのめされることがありますが、注意と注意が、同じような心の痛みを経験するのを防ぐ助けとなります。メールアドレス:[email protected] WhatsApp +19548568045、 https://wa.link/989vlf
記事全体を表示
MCXN FlexCOMMのデュアルI2CとUARTのサポートについて? FlexCOMMの設定によると、PERSELを0x7に設定することで、1つのFlexCOMM(4ピン)上でデュアルUARTおよびI2C機能を有効にすることができます。 この機能に関していくつか質問があります。 両方のチャネルは同時に独立して動作しているのでしょうか? 割り込みハンドラでは、これはどのように処理されますか? MCUXpresso Config Toolで、このモードで動作するようにペリフェラルドライバを設定するサポートはありますか? SDKにはこのモードを活用するためのサポートがありますか? お時間をいただきありがとうございました。 ボード設計 通信・制御(I3C |I2C |SPI |FlexCAN |イーサネット |FlexIO) MCX N Re: MCXN FlexCOMM support for dual I2C and UART? こんにちは、 @WilliamDavy さん。 はい、MCXNではUARTとI2Cの同時通信が可能です。 1. 両方のチャネルは同時に独立して動作しますか? 同時に動作することは可能ですが、完全に独立することはできません。MCX N23x RMには「UARTとI2Cを同時に使用可能で、機能は限定的」と書かれています 詳細なLP_FLEXCOMM説明には、LPUARTとLPI2Cは「インターフェースを削減しながら同時に選択可能」と書かれています 2. これは割り込みハンドラでどのように処理されますか? LP_FLEXCOMMインターフェースは、設定された周辺通信機能から単一の割り込みを生成します。LP_FLEXCOMMインターフェースがLPUARTとLPI2Cの両方の機能に設定されている場合、ISTATから割り込みのソースを読み取ることができます。 MCUXpressoの設定ツールで、このモードで周辺機器ドライバーを動作させるためのサポートは 3.Is あるのでしょうか? なし SDKにはこのモード 4.Is 利用するためのサポートがありますか? はい、この例を参照してください。 BR ハリー
記事全体を表示
MC33774 Balance Ctrl HI. I am currently using a 33665A+33774 sampling system. I encountered a problem when controlling the MC33774 equalization to start. I wanted to use the timer equalization mode and set the timeout to 10 seconds to start equalization. However, when I started equalization in the order of "MC33774_ADDR_BAL_GLOB_TO_TMR->MC33774_ADDR_BAL_TMR_CH_ALL->MC33774_ADDR_BAL_GLOB_CFG", I found that the data in MC33774_ADDR_BAL_TMR_CH_ALL was immediately cleared to 0 after being sent, causing equalization to fail to start. I'd like to know what's causing this? Also, I saw in the manual that the equalization will be activated in an alternating odd and even manner. Does this mean the odd channels come first or the even channels come first? Is there a register that can control this? Re: MC33774 Balance Ctrl You can obtain this manual by submitting a ticket using your company email address, but you are identified as Customer C in the community because you used your own email address, so you cannot share it. Home Re: MC33774 Balance Ctrl Thank you very much, the problem is solved. May I ask if this user manual is open source? Re: MC33774 Balance Ctrl Try following these steps:
記事全体を表示