Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
GUI Guider 2.0.0 just released! GUI Guider v2.0.0 Is Here: Build Embedded UIs Faster GUI Guider v2.0.0 improves the embedded UI development workflow with a redesigned editor, real-time rendering, updated project structure, and broader platform support. It helps developers move from layout design to integration faster, with fewer context switches along the way. 🚀 Key Enhancements in This Release ✅ A redesigned IDE UI with a more professional look and flexible layout options ✅ A new real-time rendering mechanism for a true what-you-see-is-what-you-get editing experience ✅ A flowchart-style event system designed for complex interaction logic ✅ Figma-to-GUI Guider project import to bridge design and development 1. Redesigned IDE UI The redesigned interface introduces a cleaner, more consistent visual style, making the editor easier to navigate and more comfortable to use during day-to-day development. Customizable layouts let developers organize the workspace around their preferred workflow, helping them access frequently used tools more quickly and edit interfaces more efficiently. Resource management, property configuration, and editing interactions have been streamlined to make common UI development tasks easier to complete. 2. Real-Time Rendering and Instant Simulation GUI Guider v2.0.0 integrates a new rendering mechanism that enables real-time rendering directly in the GUI editor. After modifying the interface, developers can preview the results immediately, reducing the time spent repeatedly generating code and switching contexts. This capability significantly accelerates UI prototyping and interaction validation, especially during fast iteration cycles. 3. Upgraded Property and Style System This release expands property and style configuration, giving developers more control over widget behavior, visual states, and appearance. Developers can enable, adjust, and manage properties, styles, and state settings based on the needs of each project. At the same time, the generated code structure has been further optimized, making it easier to integrate, read, and maintain. 4. New Project Structure GUI Guider v2.0.0 introduces a new folder organization model and project JSON configuration. The project directory is easier to understand, and project metadata is managed in a more consistent way. This structure makes projects easier to maintain as teams collaborate, add features, and expand the UI over time. 5. UI Design in the JSON Editor In addition to visual editing, the new version also supports UI design directly in the JSON editor. This is useful for automated builds, template-based configuration, and advanced engineering workflows where project files need to be reviewed, generated, or updated directly. 6. Visual Event System The event system now uses a flowchart-style visual representation. Conditions and animations can be reused, making the system better suited for building complex UI interaction logic. This approach is more intuitive and also makes debugging and maintenance easier. 7. Figma Design Import GUI Guider v2.0.0 supports converting Figma designs directly into GUI Guider projects. This further connects the workflow from design mockups to editable GUI projects, helping shorten the path between design and development. 8. Graphics Library Upgrade The new version upgrades to LVGL v9.4.0 and supports System Layer, Top Layer, and Bottom Layer capabilities, making it easier to organize UI elements across different layers. 9. Platform and Development Ecosystem Support While maintaining compatibility with existing platforms and development ecosystems, GUI Guider v2.0.0 further improves the project integration experience. It keeps pace with the latest Zephyr 4.4 release, strengthening project integration and version adaptation capabilities. The tool continues to support mainstream NXP embedded product families, including MCX, RW, i.MX RT, and i.MX. It can be seamlessly integrated into existing MCU and MPU projects to meet GUI development needs across a wide range of scenarios. With more stable ecosystem support, developers can spend more time on UI design and feature implementation and less time on integration work.   🚀 Try GUI Guider v2.0.0 and explore a faster workflow for developing embedded UIs. 📥 Resources Download GUI Guider 2.0.0 Visit the NXP website 💬 Community Forum: Join the discussion Follow us for more embedded GUI development tips and product updates!
查看全文
How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached RHinnen‌ Hi , RHinnen    Could  you spare some precious time to help me solve the following problems: How to  modify the model attached to send multiple CAN messages and keep sending CAN messages without reset the the mcu after the CAN analyzer is stopped and started again? The example -CAN1(Flexcan Traffic )offered  in the MPC574xP Example Projects-Communictions does not exsit the problem.    Up to now ,even though i added another CAN message (different ID) in the model ,the CAN analyzer only sent one ID CAN message.  The CAN analyzer  will stop sending CAN messages after stopped and started .      Look forward to your solution ,thank you very much! Example Models Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached Hi, I am also searching to resolve the same issue. If you resolved that CAN signal sending without MCU restart. Kindly share your approach it will be helpful for my project Thank You, Rahul Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached Hello sparkee, Yes, unfortunately if you want to use the same MB for multiple transfers you'll have to do one of the following: - either use blocking mode (which will likely slow down a bit your application) - either use non-blocking mode, but making sure the 2nd transfer on the same MB will be done only after the 1st was completed. Otherwise, the 1st transfer will be halted by the 2nd, so it will not run to completion. The 2nd option here depends on how you write your application, as you'll have to manage the timing yourself - nevertheless, it can have the advantage of a slightly faster application (depending on what overhead you add with the timing management). The 1st option is simple enough (the block handles everything), but you must decide if that bit of extra time spent in the blocking transfer is something you can have or not in your application. The best scenario is the one where you have MBs available so that you can use the non-blocking mode, each transfer having it's own MB set. Hope this clears things up a bit. Kind regards, Razvan. Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached This question was asked in November... any traction on this?  The issue that I found was that I was not setting the message buffers different for each message.  I didn't realize you had to set each message to load into a specific buffer. Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached    I still don't know what the right approach should look like. Can you give me a correct example?    thanks. Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached paulvlase‌, Please have a look and investigate a possible solution. Thank you! Daniel
查看全文
i.MX8M Plus - WDOG_B# PU when using PCA9450C Hi Team, Do we need to mount 100k PU in WDOG_B# pin for using BSDL Mode? As per Hardware Design Guide it says "If using a PMIC other than PCA9450, an external pullup resistor (100 kΩ) may be required to support Boundary-scan mode" In EVK design it seems 100k PU was mounted in WDOG_B# pin they are using same PCA9450 PMIC. Kindly confirm. PMIC Re: i.MX8M Plus - WDOG_B# PU when using PCA9450C Although PCA9450C disables WDOG_B reset by default and the pull-up is not strictly required for normal operation, NXP recommends adding the 100 kΩ pull-up when Boundary-Scan support is required. The EVK also populates this resistor to ensure a defined WDOG_B level during BSDL testing and avoid potential reset issues when WDOG_B is floating in Boundary-Scan mode.
查看全文
使用 imx95 启动相机 大家好, 我正在使用 imx95 SVS 设置 imx95[SOC] + MX95MBDES01[MAX96724] ===> {mx95mbcam[0x03C10+MAX96717F]+mx95mbcam[0x03C10+MAX96717F]+mx95mbcam[0x03C10+MAX96717F]+custom_cam[0x03H10+MAX96717]} 所以基本上,整个设置与 SVS 相同,只是将 cam3 更换为自定义摄像头模块 [0x03H10+MAX96717]。 我正在进行驱动程序修改,但遇到了 GMSL 连接锁定的问题。 我的自定义相机模块采用以下配置运行: I2C 地址:0x84;晶振配置 同轴像素模式,6Gbps 我只能看到 cam0-3: root@imx95-19x19-lpddr5-evk:~# i2cdetect -l i2c-1 i2c 44350000.i2c I2C 适配器 i2c-2 i2c 42530000.i2c I2C 适配器 i2c-3 i2c 42540000.i2c I2C 适配器 i2c-4 i2c 426b0000.i2c I2C 适配器 i2c-5 i2c 426c0000.i2c I2C 适配器 i2c-6 i2c 426d0000.i2c I2C 适配器 i2c-8 i2c i2c-2-mux(通道 ID 0)I2C 适配器 i2c-9 i2c i2c-2-mux(通道 ID 1)I2C 适配器 i2c-10 i2c i2c-2-mux(通道 ID 2)I2C 适配器 请提出解决方案。 Re: Camera bring-up with imx95 原先的配置有4个摄像头模块,芯片是MAX96724。现在你把其中一个模块cam3换成了自定义摄像头模块MAX96717,然后就找不到它了。这个模块的chan_id是3,对吗?
查看全文
AutosarプログラムでOsIf_GetCounterを呼び出すとE_OS_CALLEVEL チームの皆さん、こんにちは。 私たちは NXP S32K588 をAUTOSARベースのプログラムで使用しており、 ETAS OS と EB MCALを組み合わせています。 いくつかのMCALコンポーネントは、タイムアウト方法を以下のいずれかに設定できるタイムアウト機構を提供しています: OSIF_COUNTER_SYSTEM OSIF_COUNTER_DUMMY タイムアウト方法が OSIF_COUNTER_SYSTEMに設定されている場合、影響を受けるドライバーは初期化シーケンス中にOsIf_GetCounter()を通じてOSIFカウンターにアクセスしようとします。 これらのドライバー初期化関数は EcuM_Init()から呼び出されるため、AUTOSAR OSは以下の方法でエラーを報告します: エラーフック => E_OS_CALLEVEL 私たちの理解では、これはAUTOSAR OSカウンターAPIは タスク や ISRなどの有効なOSコンテキストからのみアクセスが許可されているのに対し、EcuM_Init()はOSスケジューラが起動する前に実行されるためです。 この状況に対処するための推奨されるアプローチについてアドバイスをいただけますか?具体的には: OS起動前のMCALタイムアウト処理に関して、推奨される設定はありますか? EcuM_Init()から初期化されたドライバーにはOSIF_COUNTER_DUMMYを使うべきでしょうか? プリOSフェーズ中にタイムアウト機能を安全に有効にするための、ETAS OS、EB MCAL、またはNXP固有のガイドラインや回避策はありますか? Re: Invokation of OsIf_GetCounter in Autosar program causes E_OS_CALLEVEL こんにちは、 ありがとうございます。SW/RTDチームに追加のフィードバックがあれば聞いてみます。 BR、ペトル Re: Invokation of OsIf_GetCounter in Autosar program causes E_OS_CALLEVEL こんにちは、 あなたの分析は正しいようです。OSIF_COUNTER_SYSTEMで設定されたドライバがOS起動前にEcuM_Init()から初期化されている場合、AUTOSAR OSの実装によってOsIf_GetCounter E_OS_CALLEVELが発生することがあります。 OS起動前の段階で初期化されるモジュールの場合、一般的な回避策は、OSベースのタイミングサービスの使用を避け、代わりにOSIF_COUNTER_DUMMY(または別のOS以外のタイミングソース)を使用することです。 具体的な推奨事項は、ETAS OSの実装方法や使用しているMCAL/RTDのバージョンによっても異なる場合があります。さらなる検証のためにS32DSとRTD(またはMCAL)バージョンを共有していただけませんか? BR、ペトル
查看全文
SJA1110 Qbv AdminBaseTime 設定 NXPメンバーの皆様へ 私はT32G-VNP-RDB3ボード上のSJA1110スイッチの設定に取り組んでおり、PTPやQbvなどのTSN機能を有効にするための作業を行っています。 スイッチの設定、更新されたsja1110_uc.binファイルを生成し、S32GボードにデプロイするためにS32 Design StudioのSJA1110 SDKを使っています。 ほとんどの Qbv パラメータの設定を理解し、テストすることはできましたが、QBV 管理パラメータ テーブル上の ADMINBASETIME[31:0] と ADMINBASETIME[63:32] の正しい設定を把握することができませんでした。 um549820-UM11107 ソフトウェアユーザーマニュアルのドキュメントによると、SJA1110(2.0))ADMINBASETIMEは次のように説明されます。 基本時間に使用される管理値を定義します(PTP/free で表されます)。 実行中の時間スケールは、次の時点を計算する際の参照として使用されます。 再構成されたゲートサイクルが開始されます (CycleStartTime)。 しかし、実際のプロジェクトでこの値を計算する方法については、何のヒントも得られない。さらに、 SJA1110拡張構成のプレゼンテーションにあるSJA1110 Qbvの例では、このパラメータに0(直接開始)を使用しています。 一つの例を考えてみましょう。 QbvはSJA1110スイッチのポート3用に設定されており、速度は1000Mbps、粒度は200ナ秒です。 1サイクルは500μsで、3つのセグメントから構成されます。 最初の区間では、TC7を除くすべての交通区分が開放されています。継続時間は100μsです(TRIGGER_TIME = 500)。 第2区間では、交通区分7のみが通行可能で、その他の交通区分は閉鎖されています。300マイクロ秒続きます(TRIGGER_TIME = 1500)。 第3区間では、TC7を除くすべての交通区分が開放されています。持続時間は100μsです(TRIGGER_TIME = 500)。 しかし同じネットワーク内には、500μsのQbvサイクルで異なるセグメント間隔を持つ別のTSNスイッチが存在します。 TSNスイッチ間で同期し、gPTPの時間エポックと一致させるために、ADMINBASETIMEをどのように計算すればよいのでしょうか? ご支援ありがとうございます! Re: SJA1110 Qbv AdminBaseTime Configuration こんにちは、 @GuilhermeS32G さん、 はい、ADMINBASETIMEの設定は理想的には実行時にプログラム的に設定し、すべてのスイッチのQbvが同期されるようにすべきです。 SJA1110の静的構成を作成する際は、ADMINBASETIME = 0 に設定することをお勧めします。 ADMINBASETIMEは、gPTP同期が確立された後、実行時に動的に設定する必要があります。そのCASE、ホストアプリケーション、TSNマネジメントスタック、CNCまたはその他のカスタム設定ソフトウェアが現在の同期時間を読み取り、十分な余裕を持ってFUTUREの基準時刻を選択し、Qbvの管理パラメータを(動的再構成で)書き込み、設定変更をトリガーします。 固定のADMINBASETIMEを有効にするためだけに、起動のたびにgPTPの時刻をリセットすることはお勧めしません。 よろしくお願いいたします。 パベル Re: SJA1110 Qbv AdminBaseTime Configuration こんにちは、 @PavelL さん。 改めてサポートありがとうございます。 私の理解では、このADMINBASETIME設定は理想的にはランタイム中にプログラム的に設定し、Qbvスケジュールが将来的に行われるようにすべきです。 私の場合、SJA1110スイッチがSDL Bootで起動しているので、SJA1110 SDK for S32DSを使ってファームウェアをプログラムしています。この場合、QBVの管理パラメータテーブルでADMINBASETIMEを設定する必要があります。その後、新しいファームウェアファイルを構築します。S32G-VNP-RDB3ボードに展開し、新しい構成が適用されるようにボードを再起動してください。 最初のADMINBASETIMEは将来的に使う予定ですが、その後の実行でファームウェアを更新しなければ、あなたが言及したように常にアクティブな開始時間を調整しなければなりません。 この場合、ADMINBASETIMEを単純に0にした方が良いのではないでしょうか?そうでなければ、起動ごとにgPTPの時間をリセットする方が良いでしょう。 よろしくお願いいたします。 ギレルメ Re: SJA1110 Qbv AdminBaseTime Configuration こんにちは、 @GuilhermeS32G さん、 ADMINBASETIMEは、Qbvスケジュールの絶対的な時間参照/フェーズ参照として理解されるべきです。これは、繰り返されるQbvサイクルの開始を同期された時間領域に合わせるために使用されます。これはポート速度から計算されるものではなく、TRIGGER_TIMEの粒度に基づいて計算されるものでもありません。 マルチスイッチTSNシステムでは、gPTP / IEEE 802.1ASは共通の同期時間ベースを提供しますが、Qbvスケジュールを自動的に設定するわけではありません。QBVの設定(ADMINBASETIMEを含む)は、TSN マネジメントスタック/CNCまたはホストプロセッサ上で動作するアプリケーション固有のカスタムソフトウェアによってプログラムされなければなりません。IEEE 802.1Qccは、CNCがTSN構成を計算しネットワーク機器に配布する集中型TSN構成モデルを記述しています。 https://www.ieee802.org/1/files/public/docs2017/cc-Kehrer-StartOfCycleReference-0117-v01.pdf 一般的な手順は次のようになります。 1. gPTP / 802.1ASを開始し、関連するすべてのTSNデバイスが同期されるまで待ちます。 2. デバイス/PTPタイムドメインから現在の同期時刻を読み取ります。 3. 将来の基準時間を選択する:ADMINBASETIME = current_gPTP_time + safety_margin セーフティマージンは、選択した基準時間に達する前にすべてのスイッチやポートに設定を書き込める十分な大きさであるべきです。 4. 同じQbvサイクルフェーズを共有するすべてのスイッチ/ポートに対して、同じADMINBASETIMEと同じサイクルタイムをプログラムすること。 5. 必要なスケジュールに従って、ポートごとのGCLエントリをプログラムします。 gPTP時間エポックへのアライメントが必要な場合は、選択した基準時刻をサイクル境界にもアライメントさせることができます。例: ADMINBASETIME = ceil((current_gPTP_time + safety_margin) / cycle_time) * cycle_time これはLinux taprioで使われている一般的な考え方と同じです。ベースタイムはスケジュールの開始時刻を定義し、基準時刻がすでに過去にある場合、アクティブ開始時間は整数サイクル時間を足して、得られる開始時刻がFUTUREになるまで導出されます。 https://www.cisco.com/c/en/us/td/docs/switches/lan/cisco_ie4000/tsn/b_tsn_ios_support/b_tsn_ios_support_chapter_01.html https://deepwiki.com/nxp-qoriq/tsntool/5.2-device-configuration SJA1110の場合、最終的なADMINBASETIME値は、SJA1110 Qbv構成で想定される時間形式に従ってエンコードされ、その後、以下のように分割されます。 ADMINBASETIME[31:0] = 下位32ビット ADMINBASETIME[63:32] = 上位32ビット まとめると、gPTPは共通時間を提供します。別のソフトウェア/設定レイヤーは、その時間に対してQbv ADMINBASETIMEを選択し、プログラムしなければなりません。これはTSNマネジメントスタックやCNCによって行われる場合もあれば、よりシンプルな組み込みシステムにおけるカスタムアプリケーションコードによって行われます。 よろしくお願いいたします。 パベル
查看全文
PIN configuration for ISP mode Hi, In LPC55S1x/LPC551x datesheet, it says: Function # 0 PIO1_2 — General-purpose digital input/output pin. Remark: In ISP mode, this pin is set to the High Speed SPI SCK function (Flexcomm 8). Does it mean Function # need to be set to 0 to make this pin work as High Speed SPI SCK function in ISP mode? If yes, how to set Function # for ISP mode? Can I set different Function # for ISP mode and non-ISP mode? Regards, Winston LPC55xx Re: PIN configuration for ISP mode Hello @yangao  I have already replied to this question in another customer case. Please feel free to contact us if you have any further questions. BR Alice
查看全文
Does the S32K566 MCAL support CANXL? Is there a demo? Does the S32K566 MCAL support CANXL? Is there a demo? Re: S32K566 MCAL支持canxl吗?有demo吗 Hi@ leonchan2 Are you referring to selecting the CANXL component in MCAL within S32 DS? If that's the case, no, what I see is that it can only be configured in the Driver. In EB Tresos, CANXL can be configured, and I see a demo working in loop-back mode provided in S32 DS. The S32K5 is not yet on the mass market. You can contact your dealer or FAE for more details.
查看全文
S32N55 HSE2 CRS 功能域身份验证未完成 你好, 我们正在 S32N55 上实现基于 HSE2 的安全调试,使用 SDC-600 调试认证流程(质询/响应、APP 模式、AES-256-CMAC),由 T32 CMM 主机脚本通过调试端口与 SDC-600 通信驱动。 **地位** - **FSS 功能域**:安全调试身份验证成功完成。调试目标“0x1A”(FSS)在质询/响应交换后返回“AUTHSTATUS = 0xBBB”,确认功能域已解锁。 - **CRS 域**:身份验证未完成。我们使用调试目标“0x1B”进行 CRS(假设如此,待 HSE2 固件参考手册确认——见下文问题 1)。 **CRS 的观察行为** 1. SDC-600 COMM_START 和 SoC 信息交换正常完成。 2. 向目标“0x1B”发出 AUTH_MODE_REQ 请求,返回“AUTH_MODE = 0x0”(基于挑战),符合预期。 3. APP_CHALLENGE 请求完成;从固件收到 32 字节的挑战。 4. 我们使用 ADKP 对挑战进行 AES-256-CMAC 加密,计算响应,并发送 16 字节的 `appChallengeAuth` 响应。本次传输顺利完成,未出现传输级错误。 5. **此时,固件不会发送 `RxRESULT`。**主机脚本在等待 `rx_response_from_fw` 中的响应时停滞不前——没有 `0xF2`(失败)也没有 ACK 模式,根本没有回复。这与正常故障不同;看起来防火墙根本没有达到生成此请求响应的阶段。 **我们目前的假设** 在 FSS 端,我们调用一次 `Sherpa_Cdd_SetOwnerDebugKeyMap()` 将 OTP ADKP 注册为所有者授权/认证密钥 (`HSE_SRV_ID_DEBUG_KEY_MAPPING`)。我们怀疑此映射仅在调用恰好被分派到的 MU 通道的上下文中应用,并且对 CRS 端 HSE2 实例不可见——这可以解释为什么 CRS 的 CARD_REQUEST 会停滞而不是返回明确的失败。 **问题** 1. 在 `AUTH_MODE_REQ` 和 `CARD_REQUEST` 中,CRS 功能域的正确调试目标/功能域 ID 值是什么?我们目前假设的值为 `0x1B`;请确认或更正。 2. 是否需要按功能域/按 MU 发出 `Sherpa_Cdd_SetOwnerDebugKeyMap()` (`HSE_SRV_ID_DEBUG_KEY_MAPPING`),还是 FSS 和 CRS 之间共享一个全局映射?如果是按功能域计费,如何为该服务选择目标用户单元/所有者? 3. `SetOwnerDebugKeyMap` 是否需要在每次启动时调用,还是映射一旦设置就永久有效(例如,与 OTP/NVM 状态相关),所以只需要调用一次? 4. `CARD_REQUEST` 中 CRS 域的预期 OID 值是什么?我们目前发送的是全部为 `0xFF`(16 字节),这与 FSS 的工作原理相同。 5. CRS 功能域的预期 `CARD_REQUEST` 数据包结构 (`hseDebugCardCmd_t`) 是什么?在 `KRI`、`OID`、`AuthScheme` 或调试功能域信号映射字段方面,它与 FSS/APP 功能域布局有何不同? 6.CRS 中 `CARD_REQUEST` 中的身份验证标签应该如何计算?是像 FSS 一样使用相同的 `debugCardInfo` 字段进行 CMAC 验证,还是 CRS 需要包含不同的字段? 任何关于 CRS 域的预期序列/值的提示都将非常有帮助——如果需要,我很乐意分享我们的 CMM 脚本和捕获的 SDC-600 字节日志。 谢谢! Re: S32N55 HSE2 CRS domain authentication does not complete 你好, @EddiePark 感谢你的帖子。 我们已经就您之前提出的9个问题与内部团队展开了讨论,目前仍在调查中,如有任何进展,我会尽快回复。 对于新提出的问题,我将首先参照之前的问题进行检查,然后逐一展开调查。 BR 陈银
查看全文
imx95を使用したカメラの起動 こんにちは、皆さん。 私はimx95 SVSセットアップを使用しています imx95[SOC] + MX95MBDES01[MAX96724] ===> {mx95mbcam[0x03C10+MAX96717F]+mx95mbcam[0x03C10+MAX96717F]+mx95mbcam[0x03C10+MAX96717F]+custom_cam[0x03H10+MAX96717]} つまり、セットアップはSVSと同じですが、Cam3をカスタムカメラモジュール[0x03H10+MAX96717]に変更しただけです。 ドライバの改造を行っていますが、GMSLのリンクロックに問題が発生しています。 私のカスタムカメラモジュールは、以下の構成で動作します。 I2Cアドレス: 0x84;Xtal構成 同軸ピクセルモード、6Gbps カメラ0-3しか見えません: root@imx95-19x19-LPDDR5-EVK:~# i2cDetect -L i2c-1 i2c 44350000.i2c I2C アダプター i2c-2 i2c 42530000.i2c I2C アダプター i2c-3 i2c 42540000.i2c I2C アダプター i2C-4 i2C 426b0000.i2c I2C アダプター i2C-5 i2C 426C0000.i2C I2C アダプター i2C-6 i2C 426d0000.i2c I2C アダプター i2C-8 i2c i2C-2-MUX(chan_id 0) I2C アダプター i2C-9 i2c i2C-2-MUX(chan_id 1) I2C アダプター i2C-10 i2c i2c-2-MUX(chan_id 2) I2C アダプター 解決策を提案してください。 Re: Camera bring-up with imx95 元のセットアップでは4つのカメラモジュールとMAX96724があり、今はそのうちの1つをカスタムカメラモジュールMAX96717で変更しても見つかりません。モジュールはchan_id 3ですよね?
查看全文
ISPモードのPIN設定 こんにちは、 LPC55S1x/LPC551xのデータシートには、次のように記載されています。 機能番号0 PIO1_2 — 汎用デジタル入出力ピン。 注記:ISPモードでは、このピンは高速に設定されます。 SPI SCK機能(Flexcomm 8)。 このピンを高速として動作させるには、機能番号を0に設定する必要があるということですか? ISPモードでのSPI SCK機能?はいの場合、ISPモードのファンクション番号はどのように設定すればよいですか?ISPモードと非ISPモードでFunction #を別々に設定できますか? よろしくお願いいたします。 ウィンストン LPC55xx Re: PIN configuration for ISP mode こんにちは@yangao 別の顧客のCASEでこの質問にはすでに回答しています。ご質問があれば、どうぞお気軽にお問い合わせください。 BR アリス
查看全文
在 Autosar 程序中调用 OsIf_GetCounter 会导致 E_OS_CALLEVEL 错误 大家好, 我们在基于 AUTOSAR 的程序中使用NXP S32K588 ,搭配ETAS OS和EB MCAL 。 多个 MCAL 元器件提供超时机制,超时方法可以配置为以下两种方式之一: OSIF_COUNTER_SYSTEM OSIF_COUNTER_DUMMY 当超时方法配置为OSIF_COUNTER_SYSTEM时,受影响的驱动程序会在其初始化序列期间尝试通过 OsIf_GetCounter() 访问 OSIF 计数器。 由于这些驱动程序初始化函数是从EcuM_Init()调用的,因此 AUTOSAR 操作系统会通过以下方式报告错误: ErrorHook => E_OS_CALLEVEL 我们理解,这是因为 AUTOSAR OS 计数器 API 只允许从有效的操作系统上下文(例如Tasks或ISR)中访问,而 EcuM_Init() 在操作系统调度程序启动之前执行。 请问处理这种情况的推荐方法是什么?具体来说: 在操作系统初始化之前,对于 MCAL 超时处理是否有推荐的配置? 对于通过 EcuM_Init() 初始化的驱动程序,是否应该使用 OSIF_COUNTER_DUMMY? 是否有针对 ETAS OS、EB MCAL 或 NXP 的特定指南/变通方法,以便在预操作系统阶段安全地启用超时功能? Re: Invokation of OsIf_GetCounter in Autosar program causes E_OS_CALLEVEL 您好, 谢谢,我会问问SW/RTD团队是否还有其他反馈意见。 BR,彼得 Re: Invokation of OsIf_GetCounter in Autosar program causes E_OS_CALLEVEL 你好, 你的分析似乎是正确的。如果在操作系统启动之前,从 EcuM_Init() 初始化配置了 OSIF_COUNTER_SYSTEM 的驱动程序,则根据 AUTOSAR 操作系统的实现,对 OsIf_GetCounter() 的调用可能会导致 E_OS_CALLEVEL。 对于在操作系统启动前阶段初始化的模块,常见的解决方法是避免使用基于操作系统的计时服务,而改用 OSIF_COUNTER_DUMMY(或其他非操作系统计时源)。 具体建议可能还取决于 ETAS OS 的实现方式以及所使用的 MCAL/RTD 版本。能否请您提供 S32DS 和 RTD(或 MCAL)版本以便我们进一步核实? BR,彼得
查看全文
Invokation of OsIf_GetCounter in Autosar program causes E_OS_CALLEVEL Hi Team, We are using the NXP S32K588 in an AUTOSAR-based program, with ETAS OS and EB MCAL. Several MCAL components provide a timeout mechanism where the timeout method can be configured as either: OSIF_COUNTER_SYSTEM OSIF_COUNTER_DUMMY When the timeout method is configured as OSIF_COUNTER_SYSTEM, the affected drivers attempt to access OSIF counters through OsIf_GetCounter() during their initialization sequence. Since these driver initialization functions are called from EcuM_Init(), the AUTOSAR OS reports an error via: ErrorHook => E_OS_CALLEVEL Our understanding is that this occurs because AUTOSAR OS counter APIs are only permitted to be accessed from valid OS contexts such as Tasks or ISRs, whereas EcuM_Init() executes before the OS scheduler is started. Could you please advise on the recommended approach to handle this situation? Specifically: Is there a recommended configuration for MCAL timeout handling during pre-OS initialization? Should OSIF_COUNTER_DUMMY be used for drivers initialized from EcuM_Init()? Are there any ETAS OS, EB MCAL, or NXP-specific guidelines/workarounds to enable timeout functionality safely during the pre-OS phase? Re: Invokation of OsIf_GetCounter in Autosar program causes E_OS_CALLEVEL Hi, thanks, let me ask SW/RTD team if they can provide any additional feedback. BR, Petr Re: Invokation of OsIf_GetCounter in Autosar program causes E_OS_CALLEVEL Hi,  Your analysis seems correct. If a driver configured with OSIF_COUNTER_SYSTEM is initialized from EcuM_Init() before the OS is started, calls to OsIf_GetCounter() may result in E_OS_CALLEVEL, depending on the AUTOSAR OS implementation. For modules initialized during the pre-OS phase, a common workaround is to avoid using OS-based timing services and use OSIF_COUNTER_DUMMY (or another non-OS timing source) instead. The exact recommendation may also depend on the ETAS OS implementation and the MCAL/RTD version being used. Could you please share the S32DS and RTD (or MCAL) versions for further verification? BR, Petr
查看全文
i.MX8M Plus - PCA9450C使用時のWDOG_B# PU チームの皆さん、こんにちは。 BSDLモードを使用するには、WDOG_B#ピンに100k PUをマウントする必要がありますか? ハードウェア設計ガイドによると、「PCA9450以外のPMICを使用する場合は、外部のもの」と書かれています プルアップ抵抗(100 kΩ)が必要になることがあります 境界スキャンモード」 EVK設計では10万PUがWDOG_B#ピンに取り付けられ、同じPCA9450 PMICを使っているようです。 ご確認ください。 PMIC Re: i.MX8M Plus - WDOG_B# PU when using PCA9450C PCA9450CデフォルトでWDOG_Bリセットを無効にし、プルアップは通常の動作に必須ではありませんが、境界スキャンサポートが必要な場合には100 kΩプルアップの追加をNXPは推奨しています。EVKは、BSDLテスト中に定義されたWDOG_Bレベルを確保し、バウンダリスキャンモードでWDOG_Bがフローティング状態になった場合に発生する可能性のあるリセットの問題を回避するために、この抵抗器も実装します。
查看全文
Help with ECDSA Verification in LPC55S28 Bootloader (32KB Size Limit) Hello NXP Community, I'm developing a secure bootloader for the LPC55S28 and have run into a significant code size issue when implementing ECDSA signature verification. Current Issue My bootloader needs to verify ECDSA P-256 signatures, and it must fit within a 32KB flash region. When using mbedTLS for ECDSA verification (even with a minimal configuration that only enables ECDSA), my code size explodes from approximately 13KB to 56KB: Spoiler (Highlight to read) Name Run address Load address Size Type .text 0x0 n/a 56412 section mpi_mul_hlp 0x9ae2 n/a 6388 local function ecp_mod_p256 0x839c n/a 2032 local function shiftleft 0x2bd0 n/a 1792 local function MultprecCiosMul521_ct 0x4fdc n/a 1772 local function shiftright 0x2514 n/a 1724 local function double_scalar_multiplication 0x3fb4 n/a 1580 global function MultprecCiosMul_ct 0x1b4c n/a 1444 local function mbedtls_mpi_div_mpi 0xb69c n/a 1316 global function mbedtls_mpi_inv_mod 0xbdfa n/a 1090 global function precompute_double_scalar_LUT16 0x3aac n/a 1084 local function invert_mod_p384 0x4884 n/a 1062 local function ecp_double_jac 0x7d6c n/a 972 local function ecp_add_mixed 0xac8 n/a 912 local function mbedtls_ecp_muladd_restartable 0xea8 n/a 868 global function Jac_addition 0x33ec n/a 776 global function StrFormatPrintf 0x735c n/a 700 global function invert_mod_p521 0x4d14 n/a 616 local function invert_mod_p256 0x45e0 n/a 576 local function verify_ecdsa_signature 0x4a4 n/a 544 local function Jac_add_affine 0x36f4 n/a 536 global function ecdsa_verify_restartable 0x12c0 n/a 504 local function USART_Init 0x6404 n/a 460 global function mbedtls_mpi_gcd 0xbc4a n/a 432 global function CASPER_montadd 0x21f0 n/a 428 local function hashcrypt_sha_process_message_data 0x5ddc n/a 420 local function Jac_double 0x390c n/a 416 global function USART_SetBaudRate 0x6650 n/a 396 global function mbedtls_mpi_mul_mpi 0xb3d6 n/a 382 global function CLOCK_SetFLASHAccessCyclesForFreq 0x5888 n/a 380 global function __aeabi_uldivmod 0xd048 n/a 372 global function mbedtls_mpi_add_abs 0x96ba n/a 366 global function read_and_verify_toc 0x6c4 n/a 364 local function CASPER_ECC_SECP521R1_MulAdd 0x19f4 n/a 344 global function CASPER_half 0x239c n/a 340 local function lowpower_set_system_voltage 0x6024 n/a 340 local function mbedtls_mpi_shift_l 0x91bc n/a 330 global function mbedtls_mpi_sub_abs 0x98ba n/a 326 global function CASPER_ECC_SECP256R1_MulAdd 0x179c n/a 324 global function DbgConsole_Init 0x2b0 n/a 312 global function mbedtls_mpi_shift_r 0x9306 n/a 310 global function mbedtls_mpi_cmp_mpi 0x9540 n/a 310 global function __Vectors 0x0 n/a 304 global object g_pfnVectors 0x0 n/a 304 global object CASPER_ECC_SECP384R1_MulAdd 0x18e0 n/a 276 global function HAL_UartInitCommon 0x68cc n/a 272 local function mbedtls_mpi_cmp_abs 0x943c n/a 260 global function CASPER_montsub 0x20f0 n/a 256 local function CASPER_MEMCPY 0x14e0 n/a 252 global function fseek 0x6d50 n/a 248 global function ecp_normalize_jac 0x7c78 n/a 244 local function hashcrypt_sha_finalize 0xc5e2 n/a 238 local function lowpower_set_dcdc_power_profile 0x6178 n/a 236 local function mbedtls_mpi_copy 0x8cf6 n/a 210 global function ecp_modp 0x9f8 n/a 208 local function HASHCRYPT_SHA_Update 0xc7ac n/a 208 global function precompute_double_scalar_LUT4 0x3ee8 n/a 204 local function mbedtls_ecp_point_read_binary 0x930 n/a 200 global function malloc 0x6b2c n/a 200 global function mbedtls_mpi_write_binary 0x90f4 n/a 200 global function ConvertRadixNumToString 0x7208 n/a 194 local function HASHCRYPT_SHA_Finish 0xc87c n/a 184 global function mbedtls_int_div_int 0xb5e8 n/a 180 local function mbedtls_ecp_fix_negative 0x82f0 n/a 172 local function lowpower_set_voltage_for_process 0xc934 n/a 170 local function Jac_toAffine 0x3348 n/a 164 global function HASHCRYPT_DriverIRQHandler 0x5f80 n/a 164 global function ecp_group_load 0x81c2 n/a 162 local function CLOCK_AttachClk 0x56e8 n/a 160 global function add_sub_mpi 0x9a00 n/a 156 local function mbedtls_ecp_group_free 0x7966 n/a 152 global function lowpower_get_part_process_corner 0x6264 n/a 148 local function mbedtls_mpi_mul_int 0xb554 n/a 148 global function derive_mpi 0xc23c n/a 148 local function mpi_sub_hlp 0x9828 n/a 146 local function casper_select 0x15dc n/a 144 local function hashcrypt_get_data 0xc454 n/a 144 local function USART_WriteBlocking 0x67dc n/a 140 global function PrintGetPrecision 0x6fba n/a 140 local function mbedtls_mpi_mod_mpi 0xbbc0 n/a 138 global function mbedtls_ecp_group_load 0x1238 n/a 136 global function main 0x8ac n/a 132 global function mbedtls_mpi_grow 0x8c1c n/a 132 global function CLOCK_SetClkDiv 0x5788 n/a 128 global function CLOCK_SetupFROClocking 0x5808 n/a 128 global function USART_GetDefaultConfig 0x65d0 n/a 128 global function mbedtls_ecp_group_init 0x7888 n/a 126 global function jump_to_application 0x830 n/a 124 local function mbedtls_mpi_read_binary 0x907a n/a 122 global function CASPER_ecc_init 0x166c n/a 120 global function multiply_casper 0x32d0 n/a 120 local function _initio 0x6bf4 n/a 120 global function FLEXCOMM_SetPeriph 0xc3e0 n/a 116 local function CASPER_ECC_equal 0x16e4 n/a 112 global function _Cwritebuf 0x6ca8 n/a 108 global function hashcrypt_sha_one_block 0xc576 n/a 108 local function PrintGetWidth 0x6f50 n/a 106 local function DbgConsole_Vprintf 0x3e8 n/a 104 global function toMontgomery_ECC_P384 0x4cac n/a 104 local function mbedtls_mpi_bitlen 0x8f30 n/a 104 global function _fdopen 0xcee2 n/a 104 global function DbgConsole_PrintCallback 0x6ebe n/a 102 local function mbedtls_mpi_lsb 0x8e88 n/a 102 global function mpi_bigendian_to_host 0x9014 n/a 102 local function ResetISR 0x180 n/a 100 global function toMontgomery_ECC_P256 0x4820 n/a 100 local function SystemInit 0x6868 n/a 100 weak function HAL_UartSendBlocking 0x69dc n/a 100 global function FLEXCOMM_PeripheralIsPresent 0xc37c n/a 100 local function mbedtls_ecp_copy 0x7a48 n/a 98 global function toMontgomery_ECC_P521 0x4f7c n/a 96 local function RESET_ClearPeripheralReset 0x63a4 n/a 96 global function mbedtls_mpi_sub_mod 0x7b64 n/a 96 local function SerialManager_Init 0xcb56 n/a 96 global function SerialManager_OpenReadHandle 0xcc06 n/a 96 global function reverse_array 0x8138 n/a 94 local function HASHCRYPT_SHA 0xc6fe n/a 94 global function FLEXCOMM0_DriverIRQHandler 0x5aa0 n/a 92 global function FLEXCOMM1_DriverIRQHandler 0x5afc n/a 92 global function FLEXCOMM2_DriverIRQHandler 0x5b58 n/a 92 global function FLEXCOMM3_DriverIRQHandler 0x5bb4 n/a 92 global function FLEXCOMM4_DriverIRQHandler 0x5c10 n/a 92 global function FLEXCOMM5_DriverIRQHandler 0x5c6c n/a 92 global function FLEXCOMM6_DriverIRQHandler 0x5cc8 n/a 92 global function FLEXCOMM7_DriverIRQHandler 0x5d24 n/a 92 global function FLEXCOMM8_DriverIRQHandler 0x5d80 n/a 92 global function RESET_SetPeripheralReset 0x6348 n/a 92 global function mbedtls_mpi_add_mod 0x7bc4 n/a 92 local function mbedtls_mpi_lset 0x8dea n/a 92 global function BOARD_BootClockFROHF96M 0x6a98 n/a 88 global function mbedtls_mpi_shift_l_mod 0x7c20 n/a 88 local function fclose 0xcf9c n/a 88 global function mbedtls_mpi_resize_clear 0x8ca0 n/a 86 local function DbgConsole_SendDataReliable 0x25c n/a 84 global function calculate_sha256 0x450 n/a 84 local function mbedtls_ecp_set_zero 0x7aaa n/a 82 global function _fflush 0xcf4a n/a 82 global function ecp_add 0xe58 n/a 80 global function FLEXCOMM_Init 0x5a50 n/a 80 global function POWER_SetVoltageForFreq 0x62f8 n/a 80 global function HASHCRYPT_SHA_Init 0xc75c n/a 80 global function SerialManager_OpenWriteHandle 0xcbb6 n/a 80 global function calloc 0xcdc6 n/a 80 global function strlen 0xce54 n/a 78 global function FLEXCOMM_GetInstance 0x5a04 n/a 76 global function mbedtls_mpi_free 0x8bd0 n/a 76 global function CASPER_ECC_equal_to_zero 0x1754 n/a 72 global function mpi_uint_bigendian_to_host_c 0x8fb4 n/a 72 local function add32 0x8264 n/a 70 local function sub32 0x82aa n/a 70 local function ftell 0x6e48 n/a 68 global function PrintOutputdifFobpu 0x70aa n/a 68 local function PrintOutputxX 0x70ee n/a 68 local function mbedtls_mpi_cmp_int 0x9676 n/a 68 global function SerialManager_Write 0xcb12 n/a 68 local function mbedtls_mpi_get_bit 0x8e46 n/a 66 global function mbedtls_clz 0x8eee n/a 66 local function PrintGetRadixFromobpu 0x71c8 n/a 64 local function mbedtls_mpi_mul_mod 0x7b24 n/a 64 local function _deferredlazyseek 0xcea2 n/a 64 global function _do_fflush 0xd008 n/a 64 global function toc_verification_key 0xda84 n/a 64 local object PrintFilterLengthFlag 0x718a n/a 62 local function Serial_UartInit 0xcc86 n/a 62 global function setvbuf 0xce16 n/a 62 global function BOARD_InitDEBUG_UARTPins 0x6af0 n/a 60 global function _sbrk 0x6c6c n/a 60 global function fflush 0x6d14 n/a 60 global function hashcrypt_sha_check_input_args 0xc53a n/a 60 local function BOARD_InitDebugConsole 0x6a40 n/a 56 global function PrintIsobpu 0x7046 n/a 56 local function USART_EnableContinuousSCLK 0xc9fa n/a 56 local function SerialManager_StartWriting 0xcada n/a 56 local function Serial_UartWrite 0xccc4 n/a 56 global function HardFault_Handler 0x77f8 n/a 54 global function HAL_UartInit 0xca62 n/a 54 global function mbedtls_ecp_point_free 0x7932 n/a 52 global function mbedtls_ecp_keypair_free_o 0x79fe n/a 52 global function __aeabi_lowlevel_memset 0xd1f2 n/a 50 global function mbedtls_ecdsa_verify 0xc2e8 n/a 48 global function CLOCK_EnableClock 0xc34c n/a 48 local function free 0xcd96 n/a 48 global function mbedtls_ecp_get_type 0x782e n/a 46 global function IOCON_PinMuxSet 0xcd46 n/a 46 local function __assertion_failed 0x230 n/a 44 global function ecp_mpi_set1 0x120c n/a 44 local function DbgConsole_Printf 0x6f24 n/a 44 global function PrintIsdi 0x707e n/a 44 local function PrintIsfF 0x7132 n/a 44 local function PrintIsxX 0x715e n/a 44 local function mbedtls_ecp_point_init 0x785c n/a 44 global function mbedtls_ecp_keypair_init 0x7906 n/a 44 global function ecp_mpi_load 0x8196 n/a 44 local function hashcrypt_engine_init 0xc4e4 n/a 44 local function hashcrypt_sha_check_input_alg 0xc510 n/a 42 local function __aeabi_memcpy4 0xd1c8 n/a 42 global function __aeabi_memcpy8 0xd1c8 n/a 42 global function mbedtls_platform_zeroize 0x14b8 n/a 40 global function mbedtls_ecp_is_zero 0x7afc n/a 40 global function StrFormatExaminedi 0x72ca n/a 38 local function StrFormatExaminexX 0x72f0 n/a 38 local function StrFormatExamineobpu 0x7316 n/a 38 local function mbedtls_mpi_init 0x8baa n/a 38 global function casper_get_word 0x24f0 n/a 36 local function mbedtls_mpi_sub_mpi 0x9abe n/a 36 global function s_flexcommBaseAddrs 0xdbd8 n/a 36 local object s_flexcommResets 0xdc10 n/a 36 local object mpi_sint_abs 0x8dc8 n/a 34 local function mbedtls_mpi_add_mpi 0x9a9c n/a 34 global function HAL_UartGetStatus 0xca40 n/a 34 local function DisableGlobalIRQ 0xca98 n/a 34 local function POWER_DisablePD 0x56c8 n/a 32 local function ConvertPrecisionWidthToLength 0x733c n/a 32 local function EnableGlobalIRQ 0xcaba n/a 32 local function SerialManager_WriteBlocking 0xcc66 n/a 32 global function secp256r1_p 0xdac4 n/a 32 local object secp256r1_a 0xdae4 n/a 32 local object secp256r1_b 0xdb04 n/a 32 local object secp256r1_gx 0xdb24 n/a 32 local object secp256r1_gy 0xdb44 n/a 32 local object secp256r1_n 0xdb64 n/a 32 local object s_UsartAdapterBase 0xdc34 n/a 32 local object data_init 0x1e8 n/a 30 global function mbedtls_mpi_zeroize 0x8b8c n/a 30 local function mbedtls_ecdsa_free 0xc32e n/a 30 global function mbedtls_mpi_size 0x8f98 n/a 28 global function RESET_PeripheralReset 0xc9de n/a 28 global function fsl_assert_hook 0x6ea4 n/a 26 weak function __check_heap_overflow 0x6e8c n/a 24 global function mpi_uint_bigendian_to_host 0x8ffc n/a 24 local function mbedtls_ecdsa_can_do 0xc2d0 n/a 24 global function hashcrypt_save_running_hash 0xc6d0 n/a 24 local function mbedtls_ecp_keypair_free 0x7a32 n/a 22 global function mbedtls_ecdsa_init 0xc318 n/a 22 global function hashcrypt_restore_running_hash 0xc6e8 n/a 22 local function remove 0xcff4 n/a 20 global function bss_init 0x206 n/a 18 global function s_flexcommClocks 0xdbfc n/a 18 local object SystemInitHook 0xca32 n/a 14 weak function BOARD_InitPeripherals 0xccfc n/a 14 global function __main 0xcd80 n/a 14 global function BOARD_InitBootPeripherals 0xcd0a n/a 12 global function BOARD_InitBootPins 0xcd74 n/a 12 global function __aeabi_memcpy 0xd1be n/a 10 global function Name Run address Load address Size Type.text 0x0 n/a 56412 sectionmpi_mul_hlp 0x9ae2 n/a 6388 local functionecp_mod_p256 0x839c n/a 2032 local functionshiftleft 0x2bd0 n/a 1792 local functionMultprecCiosMul521_ct 0x4fdc n/a 1772 local functionshiftright 0x2514 n/a 1724 local functiondouble_scalar_multiplication 0x3fb4 n/a 1580 global functionMultprecCiosMul_ct 0x1b4c n/a 1444 local functionmbedtls_mpi_div_mpi 0xb69c n/a 1316 global functionmbedtls_mpi_inv_mod 0xbdfa n/a 1090 global functionprecompute_double_scalar_LUT16 0x3aac n/a 1084 local functioninvert_mod_p384 0x4884 n/a 1062 local functionecp_double_jac 0x7d6c n/a 972 local functionecp_add_mixed 0xac8 n/a 912 local functionmbedtls_ecp_muladd_restartable 0xea8 n/a 868 global functionJac_addition 0x33ec n/a 776 global functionStrFormatPrintf 0x735c n/a 700 global functioninvert_mod_p521 0x4d14 n/a 616 local functioninvert_mod_p256 0x45e0 n/a 576 local functionverify_ecdsa_signature 0x4a4 n/a 544 local functionJac_add_affine 0x36f4 n/a 536 global functionecdsa_verify_restartable 0x12c0 n/a 504 local functionUSART_Init 0x6404 n/a 460 global functionmbedtls_mpi_gcd 0xbc4a n/a 432 global functionCASPER_montadd 0x21f0 n/a 428 local functionhashcrypt_sha_process_message_data 0x5ddc n/a 420 local functionJac_double 0x390c n/a 416 global functionUSART_SetBaudRate 0x6650 n/a 396 global functionmbedtls_mpi_mul_mpi 0xb3d6 n/a 382 global functionCLOCK_SetFLASHAccessCyclesForFreq 0x5888 n/a 380 global function__aeabi_uldivmod 0xd048 n/a 372 global functionmbedtls_mpi_add_abs 0x96ba n/a 366 global functionread_and_verify_toc 0x6c4 n/a 364 local functionCASPER_ECC_SECP521R1_MulAdd 0x19f4 n/a 344 global functionCASPER_half 0x239c n/a 340 local functionlowpower_set_system_voltage 0x6024 n/a 340 local functionmbedtls_mpi_shift_l 0x91bc n/a 330 global functionmbedtls_mpi_sub_abs 0x98ba n/a 326 global functionCASPER_ECC_SECP256R1_MulAdd 0x179c n/a 324 global functionDbgConsole_Init 0x2b0 n/a 312 global functionmbedtls_mpi_shift_r 0x9306 n/a 310 global functionmbedtls_mpi_cmp_mpi 0x9540 n/a 310 global function__Vectors 0x0 n/a 304 global objectg_pfnVectors 0x0 n/a 304 global objectCASPER_ECC_SECP384R1_MulAdd 0x18e0 n/a 276 global functionHAL_UartInitCommon 0x68cc n/a 272 local functionmbedtls_mpi_cmp_abs 0x943c n/a 260 global functionCASPER_montsub 0x20f0 n/a 256 local functionCASPER_MEMCPY 0x14e0 n/a 252 global functionfseek 0x6d50 n/a 248 global functionecp_normalize_jac 0x7c78 n/a 244 local functionhashcrypt_sha_finalize 0xc5e2 n/a 238 local functionlowpower_set_dcdc_power_profile 0x6178 n/a 236 local functionmbedtls_mpi_copy 0x8cf6 n/a 210 global functionecp_modp 0x9f8 n/a 208 local functionHASHCRYPT_SHA_Update 0xc7ac n/a 208 global functionprecompute_double_scalar_LUT4 0x3ee8 n/a 204 local functionmbedtls_ecp_point_read_binary 0x930 n/a 200 global functionmalloc 0x6b2c n/a 200 global functionmbedtls_mpi_write_binary 0x90f4 n/a 200 global functionConvertRadixNumToString 0x7208 n/a 194 local functionHASHCRYPT_SHA_Finish 0xc87c n/a 184 global functionmbedtls_int_div_int 0xb5e8 n/a 180 local functionmbedtls_ecp_fix_negative 0x82f0 n/a 172 local functionlowpower_set_voltage_for_process 0xc934 n/a 170 local functionJac_toAffine 0x3348 n/a 164 global functionHASHCRYPT_DriverIRQHandler 0x5f80 n/a 164 global functionecp_group_load 0x81c2 n/a 162 local functionCLOCK_AttachClk 0x56e8 n/a 160 global functionadd_sub_mpi 0x9a00 n/a 156 local functionmbedtls_ecp_group_free 0x7966 n/a 152 global functionlowpower_get_part_process_corner 0x6264 n/a 148 local functionmbedtls_mpi_mul_int 0xb554 n/a 148 global functionderive_mpi 0xc23c n/a 148 local functionmpi_sub_hlp 0x9828 n/a 146 local functioncasper_select 0x15dc n/a 144 local functionhashcrypt_get_data 0xc454 n/a 144 local functionUSART_WriteBlocking 0x67dc n/a 140 global functionPrintGetPrecision 0x6fba n/a 140 local functionmbedtls_mpi_mod_mpi 0xbbc0 n/a 138 global functionmbedtls_ecp_group_load 0x1238 n/a 136 global functionmain 0x8ac n/a 132 global functionmbedtls_mpi_grow 0x8c1c n/a 132 global functionCLOCK_SetClkDiv 0x5788 n/a 128 global functionCLOCK_SetupFROClocking 0x5808 n/a 128 global functionUSART_GetDefaultConfig 0x65d0 n/a 128 global functionmbedtls_ecp_group_init 0x7888 n/a 126 global functionjump_to_application 0x830 n/a 124 local functionmbedtls_mpi_read_binary 0x907a n/a 122 global functionCASPER_ecc_init 0x166c n/a 120 global functionmultiply_casper 0x32d0 n/a 120 local function_initio 0x6bf4 n/a 120 global functionFLEXCOMM_SetPeriph 0xc3e0 n/a 116 local functionCASPER_ECC_equal 0x16e4 n/a 112 global function_Cwritebuf 0x6ca8 n/a 108 global functionhashcrypt_sha_one_block 0xc576 n/a 108 local functionPrintGetWidth 0x6f50 n/a 106 local functionDbgConsole_Vprintf 0x3e8 n/a 104 global functiontoMontgomery_ECC_P384 0x4cac n/a 104 local functionmbedtls_mpi_bitlen 0x8f30 n/a 104 global function_fdopen 0xcee2 n/a 104 global functionDbgConsole_PrintCallback 0x6ebe n/a 102 local functionmbedtls_mpi_lsb 0x8e88 n/a 102 global functionmpi_bigendian_to_host 0x9014 n/a 102 local functionResetISR 0x180 n/a 100 global functiontoMontgomery_ECC_P256 0x4820 n/a 100 local functionSystemInit 0x6868 n/a 100 weak functionHAL_UartSendBlocking 0x69dc n/a 100 global functionFLEXCOMM_PeripheralIsPresent 0xc37c n/a 100 local functionmbedtls_ecp_copy 0x7a48 n/a 98 global functiontoMontgomery_ECC_P521 0x4f7c n/a 96 local functionRESET_ClearPeripheralReset 0x63a4 n/a 96 global functionmbedtls_mpi_sub_mod 0x7b64 n/a 96 local functionSerialManager_Init 0xcb56 n/a 96 global functionSerialManager_OpenReadHandle 0xcc06 n/a 96 global functionreverse_array 0x8138 n/a 94 local functionHASHCRYPT_SHA 0xc6fe n/a 94 global functionFLEXCOMM0_DriverIRQHandler 0x5aa0 n/a 92 global functionFLEXCOMM1_DriverIRQHandler 0x5afc n/a 92 global functionFLEXCOMM2_DriverIRQHandler 0x5b58 n/a 92 global functionFLEXCOMM3_DriverIRQHandler 0x5bb4 n/a 92 global functionFLEXCOMM4_DriverIRQHandler 0x5c10 n/a 92 global functionFLEXCOMM5_DriverIRQHandler 0x5c6c n/a 92 global functionFLEXCOMM6_DriverIRQHandler 0x5cc8 n/a 92 global functionFLEXCOMM7_DriverIRQHandler 0x5d24 n/a 92 global functionFLEXCOMM8_DriverIRQHandler 0x5d80 n/a 92 global functionRESET_SetPeripheralReset 0x6348 n/a 92 global functionmbedtls_mpi_add_mod 0x7bc4 n/a 92 local functionmbedtls_mpi_lset 0x8dea n/a 92 global functionBOARD_BootClockFROHF96M 0x6a98 n/a 88 global functionmbedtls_mpi_shift_l_mod 0x7c20 n/a 88 local functionfclose 0xcf9c n/a 88 global functionmbedtls_mpi_resize_clear 0x8ca0 n/a 86 local functionDbgConsole_SendDataReliable 0x25c n/a 84 global functioncalculate_sha256 0x450 n/a 84 local functionmbedtls_ecp_set_zero 0x7aaa n/a 82 global function_fflush 0xcf4a n/a 82 global functionecp_add 0xe58 n/a 80 global functionFLEXCOMM_Init 0x5a50 n/a 80 global functionPOWER_SetVoltageForFreq 0x62f8 n/a 80 global functionHASHCRYPT_SHA_Init 0xc75c n/a 80 global functionSerialManager_OpenWriteHandle 0xcbb6 n/a 80 global functioncalloc 0xcdc6 n/a 80 global functionstrlen 0xce54 n/a 78 global functionFLEXCOMM_GetInstance 0x5a04 n/a 76 global functionmbedtls_mpi_free 0x8bd0 n/a 76 global functionCASPER_ECC_equal_to_zero 0x1754 n/a 72 global functionmpi_uint_bigendian_to_host_c 0x8fb4 n/a 72 local functionadd32 0x8264 n/a 70 local functionsub32 0x82aa n/a 70 local functionftell 0x6e48 n/a 68 global functionPrintOutputdifFobpu 0x70aa n/a 68 local functionPrintOutputxX 0x70ee n/a 68 local functionmbedtls_mpi_cmp_int 0x9676 n/a 68 global functionSerialManager_Write 0xcb12 n/a 68 local functionmbedtls_mpi_get_bit 0x8e46 n/a 66 global functionmbedtls_clz 0x8eee n/a 66 local functionPrintGetRadixFromobpu 0x71c8 n/a 64 local functionmbedtls_mpi_mul_mod 0x7b24 n/a 64 local function_deferredlazyseek 0xcea2 n/a 64 global function_do_fflush 0xd008 n/a 64 global functiontoc_verification_key 0xda84 n/a 64 local objectPrintFilterLengthFlag 0x718a n/a 62 local functionSerial_UartInit 0xcc86 n/a 62 global functionsetvbuf 0xce16 n/a 62 global functionBOARD_InitDEBUG_UARTPins 0x6af0 n/a 60 global function_sbrk 0x6c6c n/a 60 global functionfflush 0x6d14 n/a 60 global functionhashcrypt_sha_check_input_args 0xc53a n/a 60 local functionBOARD_InitDebugConsole 0x6a40 n/a 56 global functionPrintIsobpu 0x7046 n/a 56 local functionUSART_EnableContinuousSCLK 0xc9fa n/a 56 local functionSerialManager_StartWriting 0xcada n/a 56 local functionSerial_UartWrite 0xccc4 n/a 56 global functionHardFault_Handler 0x77f8 n/a 54 global functionHAL_UartInit 0xca62 n/a 54 global functionmbedtls_ecp_point_free 0x7932 n/a 52 global functionmbedtls_ecp_keypair_free_o 0x79fe n/a 52 global function__aeabi_lowlevel_memset 0xd1f2 n/a 50 global functionmbedtls_ecdsa_verify 0xc2e8 n/a 48 global functionCLOCK_EnableClock 0xc34c n/a 48 local functionfree 0xcd96 n/a 48 global functionmbedtls_ecp_get_type 0x782e n/a 46 global functionIOCON_PinMuxSet 0xcd46 n/a 46 local function__assertion_failed 0x230 n/a 44 global functionecp_mpi_set1 0x120c n/a 44 local functionDbgConsole_Printf 0x6f24 n/a 44 global functionPrintIsdi 0x707e n/a 44 local functionPrintIsfF 0x7132 n/a 44 local functionPrintIsxX 0x715e n/a 44 local functionmbedtls_ecp_point_init 0x785c n/a 44 global functionmbedtls_ecp_keypair_init 0x7906 n/a 44 global functionecp_mpi_load 0x8196 n/a 44 local functionhashcrypt_engine_init 0xc4e4 n/a 44 local functionhashcrypt_sha_check_input_alg 0xc510 n/a 42 local function__aeabi_memcpy4 0xd1c8 n/a 42 global function__aeabi_memcpy8 0xd1c8 n/a 42 global functionmbedtls_platform_zeroize 0x14b8 n/a 40 global functionmbedtls_ecp_is_zero 0x7afc n/a 40 global functionStrFormatExaminedi 0x72ca n/a 38 local functionStrFormatExaminexX 0x72f0 n/a 38 local functionStrFormatExamineobpu 0x7316 n/a 38 local functionmbedtls_mpi_init 0x8baa n/a 38 global functioncasper_get_word 0x24f0 n/a 36 local functionmbedtls_mpi_sub_mpi 0x9abe n/a 36 global functions_flexcommBaseAddrs 0xdbd8 n/a 36 local objects_flexcommResets 0xdc10 n/a 36 local objectmpi_sint_abs 0x8dc8 n/a 34 local functionmbedtls_mpi_add_mpi 0x9a9c n/a 34 global functionHAL_UartGetStatus 0xca40 n/a 34 local functionDisableGlobalIRQ 0xca98 n/a 34 local functionPOWER_DisablePD 0x56c8 n/a 32 local functionConvertPrecisionWidthToLength 0x733c n/a 32 local functionEnableGlobalIRQ 0xcaba n/a 32 local functionSerialManager_WriteBlocking 0xcc66 n/a 32 global functionsecp256r1_p 0xdac4 n/a 32 local objectsecp256r1_a 0xdae4 n/a 32 local objectsecp256r1_b 0xdb04 n/a 32 local objectsecp256r1_gx 0xdb24 n/a 32 local objectsecp256r1_gy 0xdb44 n/a 32 local objectsecp256r1_n 0xdb64 n/a 32 local objects_UsartAdapterBase 0xdc34 n/a 32 local objectdata_init 0x1e8 n/a 30 global functionmbedtls_mpi_zeroize 0x8b8c n/a 30 local functionmbedtls_ecdsa_free 0xc32e n/a 30 global functionmbedtls_mpi_size 0x8f98 n/a 28 global functionRESET_PeripheralReset 0xc9de n/a 28 global functionfsl_assert_hook 0x6ea4 n/a 26 weak function__check_heap_overflow 0x6e8c n/a 24 global functionmpi_uint_bigendian_to_host 0x8ffc n/a 24 local functionmbedtls_ecdsa_can_do 0xc2d0 n/a 24 global functionhashcrypt_save_running_hash 0xc6d0 n/a 24 local functionmbedtls_ecp_keypair_free 0x7a32 n/a 22 global functionmbedtls_ecdsa_init 0xc318 n/a 22 global functionhashcrypt_restore_running_hash 0xc6e8 n/a 22 local functionremove 0xcff4 n/a 20 global functionbss_init 0x206 n/a 18 global functions_flexcommClocks 0xdbfc n/a 18 local objectSystemInitHook 0xca32 n/a 14 weak functionBOARD_InitPeripherals 0xccfc n/a 14 global function__main 0xcd80 n/a 14 global functionBOARD_InitBootPeripherals 0xcd0a n/a 12 global functionBOARD_InitBootPins 0xcd74 n/a 12 global function__aeabi_memcpy 0xd1be n/a 10 global function As far as I know, the CASPER  can't perform ECDSA verification on its own - it seems to require mbedTLS as a wrapper, which brings in all the additional code. I've deactivated almost everything in the ksdk_mbedtls_config.h file. Questions Is there a way to use the CASPER hardware directly for ECDSA verification without the mbedTLS overhead? Are there any ROM-based cryptographic functions in the LPC55S28 that could handle ECDSA verification? Does anyone have a minimal implementation of ECDSA P-256 verification for the LPC55S28 that could fit within my 32KB constraint? Are there alternatives to mbedTLS with a smaller footprint? Re: Help with ECDSA Verification in LPC55S28 Bootloader (32KB Size Limit) This ticket was handled via email due to an issue with the community platform at that time.
查看全文
LPC55S28引导加载程序中的ECDSA验证帮助(32KB大小限制) NXP社区的各位朋友,大家好! 我正在为 LPC55S28 开发一个安全引导加载程序,但在实现 ECDSA 签名验证时遇到了严重的代码大小问题。 当前问题 我的引导加载程序需要验证 ECDSA P-256 签名,并且它必须能够容纳在 32KB 的闪存区域中。当使用 mbedTLS 进行 ECDSA 验证时(即使是仅启用 ECDSA 的最小配置),我的代码大小也会从大约 13KB 激增至 56KB: 剧透 (高亮部分可供阅读) 名称 运行地址 加载地址 大小 类型 。文本0x0 不适用 56412 节 mpi_mul_hlp 0x9ae2 不适用 6388 本地函数 ecp_mod_p256 0x839c 不适用 2032 本地函数 shiftleft 0x2bd0 不适用 1792 本地函数 MultprecCiosMul521_ct 0x4fdc 不适用 1772 本地函数 右移 0x2514 不适用 1724 本地函数 双标量乘法 0x3fb4 不适用 1580 全局函数 MultprecCiosMul_ct 0x1b4c 不适用 1444 本地函数 mbedtls_mpi_div_mpi 0xb69c 不适用 1316 全局函数 mbedtls_mpi_inv_mod 0xbdfa 不适用 1090 全局函数 precompute_double_scalar_LUT16 0x3aac n/a 1084 本地函数 invert_mod_p384 0x4884 不适用 1062 本地函数 ecp_double_jac 0x7d6c 不适用 972 本地函数 ecp_add_mixed 0xac8 不适用 912 本地函数 mbedtls_ecp_muladd_restartable 0xea8 不适用 868 全局函数 Jac_addition 0x33ec 不适用 776 全局函数 StrFormatPrintf 0x735c 不适用 700 全局函数 invert_mod_p521 0x4d14 不适用 616 本地函数 invert_mod_p256 0x45e0 不适用 576 本地函数 verify_ecdsa_signature 0x4a4 不适用 544 本地函数 Jac_add_affine 0x36f4 不适用 536 全局函数 ecdsa_verify_restartable 0x12c0 不适用 504 本地函数 USART_Init 0x6404 不适用 460 全局函数 mbedtls_mpi_gcd 0xbc4a 不适用 432 全局函数 CASPER_montadd 0x21f0 不适用 428 本地函数 hashcrypt_sha_process_message_data 0x5ddc 不适用 420 本地函数 Jac_double 0x390c 不适用 416 全局函数 USART_SetBaudRate 0x6650 不适用 396 全局函数 mbedtls_mpi_mul_mpi 0xb3d6 不适用 382 全局函数 CLOCK_SetFLASHAccessCyclesForFreq 0x5888 不适用 380 全局函数 __aeabi_uldivmod 0xd048 不适用 372 全局函数 mbedtls_mpi_add_abs 0x96ba 不适用 366 全局函数 read_and_verify_toc 0x6c4 不适用 364 本地函数 CASPER_ECC_SECP521R1_MulAdd 0x19f4 不适用 344 全局函数 CASPER_half 0x239c 不适用 340 本地函数 lowpower_set_system_voltage 0x6024 不适用 340 本地函数 mbedtls_mpi_shift_l 0x91bc 不适用 330 全局函数 mbedtls_mpi_sub_abs 0x98ba 不适用 326 全局函数 CASPER_ECC_SECP256R1_MulAdd 0x179c 不适用 324 全局函数 DbgConsole_Init 0x2b0 不适用 312 全局函数 mbedtls_mpi_shift_r 0x9306 不适用 310 全局函数 mbedtls_mpi_cmp_mpi 0x9540 不适用 310 全局函数 __Vectors 0x0 不适用 304 全局对象 g_pfnVectors 0x0 不适用 304 全局对象 CASPER_ECC_SECP384R1_MulAdd 0x18e0 不适用 276 全局函数 HAL_UartInitCommon 0x68cc 不适用 272 本地函数 mbedtls_mpi_cmp_abs 0x943c 不适用 260 全局函数 CASPER_montsub 0x20f0 不适用 256 本地函数 CASPER_MEMCPY 0x14e0 不适用 252 全局函数 fseek 0x6d50 不适用 248 全局函数 ecp_normalize_jac 0x7c78 不适用 244 本地函数 hashcrypt_sha_finalize 0xc5e2 不适用 238 本地函数 lowpower_set_dcdc_power_profile 0x6178 不适用 236 本地函数 mbedtls_mpi_copy 0x8cf6 不适用 210 全局函数 ecp_modp 0x9f8 不适用 208 本地函数 HASHCRYPT_SHA_Update 0xc7ac 不适用 208 全局函数 precompute_double_scalar_LUT4 0x3ee8 不适用 204 本地函数 mbedtls_ecp_point_read_binary 0x930 不适用 200 全局函数 malloc 0x6b2c n/a 200 全局函数 mbedtls_mpi_write_binary 0x90f4 不适用 200 全局函数 ConvertRadixNumToString 0x7208 不适用 194 本地函数 HASHCRYPT_SHA_Finish 0xc87c 不适用 184 全局函数 mbedtls_int_div_int 0xb5e8 不适用 180 本地函数 mbedtls_ecp_fix_negative 0x82f0 不适用 172 本地函数 lowpower_set_voltage_for_process 0xc934 不适用 170 本地函数 Jac_toAffine 0x3348 不适用 164 全局函数 HASHCRYPT_DriverIRQHandler 0x5f80 不适用 164 全局函数 ecp_group_load 0x81c2 不适用 162 本地函数 CLOCK_AttachClk 0x56e8 不适用 160 全局函数 add_sub_mpi 0x9a00 不适用 156 本地函数 mbedtls_ecp_group_free 0x7966 不适用 152 全局函数 lowpower_get_part_process_corner 0x6264 不适用 148 本地函数 mbedtls_mpi_mul_int 0xb554 不适用 148 全局函数 derive_mpi 0xc23c 不适用 148 本地函数 mpi_sub_hlp 0x9828 不适用 146 本地函数 casper_select 0x15dc 不适用 144 本地函数 hashcrypt_get_data 0xc454 不适用 144 本地函数 USART_WriteBlocking 0x67dc 不适用 140 全局函数 PrintGetPrecision 0x6fba 不适用 140 本地函数 mbedtls_mpi_mod_mpi 0xbbc0 不适用 138 全局函数 mbedtls_ecp_group_load 0x1238 不适用 136 全局函数 主 0x8ac 不适用 132 全局函数 mbedtls_mpi_grow 0x8c1c 不适用 132 全局函数 CLOCK_SetClkDiv 0x5788 不适用 128 全局函数 CLOCK_SetupFROClocking 0x5808 不适用 128 全局函数 USART_GetDefaultConfig 0x65d0 不适用 128 全局函数 mbedtls_ecp_group_init 0x7888 不适用 126 全局函数 jump_to_application 0x830 不适用 124 本地函数 mbedtls_mpi_read_binary 0x907a 不适用 122 全局函数 CASPER_ecc_init 0x166c 不适用 120 全局函数 multiply_casper 0x32d0 不适用 120 本地函数 _initio 0x6bf4 不适用 120 全局函数 FLEXCOMM_SetPeriph 0xc3e0 不适用 116 本地函数 CASPER_ECC_equal 0x16e4 不适用 112 全局函数 _Cwritebuf 0x6ca8 不适用 108 全局函数 hashcrypt_sha_one_block 0xc576 不适用 108 本地函数 PrintGetWidth 0x6f50 不适用 106 本地函数 DbgConsole_Vprintf 0x3e8 不适用 104 全局函数 toMontgomery_ECC_P384 0x4cac 不适用 104 本地函数 mbedtls_mpi_bitlen 0x8f30 不适用 104 全局函数 _fdopen 0xcee2 不适用 104 全局函数 DbgConsole_PrintCallback 0x6ebe 不适用 102 本地函数 mbedtls_mpi_lsb 0x8e88 不适用 102 全局函数 mpi_bigendian_to_host 0x9014 不适用 102 本地函数 ResetISR 0x180 n/a 100 全局函数 toMontgomery_ECC_P256 0x4820 不适用 100 本地函数 SystemInit 0x6868 不适用 100 弱函数 HAL_UartSendBlocking 0x69dc 不适用 100 全局函数 FLEXCOMM_PeripheralIsPresent 0xc37c 不适用 100 本地功能 mbedtls_ecp_copy 0x7a48 不适用 98 全局函数 toMontgomery_ECC_P521 0x4f7c 不适用 96 本地函数 RESET_ClearPeripheralReset 0x63a4 不适用 96 全局函数 mbedtls_mpi_sub_mod 0x7b64 不适用 96 本地函数 SerialManager_Init 0xcb56 不适用 96 全局函数 SerialManager_OpenReadHandle 0xcc06 不适用 96 全局函数 反向数组 0x8138 不适用 94 本地函数 HASHCRYPT_SHA 0xc6fe 不适用 94 全局函数 FLEXCOMM0_DriverIRQHandler 0x5aa0 不适用 92 全局函数 FLEXCOMM1_DriverIRQHandler 0x5afc 不适用 92 全局函数 FLEXCOMM2_DriverIRQHandler 0x5b58 不适用 92 全局函数 FLEXCOMM3_DriverIRQHandler 0x5bb4 不适用 92 全局函数 FLEXCOMM4_DriverIRQHandler 0x5c10 不适用 92 全局函数 FLEXCOMM5_DriverIRQHandler 0x5c6c 不适用 92 全局函数 FLEXCOMM6_DriverIRQHandler 0x5cc8 不适用 92 全局函数 FLEXCOMM7_DriverIRQHandler 0x5d24 不适用 92 全局函数 FLEXCOMM8_DriverIRQHandler 0x5d80 不适用 92 全局函数 RESET_SetPeripheralReset 0x6348 不适用 92 全局函数 mbedtls_mpi_add_mod 0x7bc4 不适用 92 本地函数 mbedtls_mpi_lset 0x8dea 不适用 92 全局函数 BOARD_BootClockFROHF96M 0x6a98 不适用 88 全局函数 mbedtls_mpi_shift_l_mod 0x7c20 不适用 88 本地函数 fclose 0xcf9c 不适用 88 全局函数 mbedtls_mpi_resize_clear 0x8ca0 不适用 86 本地函数 DbgConsole_SendDataReliable 0x25c 不适用 84 全局函数 calculate_sha256 0x450 不适用 84 本地函数 mbedtls_ecp_set_zero 0x7aaa 不适用 82 全局函数 _fflush 0xcf4a 不适用 82 全局函数 ecp_add 0xe58 不适用 80 全局函数 FLEXCOMM_Init 0x5a50 不适用 80 全局函数 POWER_SetVoltageForFreq 0x62f8 不适用 80 全局函数 HASHCRYPT_SHA_Init 0xc75c 不适用 80 全局函数 SerialManager_OpenWriteHandle 0xcbb6 不适用 80 全局函数 calloc 0xcdc6 不适用 80 全局函数 strlen 0xce54 不适用 78 全局函数 FLEXCOMM_GetInstance 0x5a04 不适用 76 全局函数 mbedtls_mpi_free 0x8bd0 不适用 76 全局函数 CASPER_ECC_equal_to_zero 0x1754 不适用 72 全局函数 mpi_uint_bigendian_to_host_c 0x8fb4 不适用 72 本地函数 add32 0x8264 不适用 70 本地函数 sub32 0x82aa 不适用 70 本地函数 ftell 0x6e48 不适用 68 全局函数 PrintOutputdifFobpu 0x70aa n/a 68 本地函数 PrintOutputxX 0x70ee 不适用 68 本地函数 mbedtls_mpi_cmp_int 0x9676 不适用 68 全局函数 SerialManager_Write 0xcb12 不适用 68 本地函数 mbedtls_mpi_get_bit 0x8e46 不适用 66 全局函数 mbedtls_clz 0x8eee 不适用 66 本地函数 PrintGetRadixFromobpu 0x71c8 不适用 64 本地函数 mbedtls_mpi_mul_mod 0x7b24 不适用 64 本地函数 _deferredlazyseek 0xcea2 不适用 64 全局函数 _do_fflush 0xd008 不适用 64 全局函数 toc_verification_key 0xda84 不适用 64 本地对象 PrintFilterLengthFlag 0x718a 不适用 62 本地函数 Serial_UartInit 0xcc86 不适用 62 全局函数 setvbuf 0xce16 不适用 62 全局函数 BOARD_InitDEBUG_UARTPins 0x6af0 不适用 60 全局函数 _sbrk 0x6c6c 不适用 60 全局函数 fflush 0x6d14 不适用 60 全局函数 hashcrypt_sha_check_input_args 0xc53a 不适用 60 本地函数 BOARD_InitDebugConsole 0x6a40 不适用 56 全局函数 PrintIsobpu 0x7046 不适用 56 本地函数 USART_EnableContinuousSCLK 0xc9fa 不适用 56 本地函数 SerialManager_StartWriting 0xcada n/a 56 本地函数 Serial_UartWrite 0xccc4 不适用 56 全局函数 HardFault_Handler 0x77f8 不适用 54 全局函数 HAL_UartInit 0xca62 不适用 54 全局函数 mbedtls_ecp_point_free 0x7932 不适用 52 全局函数 mbedtls_ecp_keypair_free_o 0x79fe 不适用 52 全局函数 __aeabi_lowlevel_memset 0xd1f2 不适用 50 全局函数 mbedtls_ecdsa_verify 0xc2e8 不适用 48 全局函数 CLOCK_EnableClock 0xc34c 不适用 48 本地函数 免费 0xcd96 不适用 48 全局函数 mbedtls_ecp_get_type 0x782e 不适用 46 全局函数 IOCON_PinMuxSet 0xcd46 不适用 46 本地函数 __assertion_failed 0x230 不适用 44 全局函数 />ecp_mpi_set1 0x120c 不适用 44 本地函数 DbgConsole_Printf 0x6f24 不适用 44 全局函数 PrintIsdi 0x707e 不适用 44 本地函数 PrintIsfF 0x7132 不适用 44 本地函数 PrintIsxX 0x715e 不适用 44 本地函数 mbedtls_ecp_point_init 0x785c 不适用 44 全局函数 mbedtls_ecp_keypair_init 0x7906 不适用 44 全局函数 ecp_mpi_load 0x8196 不适用 44 本地函数 hashcrypt_engine_init 0xc4e4 不适用 44 本地函数 hashcrypt_sha_check_input_alg 0xc510 不适用 42 本地函数 __aeabi_memcpy4 0xd1c8 不适用 42 全局函数 __aeabi_memcpy8 0xd1c8 不适用 42 全局函数 mbedtls_platform_zeroize 0x14b8 不适用 40 全局函数 mbedtls_ecp_is_zero 0x7afc 不适用 40 全局函数 StrFormatExaminedi 0x72ca 不适用 38 本地函数 StrFormatExaminexX 0x72f0 不适用 38 本地函数 StrFormatExamineobpu 0x7316 不适用 38 本地函数 mbedtls_mpi_init 0x8baa 不适用 38 全局函数 casper_get_word 0x24f0 不适用 36 本地函数 mbedtls_mpi_sub_mpi 0x9abe 不适用 36 全局函数 s_flexcommBaseAddrs 0xdbd8 不适用 36 本地对象 s_flexcommResets 0xdc10 不适用 36 本地对象 mpi_sint_abs 0x8dc8 不适用 34 本地函数 mbedtls_mpi_add_mpi 0x9a9c 不适用 34 全局函数 HAL_UartGetStatus 0xca40 不适用 34 本地函数 DisableGlobalIRQ 0xca98 不适用 34 本地函数 POWER_DisablePD 0x56c8 不适用 32 本地函数 ConvertPrecisionWidthToLength 0x733c 不适用 32 本地函数 启用全局中断 0xcaba 不适用 32 本地函数 SerialManager_WriteBlocking 0xcc66 不适用 32 全局函数 secp256r1_p 0xdac4 不适用 32 本地对象 secp256r1_a 0xdae4 不适用 32 本地对象 secp256r1_b 0xdb04 不适用 32 本地对象 secp256r1_gx 0xdb24 不适用 32 本地对象 secp256r1_gy 0xdb44 不适用 32 本地对象 secp256r1_n 0xdb64 不适用 32 本地对象 s_UsartAdapterBase 0xdc34 不适用 32 本地对象 data_init 0x1e8 不适用 30 全局函数 mbedtls_mpi_zeroize 0x8b8c 不适用 30 本地函数 mbedtls_ecdsa_free 0xc32e 不适用 30 全局函数 mbedtls_mpi_size 0x8f98 不适用 28 全局函数 RESET_PeripheralReset 0xc9de 不适用 28 全局函数 fsl_assert_hook 0x6ea4 不适用 26 弱函数 __check_heap_overflow 0x6e8c 不适用 24 全局函数 mpi_uint_bigendian_to_host 0x8ffc 不适用 24 本地函数 mbedtls_ecdsa_can_do 0xc2d0 不适用 24 全局函数 hashcrypt_save_running_hash 0xc6d0 不适用 24 本地函数 mbedtls_ecp_keypair_free 0x7a32 不适用 22 全局函数 mbedtls_ecdsa_init 0xc318 不适用 22 全局函数 hashcrypt_restore_running_hash 0xc6e8 不适用 22 本地函数 移除 0xcff4 不适用 20 全局函数 bss_init 0x206 不适用 18 全局函数 s_flexcommClocks 0xdbfc 不适用 18 本地对象 SystemInitHook 0xca32 不适用 14 弱函数 BOARD_InitPeripherals 0xccfc 不适用 14 全局函数 __main 0xcd80 不适用 14 全局函数 BOARD_InitBootPeripherals 0xcd0a 不适用 12 全局函数 BOARD_InitBootPins 0xcd74 不适用 12 全局函数 __aeabi_memcpy 0xd1be 不适用 10 全局函数 名称 运行地址 加载地址 大小 类型.text 0x0 不适用 56412 sectionmpi_mul_hlp 0x9ae2 不适用 6388 本地函数ecp_mod_p256 0x839c 不适用 2032 本地函数shiftleft 0x2bd0 不适用 1792 本地函数MultprecCiosMul521_ct 0x4fdc 不适用 1772 本地函数shiftright 0x2514 不适用 1724 本地函数double_scalar_multiplication 0x3fb4 不适用 1580 全局函数MultprecCiosMul_ct 0x1b4c 不适用 1444 本地函数mbedtls_mpi_div_mpi 0xb69c 不适用 1316 全局函数mbedtls_mpi_inv_mod 0xbdfa n/a 1090 全局函数 precompute_double_scalar_LUT16 0x3aac n/a 1084 局部函数 invert_mod_p384 0x4884 n/a 1062 局部函数 ecp_double_jac 0x7d6c n/a 972 局部函数 ecp_add_mixed 0xac8 n/a 912 局部函数 mbedtls_ecp_muladd_restartable 0xea8 n/a 868 全局函数 Jac_addition 0x33ec n/a 776 全局函数 StrFormatPrintf 0x735c n/a 700 全局函数 invert_mod_p521 0x4d14 n/a 616 局部函数 invert_mod_p256 0x45e0 n/a 576 本地函数verify_ecdsa_signature 0x4a4 不适用 544 本地函数Jac_add_affine 0x36f4 不适用 536 全局函数ecdsa_verify_restartable 0x12c0 不适用 504 本地函数USART_Init 0x6404 不适用 460 全局函数mbedtls_mpi_gcd 0xbc4a 不适用 432 全局函数CASPER_montadd 0x21f0 不适用 428 本地函数hashcrypt_sha_process_message_data 0x5ddc 不适用 420 本地函数Jac_double 0x390c 不适用 416 全局函数USART_SetBaudRate 0x6650 不适用 396 全局函数mbedtls_mpi_mul_mpi 0xb3d6 不适用 382 全局函数 CLOCK_SetFLASHAccessCyclesForFreq 0x5888 不适用 380 全局函数 __aeabi_uldivmod 0xd048 不适用 372 全局函数 mbedtls_mpi_add_abs 0x96ba 不适用 366 全局函数 read_and_verify_toc 0x6c4 不适用 364 局部函数 CASPER_ECC_SECP521R1_MulAdd 0x19f4 不适用 344 全局函数 CASPER_half 0x239c 不适用 340 局部函数 lowpower_set_system_voltage 0x6024 不适用 340 局部函数 mbedtls_mpi_shift_l 0x91bc 不适用 330 全局函数 mbedtls_mpi_sub_abs 0x98ba 不适用 326 全局函数 CASPER_ECC_SECP256R1_MulAdd 0x179c 不适用 324 全局函数 DbgConsole_Init 0x2b0 不适用 312 全局函数 mbedtls_mpi_shift_r 0x9306 不适用 310 全局函数 mbedtls_mpi_cmp_mpi 0x9540 不适用 310 全局函数 __Vectors 0x0 不适用 304 全局对象 g_pfnVectors 0x0 不适用 304 全局对象 CASPER_ECC_SECP384R1_MulAdd 0x18e0 不适用 276 全局函数 HAL_UartInitCommon 0x68cc 不适用 272 局部函数 mbedtls_mpi_cmp_abs 0x943c 不适用 260 全局函数 CASPER_montsub 0x20f0 不适用 256 局部函数 CASPER_MEMCPY 0x14e0 不适用 252 全局函数 fseek 0x6d50 不适用 248 全局函数 ecp_normalize_jac 0x7c78 不适用 244 局部函数 hashcrypt_sha_finalize 0xc5e2 不适用 238 局部函数 lowpower_set_dcdc_power_profile 0x6178 不适用 236 局部函数 mbedtls_mpi_copy 0x8cf6 不适用 210 全局函数 ecp_modp 0x9f8 不适用 208 局部函数 HASHCRYPT_SHA_Update 0xc7ac 不适用 208 全局functionprecompute_double_scalar_LUT4 0x3ee8 n/a 204 local functionmbedtls_ecp_point_read_binary 0x930 n/a 200 global functionmalloc 0x6b2c n/a 200 global functionmbedtls_mpi_write_binary 0x90f4 n/a 200 global functionConvertRadixNumToString 0x7208 n/a 194 local functionHASHCRYPT_SHA_Finish 0xc87c n/a 184 global functionmbedtls_int_div_int 0xb5e8 n/a 180 local functionmbedtls_ecp_fix_negative 0x82f0 n/a 172 local functionlowpower_set_voltage_for_process 0xc934 n/a 170 local functionJac_toAffine 0x3348 n/a 164 global functionHASHCRYPT_DriverIRQHandler 0x5f80 n/a 164 global functionecp_group_load 0x81c2 n/a 162 local functionCLOCK_AttachClk 0x56e8 n/a 160 global functionadd_sub_mpi 0x9a00 n/a 156 local functionmbedtls_ecp_group_free 0x7966 n/a 152 global functionlowpower_get_part_process_corner 0x6264 n/a 148 local functionmbedtls_mpi_mul_int 0xb554 n/a 148 global functionderive_mpi 0xc23c n/a 148 local functionmpi_sub_hlp 0x9828 n/a 146 本地函数 casper_select 0x15dc n/a 144 本地函数 hashcrypt_get_data 0xc454 n/a 144 本地函数 USART_WriteBlocking 0x67dc n/a 140 全局函数 PrintGetPrecision 0x6fba n/a 140 本地函数 mbedtls_mpi_mod_mpi 0xbbc0 n/a 138 全局函数 mbedtls_ecp_group_load 0x1238 n/a 136 全局函数 main 0x8ac n/a 132 全局函数 mbedtls_mpi_grow 0x8c1c n/a 132 全局函数 CLOCK_SetClkDiv 0x5788 n/a 128 全局函数 CLOCK_SetupFROClocking 0x5808 n/a 128 全局functionUSART_GetDefaultConfig 0x65d0 n/a 128 global functionmbedtls_ecp_group_init 0x7888 n/a 126 global functionjump_to_application 0x830 n/a 124 local functionmbedtls_mpi_read_binary 0x907a n/a 122 global functionCASPER_ecc_init 0x166c n/a 120 global functionmultiply_casper 0x32d0 n/a 120 local function_initio 0x6bf4 n/a 120 global functionFLEXCOMM_SetPeriph 0xc3e0 n/a 116 local functionCASPER_ECC_equal 0x16e4 n/a 112 global function_Cwritebuf 0x6ca8 n/a 108 global functionhashcrypt_sha_one_block 0xc576 n/a 108 local functionPrintGetWidth 0x6f50 n/a 106 local functionDbgConsole_Vprintf 0x3e8 n/a 104 global functiontoMontgomery_ECC_P384 0x4cac n/a 104 local functionmbedtls_mpi_bitlen 0x8f30 n/a 104 global function_fdopen 0xcee2 n/a 104 global functionDbgConsole_PrintCallback 0x6ebe n/a 102 local functionmbedtls_mpi_lsb 0x8e88 n/a 102 global functionmpi_bigendian_to_host 0x9014 n/a 102 local functionResetISR 0x180 n/a 100 global functiontoMontgomery_ECC_P256 0x4820 n/a 100 local functionSystemInit 0x6868 n/a 100 weak functionHAL_UartSendBlocking 0x69dc n/a 100 global functionFLEXCOMM_PeripheralIsPresent 0xc37c n/a 100 local functionmbedtls_ecp_copy 0x7a48 n/a 98 global functiontoMontgomery_ECC_P521 0x4f7c n/a 96 local functionRESET_ClearPeripheralReset 0x63a4 n/a 96 global functionmbedtls_mpi_sub_mod 0x7b64 n/a 96 local functionSerialManager_Init 0xcb56 n/a 96 global functionSerialManager_OpenReadHandle 0xcc06 n/a 96 global functionreverse_array 0x8138 n/a 94 local functionHASHCRYPT_SHA 0xc6fe n/a 94 global functionFLEXCOMM0_DriverIRQHandler 0x5aa0 n/a 92 global functionFLEXCOMM1_DriverIRQHandler 0x5afc n/a 92 global functionFLEXCOMM2_DriverIRQHandler 0x5b58 n/a 92 global functionFLEXCOMM3_DriverIRQHandler 0x5bb4 n/a 92 global functionFLEXCOMM4_DriverIRQHandler 0x5c10 n/a 92 global functionFLEXCOMM5_DriverIRQHandler 0x5c6c n/a 92 global functionFLEXCOMM6_DriverIRQHandler 0x5cc8 n/a 92 global functionFLEXCOMM7_DriverIRQHandler 0x5d24 n/a 92 global functionFLEXCOMM8_DriverIRQHandler 0x5d80 n/a 92 global functionRESET_SetPeripheralReset 0x6348 n/a 92 global functionmbedtls_mpi_add_mod 0x7bc4 n/a 92 local functionmbedtls_mpi_lset 0x8dea n/a 92 global functionBOARD_BootClockFROHF96M 0x6a98 n/a 88 global functionmbedtls_mpi_shift_l_mod 0x7c20 n/a 88 local functionfclose 0xcf9c 不适用 88 全局函数 mbedtls_mpi_resize_clear 0x8ca0 不适用 86 局部函数 DbgConsole_SendDataReliable 0x25c 不适用 84 全局函数 calculate_sha256 0x450 不适用 84 局部函数 mbedtls_ecp_set_zero 0x7aaa 不适用 82 全局函数 fflush 0xcf4a 不适用 82 全局函数 ecp_add 0xe58 不适用 80 全局函数 FLEXCOMM_Init 0x5a50 不适用 80 全局函数 POWER_SetVoltageForFreq 0x62f8 不适用 80 全局函数 HASHCRYPT_SHA_Init 0xc75c 不适用 80 全局函数 SerialManager_OpenWriteHandle 0xcbb6 n/a 80 全局函数 calloc 0xcdc6 n/a 80 全局函数 strlen 0xce54 n/a 78 全局函数 FLEXCOMM_GetInstance 0x5a04 n/a 76 全局函数 mbedtls_mpi_free 0x8bd0 n/a 76 全局函数 CASPER_ECC_equal_to_zero 0x1754 n/a 72 全局函数 mpi_uint_bigendian_to_host_c 0x8fb4 n/a 72 局部函数 add32 0x8264 n/a 70 局部函数 sub32 0x82aa n/a 70 局部函数 ftell 0x6e48 n/a 68 全局函数 PrintOutputdifFobpu 0x70aa n/a 68 局部函数 PrintOutputxX 0x70ee n/a 68 本地函数mbedtls_mpi_cmp_int 0x9676 不适用 68 全局函数SerialManager_Write 0xcb12 不适用 68 本地函数mbedtls_mpi_get_bit 0x8e46 不适用 66 全局函数mbedtls_clz 0x8eee 不适用 66 本地函数PrintGetRadixFromobpu 0x71c8不适用 64 本地函数mbedtls_mpi_mul_mod 0x7b24 不适用 64 本地 function_deferredlazyseek 0xcea2 不适用 64 全局 function_do_fflush 0xd008 不适用 64 全局函数toc_verification_key 0xda84 不适用 64 本地 objectPrintFilterLengthFlag 0x718a 不适用 62 本地functionSerial_UartInit 0xcc86 n/a 62 global functionssetvbuf 0xce16 n/a 62 global functionBOARD_InitDEBUG_UARTPins 0x6af0 n/a 60 global function_sbrk 0x6c6c n/a 60 global functionfflush 0x6d14 n/a 60 global functionhashcrypt_sha_check_input_args 0xc53a n/a 60 local functionBOARD_InitDebugConsole 0x6a40 n/a 56 global functionPrintIsobpu 0x7046 n/a 56 local functionUSART_EnableContinuousSCLK 0xc9fa n/a 56 local functionSerialManager_StartWriting 0xcada n/a 56 local functionSerial_UartWrite 0xccc4 n/a 56 global functionHardFault_Handler 0x77f8 n/a 54 global functionHAL_UartInit 0xca62 n/a 54 global functionmbedtls_ecp_point_free 0x7932 n/a 52 global functionmbedtls_ecp_keypair_free_o 0x79fe n/a 52 global function__aeabi_lowlevel_memset 0xd1f2 n/a 50 global functionmbedtls_ecdsa_verify 0xc2e8 n/a 48 global functionCLOCK_EnableClock 0xc34c n/a 48 local functionfree 0xcd96 n/a 48 global functionmbedtls_ecp_get_type 0x782e n/a 46 global functionIOCON_PinMuxSet 0xcd46 n/a 46 local function__assertion_failed 0x230 n/a 44 global functionecp_mpi_set1 0x120c n/a 44 local functionDbgConsole_Printf 0x6f24 n/a 44 global functionPrintIsdi 0x707e n/a 44 local functionPrintIsfF 0x7132 n/a 44 local functionPrintIsxX 0x715e n/a 44 local functionmbedtls_ecp_point_init 0x785c n/a 44 global functionmbedtls_ecp_keypair_init 0x7906 n/a 44 global functionecp_mpi_load 0x8196 n/a 44 local functionhashcrypt_engine_init 0xc4e4 n/a 44 local functionhashcrypt_sha_check_input_alg 0xc510 n/a 42 local function__aeabi_memcpy4 0xd1c8 n/a 42 global function__aeabi_memcpy8 0xd1c8 n/a 42 global functionmbedtls_platform_zeroize 0x14b8 n/a 40 global functionmbedtls_ecp_is_zero 0x7afc n/a 40 global functionStrFormatExaminedi 0x72ca n/a 38 local functionStrFormatExaminexX 0x72f0 n/a 38 local functionStrFormatExamineobpu 0x7316 n/a 38 local functionmbedtls_mpi_init 0x8baa n/a 38 global functioncasper_get_word 0x24f0 n/a 36 local functionmbedtls_mpi_sub_mpi 0x9abe 不适用 36 全局 functions_flexcommBaseAddrs 0xdbd8 不适用 36 局部 objects_flexcommResets 0xdc10 不适用 36 局部 objectmpi_sint_abs 0x8dc8 不适用 34 局部 functionmbedtls_mpi_add_mpi 0x9a9c n/a 34 global functionHAL_UartGetStatus 0xca40 n/a 34 local functionDisableGlobalIRQ 0xca98 n/a 34 local functionPOWER_DisablePD 0x56c8 n/a 32 local functionConvertPrecisionWidthToLength 0x733c n/a 32 local functionEnableGlobalIRQ 0xcaba n/a 32 local functionSerialManager_WriteBlocking 0xcc66 n/a 32 global functionsecp256r1_p 0xdac4 n/a 32 local objectsecp256r1_a 0xdae4 n/a 32 local objectsecp256r1_b 0xdb04 n/a 32 local objectsecp256r1_gx 0xdb24 n/a 32 本地对象secp256r1_gy 0xdb44 n/a 32 本地对象secp256r1_n 0xdb64 n/a 32 本地对象_UsartAdapterBase 0xdc34 n/a 32 本地对象data_init 0x1e8 n/a 30 全局函数mbedtls_mpi_zeroize 0x8b8c n/a 30 本地函数mbedtls_ecdsa_free 0xc32e n/a 30 全局函数mbedtls_mpi_size 0x8f98 n/a 28 全局函数RESET_PeripheralReset 0xc9de n/a 28 全局函数fsl_assert_hook 0x6ea4 n/a 26 弱函数__check_heap_overflow 0x6e8c n/a 24 全局functionmpi_uint_bigendian_to_host 0x8ffc n/a 24 local functionmbedtls_ecdsa_can_do 0xc2d0 n/a 24 global functionhashcrypt_save_running_hash 0xc6d0 n/a 24 local functionmbedtls_ecp_keypair_free 0x7a32 n/a 22 global functionmbedtls_ecdsa_init 0xc318 n/a 22 global functionhashcrypt_restore_running_hash 0xc6e8 n/a 22 local functionremove 0xcff4 n/a 20 global functionbss_init 0x206 n/a 18 global functions_flexcommClocks 0xdbfc n/a 18 local objectSystemInitHook 0xca32 n/a 14 weak functionBOARD_InitPeripherals 0xccfc n/a 14 global function__main 0xcd80 n/a 14 global functionBOARD_InitBootPeripherals 0xcd0a n/a 12 global functionBOARD_InitBootPins 0xcd74 n/a 12 global function__aeabi_memcpy 0xd1be n/a 10 global function 据我所知,CASPER 本身无法执行 ECDSA 验证——它似乎需要 mbedTLS 作为包装器,而 mbedTLS 会引入所有额外的代码。 我已经停用了 ksdk_mbedtls_config.h 文件中的几乎所有内容。 问题 是否有办法直接使用 CASPER 硬件进行 ECDSA 验证,而无需 mbedTLS 开销? LPC55S28 中是否有任何基于 ROM 的加密功能可以处理 ECDSA 验证? 有没有人能提供一个符合我 32KB 限制的 LPC55S28 的 ECDSA P-256 验证的最小实现版本? 是否有比 mbedTLS 占用空间更小的替代方案? Re: Help with ECDSA Verification in LPC55S28 Bootloader (32KB Size Limit) 由于当时社区平台出现问题,此工单是通过电子邮件处理的。
查看全文
SJA1110 Qbv AdminBaseTime 配置 尊敬的恩智浦半导体成员们: 我一直在研究 S32G-VNP-RDB3 板上的 SJA1110 交换机的配置,以启用 TSN 功能,例如 PTP 和 Qbv。 我正在使用 S32 Design Studio 的 SJA1110 SDK 来配置交换机,生成更新的 sja1110_uc.bin 文件,并将其部署到 S32G 板上。 虽然我已经能够理解和测试大多数 Qbv 参数的配置,但我无法掌握 QBV 管理参数表中 ADMINBASETIME[31:0] 和 ADMINBASETIME[63:32] 的正确配置。 根据文档um549820-UM11107《SJA1110(2.0)软件用户手册》中的说明,ADMINBASETIME 的解释如下: 定义用于基准时间的管理值,以 PTP/free 表示。 运行时间尺度,用于在计算时间点时作为参考 重新配置的门周期开始(CycleStartTime)。 但它并没有提供任何关于如何在实际项目中计算该值的线索。此外,SJA1110扩展配置演示文稿中的 SJA1110 Qbv 示例使用了 0(此参数直接开始)。 我们来看一个例子。 Qbv 配置在 SJA1110 交换机的端口 3 上,速度为 1000Mbps,粒度为 200ns。 一个周期包含 500 微秒和三个阶段: 在第一阶段,除 TC7 外,所有交通类别均开放。持续时间为 100 μs(TRIGGER_TIME = 500); 在第二段路段,只有交通等级 7 开放,其他交通等级均关闭。持续时间为 300 μs(TRIGGER_TIME = 1500); 在第三部分,除 TC7 外,所有交通类别均开放。持续时间为 100 μs(TRIGGER_TIME = 500)。 但在同一网络中,还有另一台 TSN 交换机配置了 500 μs 的 Qbv 周期,但段间隔不同。 如何计算 ADMINBASETIME 以便在 TSN 交换机之间进行同步,并确保其与 gPTP 时间戳一致? 非常感谢您的支持! Re: SJA1110 Qbv AdminBaseTime Configuration 你好@GuilhermeS32G , 是的,理想情况下,ADMINBASETIME 配置应该在运行时以编程方式设置,以确保所有交换机上的 Qbv 同步。 我建议构建 SJA1110 静态配置时,将 ADMINBASETIME 设置为 0。 ADMINBASETIME 应在 gPTP 同步建立后于运行时动态编程。在这种情况下,主机应用程序、TSN 管理堆栈、CNC 或其他自定义配置软件将读取当前同步时间,选择一个具有足够裕量的未来基准时间,写入 Qbv 管理参数(通过动态重新配置),并触发配置更改。 我不建议每次启动时都重置 gPTP 时间,仅仅为了让固定的 ADMINBASETIME 有效。 顺祝商祺! 帕维尔 Re: SJA1110 Qbv AdminBaseTime Configuration 你好@PavelL , 再次感谢您的支持。 因此,根据我的理解,理想情况下,ADMINBASETIME 配置应该在运行时以编程方式设置,以确保 Qbv 计划在未来执行。 就我而言,由于 SJA1110 交换机是在 SDL 启动 模式下启动的,所以我使用 SJA1110 SDK for S32DS 来对其固件进行编程。在这种情况下,我需要在 QBV 管理参数表中设置 ADMINBASETIME;然后构建新的固件文件;将其部署到 S32G-VNP-RDB3 板;重启板以使新配置生效。 第一次 ADMINBASETIME 会设置在未来,但如果我在后续运行中不更新固件,它就总是需要调整活动启动时间,正如您所提到的那样。 在这种情况下,直接将 ADMINBASETIME 设置为 0 岂不是更好?否则,最好在每次启动时重置 gPTP 时间。 顺祝商祺! 吉列尔梅 Re: SJA1110 Qbv AdminBaseTime Configuration 你好@GuilhermeS32G , ADMINBASETIME 应理解为 Qbv 进度表的绝对时间参考/阶段参考。它用于将重复的 Qbv 周期的开始与同步时间功能域对齐。它不是根据端口速度计算的,也不是基于 TRIGGER_TIME 粒度计算的。 在多交换机 TSN 系统中,gPTP / IEEE 802.1AS 提供通用同步时基,但它不会自动配置 Qbv 调度。Qbv 配置(包括 ADMINBASETIME)必须由 TSN 管理堆栈/CNC 或在主机处理器上运行的特定应用/自定义软件进行编程。IEEE 802.1Qcc 描述了集中式 TSN 配置模型,其中 CNC 计算 TSN 配置并将其分发到网络设备。 https://www.ieee802.org/1/files/public/docs2017/cc-Kehrer-StartOfCycleReference-0117-v01.pdf 典型的操作流程可能如下: 1. 启动 gPTP / 802.1AS,并等待所有相关的 TSN 设备同步完成。 2. 从设备/PTP 时域读取当前同步时间。 3. 选择未来的基准时间:ADMINBASETIME = 当前 gPTP 时间 + 安全裕度 功能安全裕度应该足够大,以便在达到选定的基准时间之前将配置写入所有交换机/端口。 4. 对所有必须共享同一 Qbv 循环阶段的交换机/端口设置相同的 ADMINBASETIME 和相同的循环时间。 5. 根据要求的计划对每个端口的 GCL 条目进行编程。 如果需要与 gPTP 时间戳对齐,也可以将选定的基准时间与周期边界对齐,例如: ADMINBASETIME = ceil((current_gPTP_time + safety_margin) / cycle_time) * cycle_time 这与 Linux taprio 使用的总体思路相同:基准时间定义了计划何时开始;如果基准时间已经过去,则通过添加整数个周期时间来得出活动开始时间,直到得到的开始时间在未来。 https://www.cisco.com/c/en/us/td/docs/switches/lan/cisco_ie4000/tsn/b_tsn_ios_support/b_tsn_ios_support_chapter_01.html https://deepwiki.com/nxp-qoriq/tsntool/5.2-device-configuration 对于 SJA1110,最终的 ADMINBASETIME 值必须按照 SJA1110 Qbv 配置所需的时间格式进行编码,然后拆分为: ADMINBASETIME[31:0] = 低 32 位 ADMINBASETIME[63:32] = 高 32 位 综上所述:gPTP 提供通用时间;另一个软件/配置层必须根据该时间选择和编程 Qbv ADMINBASETIME。这可以通过 TSN 管理堆栈/CNC 实现,也可以通过更简单的嵌入式系统中的自定义应用程序代码实现。 顺祝商祺! 帕维尔
查看全文
ISP模式的PIN配置 您好, LPC55S1x/LPC551x 数据表中写道: 功能 # 0 PIO1_2 — 通用数字输入/输出引脚。 备注:在ISP模式下,此引脚设置为高速。 SPI SCK 功能(Flexcomm 8)。 这是否意味着需要将功能号设置为 0 才能使此引脚用作高速引脚 ISP模式下的SPI SCK功能是什么?如果可以,如何设置ISP模式下的功能号?我可以为 ISP 模式和非 ISP 模式设置不同的功能号吗? 此致, 温斯顿 LPC55xx Re: PIN configuration for ISP mode 你好@yangao 我已经在另一个客户案例中回答过这个问题了。如果您还有任何疑问,请随时与我们联系。 BR 爱丽丝
查看全文
LPC55S28ブートローダーにおけるECDSA検証に関するヘルプ(サイズ制限32KB) こんにちは、NXPコミュニティの皆さん、 LPC55S28用のセキュアブートローダーを開発しているのですが、ECDSA署名検証を実装する際に、コードサイズがかなり大きくなるという問題に直面しました。 最新号 私のブートローダーはECDSA P-256署名を検証する必要があり、32KBのフラッシュメモリ領域内に収まる必要があります。mbedTLSを使用してECDSA検証を行う場合(ECDSAのみを有効にする最小限の設定でも)、コードサイズが約13KBから56KBに急増します。 ネタバレ (ハイライトして読む) 名前 実行アドレス ロードアドレス サイズ タイプ 。文章0x0 該当なし 56412 セクション mpi_mul_hlp 0x9ae2 n/a 6388 ローカル関数 ecp_mod_p256 0x839c n/a 2032 ローカル関数 左シフト 0x2bd0 n/a 1792 ローカル関数 MultprecCiosMul521_ct 0x4fdc n/a 1772 ローカル関数 shiftright 0x2514 n/a 1724 ローカル関数 倍精度スカラー乗算 0x3fb4 該当なし 1580 グローバル関数 MultprecCiosMul_ct 0x1b4c n/a 1444 ローカル関数 mbedtls_mpi_div_mpi 0xb69c 該当なし 1316 グローバル関数 mbedtls_mpi_inv_mod 0xbdfa n/a 1090 グローバル関数 precompute_double_scalar_LUT16 0x3aac n/a 1084 ローカル関数 invert_mod_p384 0x4884 n/a 1062 ローカル関数 ecp_double_jac 0x7d6c n/a 972 ローカル関数 ecp_add_mixed 0xac8 n/a 912 ローカル関数 mbedtls_ecp_muladd_restartable 0xea8 n/a 868 グローバル関数 Jac_addition 0x33ec n/a 776 グローバル関数 StrFormatPrintf 0x735c n/a 700 グローバル関数 invert_mod_p521 0x4d14 n/a 616 ローカル関数 invert_mod_p256 0x45e0 n/a 576 ローカル関数 verify_ecdsa_signature 0x4a4 n/a 544 ローカル関数 Jac_add_affine 0x36f4 n/a 536 グローバル関数 ecdsa_verify_restartable 0x12c0 n/a 504 ローカル関数 USART_Init 0x6404 n/a 460 グローバル関数 mbedtls_mpi_gcd 0xbc4a n/a 432 グローバル関数 CASPER_montadd 0x21f0 n/a 428 ローカル関数 hashcrypt_sha_process_message_data 0x5ddc n/a 420 ローカル関数 Jac_double 0x390c n/a 416 グローバル関数 USART_SetBaudRate 0x6650 n/a 396 グローバル関数 mbedtls_mpi_mul_mpi 0xb3d6 n/a 382 グローバル関数 CLOCK_SetFLASHAccessCyclesForFreq 0x5888 n/a 380 グローバル関数 __aeabi_uldivmod 0xd048 n/a 372 グローバル関数 mbedtls_mpi_add_abs 0x96ba n/a 366 グローバル関数 read_and_verify_toc 0x6c4 n/a 364 ローカル関数 CASPER_ECC_SECP521R1_MulAdd 0x19f4 n/a 344 グローバル関数 CASPER_half 0x239c n/a 340 ローカル関数 lowpower_set_system_voltage 0x6024 n/a 340 ローカル関数 mbedtls_mpi_shift_l 0x91bc n/a 330 グローバル関数 mbedtls_mpi_sub_abs 0x98ba n/a 326 グローバル関数 CASPER_ECC_SECP256R1_MulAdd 0x179c n/a 324 グローバル関数 DbgConsole_Init 0x2b0 n/a 312 グローバル関数 mbedtls_mpi_shift_r 0x9306 n/a 310 グローバル関数 mbedtls_mpi_cmp_mpi 0x9540 n/a 310 グローバル関数 __ベクトル 0x0 n/a 304 グローバルオブジェクト g_pfnVectors 0x0 n/a 304 グローバルオブジェクト CASPER_ECC_SECP384R1_MulAdd 0x18e0 n/a 276 グローバル関数 HAL_UartInitCommon 0x68cc n/a 272 ローカル関数 mbedtls_mpi_cmp_abs 0x943c n/a 260 グローバル関数 CASPER_montsub 0x20f0 n/a 256 ローカル関数 CASPER_MEMCPY 0x14e0 n/a 252 グローバル関数 fseek 0x6d50 n/a 248 グローバル関数 ecp_normalize_jac 0x7c78 n/a 244 ローカル関数 hashcrypt_sha_finalize 0xc5e2 n/a 238 ローカル関数 lowpower_set_dcdc_power_profile 0x6178 n/a 236 ローカル関数 mbedtls_mpi_copy 0x8cf6 n/a 210 グローバル関数 ecp_modp 0x9f8 n/a 208 ローカル関数 HASHCRYPT_SHA_Update 0xc7ac n/a 208 グローバル関数 precompute_double_scalar_LUT4 0x3ee8 n/a 204 ローカル関数 mbedtls_ecp_point_read_binary 0x930 n/a 200 グローバル関数 malloc 0x6b2c n/a 200 グローバル関数 mbedtls_mpi_write_binary 0x90f4 n/a 200 グローバル関数 ConvertRadixNumToString 0x7208 n/a 194 ローカル関数 HASHCRYPT_SHA_Finish 0xc87c n/a 184 グローバル関数 mbedtls_int_div_int 0xb5e8 n/a 180 ローカル関数 mbedtls_ecp_fix_negative 0x82f0 n/a 172 ローカル関数 lowpower_set_voltage_for_process 0xc934 n/a 170 ローカル関数 Jac_toAffine 0x3348 n/a 164 グローバル関数 HASHCRYPT_DriverIRQHandler 0x5f80 n/a 164 グローバル関数 ecp_group_load 0x81c2 n/a 162 ローカル関数 CLOCK_AttachClk 0x56e8 n/a 160 グローバル関数 add_sub_mpi 0x9a00 n/a 156 ローカル関数 mbedtls_ecp_group_free 0x7966 n/a 152 グローバル関数 lowpower_get_part_process_corner 0x6264 n/a 148 ローカル関数 mbedtls_mpi_mul_int 0xb554 n/a 148 グローバル関数 derive_mpi 0xc23c n/a 148 ローカル関数 mpi_sub_hlp 0x9828 n/a 146 ローカル関数 casper_select 0x15dc n/a 144 ローカル関数 hashcrypt_get_data 0xc454 n/a 144 ローカル関数 USART_WriteBlocking 0x67dc n/a 140 グローバル関数 PrintGetPrecision 0x6fba n/a 140 ローカル関数 mbedtls_mpi_mod_mpi 0xbbc0 n/a 138 グローバル関数 mbedtls_ecp_group_load 0x1238 n/a 136 グローバル関数 メイン 0x8ac n/a 132 グローバル関数 mbedtls_mpi_grow 0x8c1c n/a 132 グローバル関数 CLOCK_SetClkDiv 0x5788 n/a 128 グローバル関数 CLOCK_SetupFROClocking 0x5808 n/a 128 グローバル関数 USART_GetDefaultConfig 0x65d0 n/a 128 グローバル関数 mbedtls_ecp_group_init 0x7888 n/a 126 グローバル関数 jump_to_application 0x830 n/a 124 ローカル関数 mbedtls_mpi_read_binary 0x907a n/a 122 グローバル関数 CASPER_ecc_init 0x166c n/a 120 グローバル関数 multiply_casper 0x32d0 n/a 120 ローカル関数 _initio 0x6bf4 n/a 120 グローバル関数 FLEXCOMM_SetPeriph 0xc3e0 n/a 116 ローカル関数 CASPER_ECC_equal 0x16e4 n/a 112 グローバル関数 _Cwritebuf 0x6ca8 n/a 108 グローバル関数 hashcrypt_sha_one_block 0xc576 n/a 108 ローカル関数 PrintGetWidth 0x6f50 n/a 106 ローカル関数 DbgConsole_Vprintf 0x3e8 n/a 104 グローバル関数 toMontgomery_ECC_P384 0x4cac n/a 104 ローカル関数 mbedtls_mpi_bitlen 0x8f30 n/a 104 グローバル関数 _fdopen 0xcee2 n/a 104 グローバル関数 DbgConsole_PrintCallback 0x6ebe n/a 102 ローカル関数 mbedtls_mpi_lsb 0x8e88 n/a 102 グローバル関数 mpi_bigendian_to_host 0x9014 n/a 102 ローカル関数 ResetISR 0x180 n/a 100 グローバル関数 toMontgomery_ECC_P256 0x4820 n/a 100 ローカル関数 SystemInit 0x6868 n/a 100 弱い関数 HAL_UartSendBlocking 0x69dc n/a 100 グローバル関数 FLEXCOMM_PeripheralIsPresent 0xc37c n/a 100 ローカル関数 mbedtls_ecp_copy 0x7a48 n/a 98 グローバル関数 toMontgomery_ECC_P521 0x4f7c n/a 96 ローカル関数 RESET_ClearPeripheralReset 0x63a4 n/a 96 グローバル関数 mbedtls_mpi_sub_mod 0x7b64 n/a 96 ローカル関数 SerialManager_Init 0xcb56 n/a 96 グローバル関数 SerialManager_OpenReadHandle 0xcc06 n/a 96 グローバル関数 reverse_array 0x8138 n/a 94 ローカル関数 HASHCRYPT_SHA 0xc6fe n/a 94 グローバル関数 FLEXCOMM0_DriverIRQHandler 0x5aa0 n/a 92 グローバル関数 FLEXCOMM1_DriverIRQHandler 0x5afc n/a 92 グローバル関数 FLEXCOMM2_DriverIRQHandler 0x5b58 n/a 92 グローバル関数 FLEXCOMM3_DriverIRQHandler 0x5bb4 n/a 92 グローバル関数 FLEXCOMM4_DriverIRQHandler 0x5c10 n/a 92 グローバル関数 FLEXCOMM5_DriverIRQHandler 0x5c6c n/a 92 グローバル関数 FLEXCOMM6_DriverIRQHandler 0x5cc8 n/a 92 グローバル関数 FLEXCOMM7_DriverIRQHandler 0x5d24 n/a 92 グローバル関数 FLEXCOMM8_DriverIRQHandler 0x5d80 n/a 92 グローバル関数 RESET_SetPeripheralReset 0x6348 n/a 92 グローバル関数 mbedtls_mpi_add_mod 0x7bc4 n/a 92 ローカル関数 mbedtls_mpi_lset 0x8dea n/a 92 グローバル関数 BOARD_BootClockFROHF96M 0x6a98 n/a 88 グローバル関数 mbedtls_mpi_shift_l_mod 0x7c20 n/a 88 ローカル関数 fclose 0xcf9c n/a 88 グローバル関数 mbedtls_mpi_resize_clear 0x8ca0 n/a 86 ローカル関数 DbgConsole_SendDataReliable 0x25c n/a 84 グローバル関数 calculate_sha256 0x450 n/a 84 ローカル関数 mbedtls_ecp_set_zero 0x7aaa n/a 82 グローバル関数 _fflush 0xcf4a n/a 82 グローバル関数 ecp_add 0xe58 n/a 80 グローバル関数 FLEXCOMM_Init 0x5a50 n/a 80 グローバル関数 POWER_SetVoltageForFreq 0x62f8 n/a 80 グローバル関数 HASHCRYPT_SHA_Init 0xc75c n/a 80 グローバル関数 SerialManager_OpenWriteHandle 0xcbb6 n/a 80 グローバル関数 calloc 0xcdc6 n/a 80 グローバル関数 strlen 0xce54 n/a 78 グローバル関数 FLEXCOMM_GetInstance 0x5a04 n/a 76 グローバル関数 mbedtls_mpi_free 0x8bd0 n/a 76 グローバル関数 CASPER_ECC_equal_to_zero 0x1754 n/a 72 グローバル関数 mpi_uint_bigendian_to_host_c 0x8fb4 n/a 72 ローカル関数 add32 0x8264 n/a 70 ローカル関数 sub32 0x82aa n/a 70 ローカル関数 ftell 0x6e48 n/a 68 グローバル関数 PrintOutputdifFobpu 0x70aa n/a 68 ローカル関数 PrintOutputxX 0x70ee n/a 68 ローカル関数 mbedtls_mpi_cmp_int 0x9676 n/a 68 グローバル関数 SerialManager_Write 0xcb12 n/a 68 ローカル関数 mbedtls_mpi_get_bit 0x8e46 n/a 66 グローバル関数 mbedtls_clz 0x8eee n/a 66 ローカル関数 PrintGetRadixFromobpu 0x71c8 n/a 64 ローカル関数 mbedtls_mpi_mul_mod 0x7b24 n/a 64 ローカル関数 _deferredlazyseek 0xcea2 n/a 64 グローバル関数 _do_fflush 0xd008 n/a 64 グローバル関数 toc_verification_key 0xda84 n/a 64 ローカルオブジェクト PrintFilterLengthFlag 0x718a n/a 62 ローカル関数 Serial_UartInit 0xcc86 n/a 62 グローバル関数 setvbuf 0xce16 n/a 62 グローバル関数 BOARD_InitDEBUG_UARTPins 0x6af0 n/a 60 グローバル関数 _sbrk 0x6c6c n/a 60 グローバル関数 fflush 0x6d14 n/a 60 グローバル関数 hashcrypt_sha_check_input_args 0xc53a n/a 60 ローカル関数 BOARD_InitDebugConsole 0x6a40 n/a 56 グローバル関数 PrintIsobpu 0x7046 n/a 56 ローカル関数 USART_EnableContinuousSCLK 0xc9fa n/a 56 ローカル関数 SerialManager_StartWriting 0xcada n/a 56 ローカル関数 Serial_UartWrite 0xccc4 n/a 56 グローバル関数 HardFault_Handler 0x77f8 n/a 54 グローバル関数 HAL_UartInit 0xca62 n/a 54 グローバル関数 mbedtls_ecp_point_free 0x7932 n/a 52 グローバル関数 mbedtls_ecp_keypair_free_o 0x79fe n/a 52 グローバル関数 __aeabi_lowlevel_memset 0xd1f2 n/a 50 グローバル関数 mbedtls_ecdsa_verify 0xc2e8 n/a 48 グローバル関数 CLOCK_EnableClock 0xc34c n/a 48 ローカル関数 空き 0xcd96 n/a 48 グローバル関数 mbedtls_ecp_get_type 0x782e n/a 46 グローバル関数 IOCON_PinMuxSet 0xcd46 n/a 46 ローカル関数 __assertion_failed 0x230 n/a 44 グローバル関数 />ecp_mpi_set1 0x120c n/a 44 ローカル関数 DbgConsole_Printf 0x6f24 n/a 44 グローバル関数 PrintIsdi 0x707e n/a 44 ローカル関数 PrintIsfF 0x7132 n/a 44 ローカル関数 PrintIsxX 0x715e n/a 44 ローカル関数 mbedtls_ecp_point_init 0x785c n/a 44 グローバル関数 mbedtls_ecp_keypair_init 0x7906 n/a 44 グローバル関数 ecp_mpi_load 0x8196 n/a 44 ローカル関数 hashcrypt_engine_init 0xc4e4 n/a 44 ローカル関数 hashcrypt_sha_check_input_alg 0xc510 n/a 42 ローカル関数 __aeabi_memcpy4 0xd1c8 n/a 42 グローバル関数 __aeabi_memcpy8 0xd1c8 n/a 42 グローバル関数 mbedtls_platform_zeroize 0x14b8 n/a 40 グローバル関数 mbedtls_ecp_is_zero 0x7afc n/a 40 グローバル関数 StrFormatExaminedi 0x72ca n/a 38 ローカル関数 StrFormatExaminexX 0x72f0 n/a 38 ローカル関数 StrFormatExamineobpu 0x7316 n/a 38 ローカル関数 mbedtls_mpi_init 0x8baa n/a 38 グローバル関数 casper_get_word 0x24f0 n/a 36 ローカル関数 mbedtls_mpi_sub_mpi 0x9abe n/a 36 グローバル関数 s_flexcommBaseAddrs 0xdbd8 n/a 36 ローカルオブジェクト s_flexcommResets 0xdc10 n/a 36 ローカルオブジェクト mpi_sint_abs 0x8dc8 n/a 34 ローカル関数 mbedtls_mpi_add_mpi 0x9a9c n/a 34 グローバル関数 HAL_UartGetStatus 0xca40 n/a 34 ローカル関数 DisableGlobalIRQ 0xca98 n/a 34 ローカル関数 POWER_DisablePD 0x56c8 n/a 32 ローカル関数 ConvertPrecisionWidthToLength 0x733c n/a 32 ローカル関数 EnableGlobalIRQ 0xcaba n/a 32 ローカル関数 SerialManager_WriteBlocking 0xcc66 n/a 32 グローバル関数 secp256r1_p 0xdac4 n/a 32 ローカルオブジェクト secp256r1_a 0xdae4 n/a 32 ローカルオブジェクト secp256r1_b 0xdb04 n/a 32 ローカルオブジェクト secp256r1_gx 0xdb24 n/a 32 ローカルオブジェクト secp256r1_gy 0xdb44 n/a 32 ローカルオブジェクト secp256r1_n 0xdb64 n/a 32 ローカルオブジェクト s_UsartAdapterBase 0xdc34 n/a 32 ローカルオブジェクト data_init 0x1e8 n/a 30 グローバル関数 mbedtls_mpi_zeroize 0x8b8c n/a 30 ローカル関数 mbedtls_ecdsa_free 0xc32e n/a 30 グローバル関数 mbedtls_mpi_size 0x8f98 n/a 28 グローバル関数 RESET_周辺機器リセット 0xc9de n/a 28 グローバル関数 fsl_assert_hook 0x6ea4 n/a 26 弱い関数 __check_heap_overflow 0x6e8c n/a 24 グローバル関数 mpi_uint_bigendian_to_host 0x8ffc n/a 24 ローカル関数 mbedtls_ecdsa_can_do 0xc2d0 n/a 24 グローバル関数 hashcrypt_save_running_hash 0xc6d0 n/a 24 ローカル関数 mbedtls_ecp_keypair_free 0x7a32 n/a 22 グローバル関数 mbedtls_ecdsa_init 0xc318 n/a 22 グローバル関数 hashcrypt_restore_running_hash 0xc6e8 n/a 22 ローカル関数 0xcff4 を削除 n/a 20 グローバル関数 bss_init 0x206 n/a 18 グローバル関数 s_flexcommClocks 0xdbfc n/a 18 ローカルオブジェクト SystemInitHook 0xca32 n/a 14 弱い関数 BOARD_InitPeripherals 0xccfc n/a 14 グローバル関数 __main 0xcd80 n/a 14 グローバル関数 BOARD_InitBootPeripherals 0xcd0a n/a 12 グローバル関数 BOARD_InitBootPins 0xcd74 n/a 12 グローバル関数 __aeabi_memcpy 0xd1be n/a 10 グローバル関数 名前 実行アドレス ロードアドレス サイズ Type.text 0x0 n/a 56412 sectionmpi_mul_hlp 0x9ae2 n/a 6388 local functionecp_mod_p256 0x839c n/a 2032 local functionshiftleft 0x2bd0 n/a 1792 local functionMultprecCiosMul521_ct 0x4fdc n/a 1772 local functionshiftright 0x2514 n/a 1724 local functiondouble_scalar_multiplication 0x3fb4 n/a 1580 global functionMultprecCiosMul_ct 0x1b4c n/a 1444 local functionmbedtls_mpi_div_mpi 0xb69c n/a 1316 global functionmbedtls_mpi_inv_mod 0xbdfa n/a 1090 グローバル関数 precompute_double_scalar_LUT16 0x3aac n/a 1084 ローカル関数 invert_mod_p384 0x4884 n/a 1062 ローカル関数 ecp_double_jac 0x7d6c n/a 972 ローカル関数 ecp_add_mixed 0xac8 n/a 912 ローカル関数 mbedtls_ecp_muladd_restartable 0xea8 n/a 868 グローバル関数 Jac_addition 0x33ec n/a 776 グローバル関数 StrFormatPrintf 0x735c n/a 700 グローバル関数 invert_mod_p521 0x4d14 n/a 616 ローカル関数 invert_mod_p256 0x45e0 n/a 576 ローカル関数 verify_ecdsa_signature 0x4a4 n/a 544 ローカル関数Jac_add_affine 0x36f4 該当なし 536 グローバル関数ecdsa_verify_restartable 0x12c0 該当なし 504 ローカル関数USART_Init 0x6404 該当なし 460 グローバル関数mbedtls_mpi_gcd 0xbc4a 該当なし 432 グローバル関数CASPER_montadd 0x21f0 該当なし428 ローカル関数hashcrypt_sha_process_message_data 0x5ddc 該当なし 420 ローカル関数Jac_double 0x390c 該当なし 416 グローバル関数USART_SetBaudRate 0x6650 該当なし 396 グローバル関数mbedtls_mpi_mul_mpi 0xb3d6 該当なし 382 グローバルfunctionCLOCK_SetFLASHAccessCyclesForFreq 0x5888 n/a 380 グローバル関数__aeabi_uldivmod 0xd048 n/a 372 グローバル関数mbedtls_mpi_add_abs 0x96ba n/a 366 グローバル関数read_and_verify_toc 0x6c4 n/a 364 ローカル関数CASPER_ECC_SECP521R1_MulAdd 0x19f4 n/a 344 グローバル関数CASPER_half 0x239c n/a 340 ローカル関数lowpower_set_system_voltage 0x6024 n/a 340 ローカル関数mbedtls_mpi_shift_l 0x91bc n/a 330 グローバル関数mbedtls_mpi_sub_abs 0x98ba n/a 326 グローバル関数CASPER_ECC_SECP256R1_MulAdd 0x179c n/a 324 グローバルfunctionDbgConsole_Init 0x2b0 該当なし 312 グローバル関数mbedtls_mpi_shift_r 0x9306 該当なし 310 グローバル関数mbedtls_mpi_cmp_mpi 0x9540 該当なし 310 グローバル関数__Vectors 0x0 該当なし 304 グローバル objectg_pfnVectors 0x0 該当なし 304グローバル オブジェクトCASPER_ECC_SECP384R1_MulAdd 0x18e0 該当なし 276 グローバル関数HAL_UartInitCommon 0x68cc 該当なし 272 ローカル関数mbedtls_mpi_cmp_abs 0x943c 該当なし 260 グローバル関数CASPER_montsub 0x20f0 該当なし 256 ローカル関数CASPER_MEMCPY 0x14e0 該当なし252 グローバル関数 fseek 0x6d50 n/a 248 グローバル関数 ecp_normalize_jac 0x7c78 n/a 244 ローカル関数 hashcrypt_sha_finalize 0xc5e2 n/a 238 ローカル関数 lowpower_set_dcdc_power_profile 0x6178 n/a 236 ローカル関数 mbedtls_mpi_copy 0x8cf6 n/a 210 グローバル関数 ecp_modp 0x9f8 n/a 208 ローカル関数 HASHCRYPT_SHA_Update 0xc7ac n/a 208 グローバル関数 precompute_double_scalar_LUT4 0x3ee8 n/a 204 ローカル関数 mbedtls_ecp_point_read_binary 0x930 n/a 200 グローバル関数 malloc 0x6b2c n/a 200 グローバルfunctionmbedtls_mpi_write_binary 0x90f4 n/a 200 グローバル関数ConvertRadixNumToString 0x7208 n/a 194 ローカル関数HASHCRYPT_SHA_Finish 0xc87c n/a 184 グローバル関数mbedtls_int_div_int 0xb5e8 n/a 180 ローカル関数mbedtls_ecp_fix_negative 0x82f0 n/a 172 ローカル関数lowpower_set_voltage_for_process 0xc934 n/a 170 ローカル関数Jac_toAffine 0x3348 n/a 164 グローバル関数HASHCRYPT_DriverIRQHandler 0x5f80 n/a 164 グローバル関数ecp_group_load 0x81c2 n/a 162 ローカル関数CLOCK_AttachClk 0x56e8 n/a 160 グローバル関数 add_sub_mpi 0x9a00 n/a 156 ローカル関数 mbedtls_ecp_group_free 0x7966 n/a 152 グローバル関数 lowpower_get_part_process_corner 0x6264 n/a 148 ローカル関数 mbedtls_mpi_mul_int 0xb554 n/a 148 グローバル関数 derive_mpi 0xc23c n/a 148 ローカル関数 mpi_sub_hlp 0x9828 n/a 146 ローカル関数 casper_select 0x15dc n/a 144 ローカル関数 hashcrypt_get_data 0xc454 n/a 144 ローカル関数 USART_WriteBlocking 0x67dc n/a 140 グローバル関数 PrintGetPrecision 0x6fba n/a 140 ローカル関数 mbedtls_mpi_mod_mpi 0xbbc0 n/a 138 グローバル関数 mbedtls_ecp_group_load 0x1238 n/a 136 グローバル関数 main 0x8ac n/a 132 グローバル関数 mbedtls_mpi_grow 0x8c1c n/a 132 グローバル関数 CLOCK_SetClkDiv 0x5788 n/a 128 グローバル関数 CLOCK_SetupFROClocking 0x5808 n/a 128 グローバル関数 USART_GetDefaultConfig 0x65d0 n/a 128 グローバル関数 mbedtls_ecp_group_init 0x7888 n/a 126 グローバル関数 jump_to_application 0x830 n/a 124 ローカル関数 mbedtls_mpi_read_binary 0x907a n/a 122 グローバル関数 CASPER_ecc_init 0x166c n/a 120 グローバル関数 multiply_casper 0x32d0 n/a 120 ローカル関数_initio 0x6bf4 n/a 120 グローバル関数 FLEXCOMM_SetPeriph 0xc3e0 n/a 116 ローカル関数 CASPER_ECC_equal 0x16e4 n/a 112 グローバル関数_Cwritebuf 0x6ca8 n/a 108 グローバル関数 hashcrypt_sha_one_block 0xc576 n/a 108 ローカル関数 PrintGetWidth 0x6f50 n/a 106 ローカル関数 DbgConsole_Vprintf 0x3e8 n/a 104 グローバル関数 toMontgomery_ECC_P384 0x4cac n/a 104 ローカルfunctionmbedtls_mpi_bitlen 0x8f30 n/a 104 グローバル function_fdopen 0xcee2 n/a 104 グローバル functionDbgConsole_PrintCallback 0x6ebe n/a 102 ローカル functionmbedtls_mpi_lsb 0x8e88 n/a 102 グローバル functionmpi_bigendian_to_host 0x9014 n/a 102 ローカル functionResetISR 0x180 n/a 100 グローバル functiontoMontgomery_ECC_P256 0x4820 n/a 100 ローカル functionSystemInit 0x6868 n/a 100 弱関数HAL_UartSendBlocking 0x69dc n/a 100 グローバル functionFLEXCOMM_PeripheralIsPresent 0xc37c n/a 100 ローカル functionmbedtls_ecp_copy 0x7a48 n/a 98 グローバル functiontoMontgomery_ECC_P521 0x4f7c n/a 96 ローカル functionRESET_ClearPeripheralReset 0x63a4 n/a 96 グローバル functionmbedtls_mpi_sub_mod 0x7b64 n/a 96 ローカル関数 SerialManager_Init 0xcb56 n/a 96 グローバル関数 SerialManager_OpenReadHandle 0xcc06 n/a 96 グローバル関数 reverse_array 0x8138 n/a 94 ローカル関数 HASHCRYPT_SHA 0xc6fe n/a 94 グローバル関数 FLEXCOMM0_DriverIRQHandler 0x5aa0 n/a 92 グローバル関数 FLEXCOMM1_DriverIRQHandler 0x5afc n/a 92 グローバル関数 FLEXCOMM2_DriverIRQHandler 0x5b58 n/a 92 グローバル関数 FLEXCOMM3_DriverIRQHandler 0x5bb4 n/a 92 グローバル関数 FLEXCOMM4_DriverIRQHandler 0x5c10 n/a 92 グローバル関数 FLEXCOMM5_DriverIRQHandler 0x5c6c n/a 92 グローバル関数 FLEXCOMM6_DriverIRQHandler 0x5cc8 n/a 92 グローバル関数 FLEXCOMM7_DriverIRQHandler 0x5d24 n/a 92 グローバル関数 FLEXCOMM8_DriverIRQHandler 0x5d80 n/a 92 グローバル関数 RESET_SetPeripheralReset 0x6348 n/a 92 グローバル関数 mbedtls_mpi_add_mod 0x7bc4 n/a 92 ローカル関数 mbedtls_mpi_lset 0x8dea n/a 92 グローバル関数 BOARD_BootClockFROHF96M 0x6a98 n/a 88 グローバル関数 mbedtls_mpi_shift_l_mod 0x7c20 n/a 88 ローカル関数 fclose 0xcf9c n/a 88 グローバルfunctionmbedtls_mpi_resize_clear 0x8ca0 n/a 86 ローカル関数DbgConsole_SendDataReliable 0x25c n/a 84 グローバル関数calculate_sha256 0x450 n/a 84 ローカル関数mbedtls_ecp_set_zero 0x7aaa n/a 82 グローバル関数_fflush 0xcf4a n/a 82 グローバル関数ecp_add 0xe58 n/a 80 グローバル関数FLEXCOMM_Init 0x5a50 n/a 80 グローバル関数POWER_SetVoltageForFreq 0x62f8 n/a 80 グローバル関数HASHCRYPT_SHA_Init 0xc75c n/a 80 グローバル関数SerialManager_OpenWriteHandle 0xcbb6 n/a 80 グローバル関数calloc 0xcdc6 n/a 80 グローバル関数 strlen 0xce54 n/a 78 グローバル関数 FLEXCOMM_GetInstance 0x5a04 n/a 76 グローバル関数 mbedtls_mpi_free 0x8bd0 n/a 76 グローバル関数 CASPER_ECC_equal_to_zero 0x1754 n/a 72 グローバル関数 mpi_uint_bigendian_to_host_c 0x8fb4 n/a 72 ローカル関数 add32 0x8264 n/a 70 ローカル関数 sub32 0x82aa n/a 70 ローカル関数 ftell 0x6e48 n/a 68 グローバル関数 PrintOutputdifFobpu 0x70aa n/a 68 ローカル関数 PrintOutputxX 0x70ee n/a 68 ローカル関数 mbedtls_mpi_cmp_int 0x9676 n/a 68 グローバルfunctionSerialManager_Write 0xcb12 n/a 68 ローカル関数 mbedtls_mpi_get_bit 0x8e46 n/a 66 グローバル関数 mbedtls_clz 0x8eee n/a 66 ローカル関数 PrintGetRadixFromobpu 0x71c8 n/a 64 ローカル関数 mbedtls_mpi_mul_mod 0x7b24 n/a 64 ローカル関数_deferredlazyseek 0xcea2 n/a 64 グローバル関数_do_fflush 0xd008 n/a 64 グローバル関数 toc_verification_key 0xda84 n/a 64 ローカルオブジェクト PrintFilterLengthFlag 0x718a n/a 62 ローカル関数 Serial_UartInit 0xcc86 n/a 62 グローバル関数 setvbuf 0xce16 n/a 62 グローバルfunctionBOARD_InitDEBUG_UARTPins 0x6af0 n/a 60 global function_sbrk 0x6c6c n/a 60 global functionfflush 0x6d14 n/a 60 global functionhashcrypt_sha_check_input_args 0xc53a n/a 60 local functionBOARD_InitDebugConsole 0x6a40 n/a 56 global functionPrintIsobpu 0x7046 n/a 56 local functionUSART_EnableContinuousSCLK 0xc9fa n/a 56 local functionSerialManager_StartWriting 0xcada n/a 56 local functionSerial_UartWrite 0xccc4 n/a 56 global functionHardFault_Handler 0x77f8 n/a 54 global functionHAL_UartInit 0xca62 n/a 54 global functionmbedtls_ecp_point_free 0x7932 n/a 52 グローバル関数 mbedtls_ecp_keypair_free_o 0x79fe n/a 52 グローバル関数 __aeabi_lowlevel_memset 0xd1f2 n/a 50 グローバル関数 mbedtls_ecdsa_verify 0xc2e8 n/a 48 グローバル関数 CLOCK_EnableClock 0xc34c n/a 48 ローカル関数 free 0xcd96 n/a 48 グローバル関数 mbedtls_ecp_get_type 0x782e n/a 46 グローバル関数 IOCON_PinMuxSet 0xcd46 n/a 46 ローカル関数 __assertion_failed 0x230 n/a 44 グローバル関数 ecp_mpi_set1 0x120c n/a 44 ローカル関数 DbgConsole_Printf 0x6f24 n/a 44 グローバル関数 PrintIsdi 0x707e n/a 44 ローカル関数 PrintIsfF 0x7132 n/a 44 ローカル関数 PrintIsxX 0x715e n/a 44 ローカル関数 mbedtls_ecp_point_init 0x785c n/a 44 グローバル関数 mbedtls_ecp_keypair_init 0x7906 n/a 44 グローバル関数 ecp_mpi_load 0x8196 n/a 44 ローカル関数 hashcrypt_engine_init 0xc4e4 n/a 44 ローカル関数 hashcrypt_sha_check_input_alg 0xc510 n/a 42 ローカル関数 __aeabi_memcpy4 0xd1c8 n/a 42 グローバル関数 __aeabi_memcpy8 0xd1c8 n/a 42 グローバル関数 mbedtls_platform_zeroize 0x14b8 n/a 40 グローバル関数 mbedtls_ecp_is_zero 0x7afc n/a 40 グローバル関数 StrFormatExaminedi 0x72ca n/a 38 ローカル関数 StrFormatExaminexX 0x72f0 n/a 38 ローカル関数 StrFormatExamineobpu 0x7316 n/a 38 ローカル関数 mbedtls_mpi_init 0x8baa n/a 38 グローバル関数 casper_get_word 0x24f0 n/a 36 ローカル関数 mbedtls_mpi_sub_mpi 0x9abe n/a 36 グローバル関数 flexcommBaseAddrs 0xdbd8 n/a 36 ローカルオブジェクト flexcommResets 0xdc10 n/a 36 ローカルオブジェクト mpi_sint_abs 0x8dc8 n/a 34 ローカル functionmbedtls_mpi_add_mpi 0x9a9c n/a 34 グローバル関数HAL_UartGetStatus 0xca40 n/a 34 ローカル関数DisableGlobalIRQ 0xca98 n/a 34 ローカル関数POWER_DisablePD 0x56c8 n/a 32 ローカル関数ConvertPrecisionWidthToLength 0x733c n/a 32 ローカル関数EnableGlobalIRQ 0xcaba n/a 32 ローカル関数SerialManager_WriteBlocking 0xcc66 n/a 32 グローバル関数secp256r1_p 0xdac4 n/a 32 ローカルオブジェクトsecp256r1_a 0xdae4 n/a 32 ローカルオブジェクトsecp256r1_b 0xdb04 n/a 32 ローカルオブジェクトsecp256r1_gx 0xdb24 n/a 32 ローカル objectsecp256r1_gy 0xdb44 n/a 32 ローカル objectsecp256r1_n 0xdb64 n/a 32 ローカル objects_UsartAdapterBase 0xdc34 n/a 32 ローカル objectdata_init 0x1e8 n/a 30 グローバル functionmbedtls_mpi_zeroize 0x8b8c n/a 30 ローカル functionmbedtls_ecdsa_free 0xc32e n/a 30 グローバル functionmbedtls_mpi_size 0x8f98 n/a 28 グローバル functionRESET_PeripheralReset 0xc9de n/a 28 グローバル functionfsl_assert_hook 0x6ea4 n/a 26 弱関数__check_heap_overflow 0x6e8c n/a 24 グローバルfunctionmpi_uint_bigendian_to_host 0x8ffc n/a 24 ローカル関数 mbedtls_ecdsa_can_do 0xc2d0 n/a 24 グローバル関数 hashcrypt_save_running_hash 0xc6d0 n/a 24 ローカル関数 mbedtls_ecp_keypair_free 0x7a32 n/a 22 グローバル関数 mbedtls_ecdsa_init 0xc318 n/a 22 グローバル関数 hashcrypt_restore_running_hash 0xc6e8 n/a 22 ローカル関数 remove 0xcff4 n/a 20 グローバル関数 bss_init 0x206 n/a 18 グローバル関数 functions_flexcommClocks 0xdbfc n/a 18 ローカルオブジェクト SystemInitHook 0xca32 n/a 14 弱い関数 BOARD_InitPeripherals 0xccfc n/a 14 グローバル関数__main 0xcd80 n/a 14 グローバル関数BOARD_InitBootPeripherals 0xcd0a n/a 12 グローバル関数BOARD_InitBootPins 0xcd74 n/a 12 グローバル関数__aeabi_memcpy 0xd1be n/a 10 グローバル関数 私の知る限り、CASPERは単独でECDSA検証を行うことはできません。mbedTLSをラッパーとして使う必要があり、それがすべての追加コードを取り込むためです。 ksdk_mbedtls_config.h ファイル内のほとんどすべての設定を無効化しました。 質問 mbedTLSのオーバーヘッドなしに、CASPERハードウェアを直接ECDSA検証に使用する方法はありますか? LPC55S28にECDSA検証を扱えるROMベースの暗号機能はありますか? 32KBの制約内に収まるECDSA P-256検証の最小限の実装をLPC55S28にご存知の方はいらっしゃいますか? mbedTLSよりもフットプリントの小さい代替手段はありますか? Re: Help with ECDSA Verification in LPC55S28 Bootloader (32KB Size Limit) このチケットは当時のコミュニティプラットフォームの問題によりメールで処理されました。
查看全文
如何在停止并重新启动附件中的 CAN 分析仪后发送多个 CAN 消息 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> RHinnen 嗨, RHinnen 您能否抽出宝贵时间帮我解决以下问题:如何修改附件中的模型,使其能够发送多个 CAN 消息,并在 CAN 分析仪停止并重新启动后无需 RESET MCU 即可持续发送 CAN 消息?MPC574xP 示例项目-通信中提供的示例 -CAN1(Flexcan 交通)不存在此问题。 到目前为止,即使我在模型中添加了另一个 CAN 消息(不同的 ID),CAN 分析器也只发送了一个 ID 的 CAN 消息。CAN分析仪在停止和启动后将停止发送CAN消息。 期待您的解答,非常感谢! 示例模型 Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached 你好, 我也在寻找解决同样问题的方法。 如果您解决了无需重启MCU即可发送CAN信号的问题。请分享一下您的方法,这对我的项目很有帮助。 谢谢你, 拉胡尔 Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好sparkee , 是的,很遗憾,如果您想使用同一个 MB 空间进行多次传输,您必须执行以下操作之一: - 要么使用阻塞模式(这可能会稍微降低应用程序的速度) - 可以使用非阻塞模式,但要确保在同一 MB 上进行的第二次传输只有在第一次传输完成后才会进行。否则,第一次转账会被第二次转账阻止,因此无法完成。 第二种选择取决于你如何编写应用程序,因为你必须自己管理时间——尽管如此,它的优势在于应用程序运行速度会稍快一些(取决于你通过时间管理增加的开销)。 第一种选择很简单(阻塞处理一切),但你必须决定在你的应用程序中,阻塞传输所花费的那一点额外时间是否是你能接受的。 最佳方案是拥有足够的可用空间(以 MB 为单位),以便可以使用非阻塞模式,每次传输都有自己的 MB 空间。 希望这样能解释清楚一些。 此致敬礼, 拉兹万。 Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这个问题是11月份提出的……现在有进展吗? 我发现的问题是,我没有为每条消息设置不同的消息缓冲区。我之前没意识到需要设置每条消息加载到特定的缓冲区中。 Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我仍然不知道正确的做法应该是什么。你能给我举个正确的例子吗? 谢谢。 Re: How to send multiple CAN messages after stop and restart the CAN analyzer in the model attached <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> paulvlase ‌, 请查阅并调查可能的解决方案。谢谢你! 丹尼尔
查看全文