Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
Adeneo EmbeddedによるWindows Embedded CompactでのARM Cortex-A9サポートの最適化 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Windows Embedded Compact での ARM Cortex-A9 サポートの最適化     フリースケール i.MX6 アプリケーション プロセッサ上の Windows Embedded Compact を使用したランダム ハングやその他の問題とその解決方法の説明 By アデネオ組み込みエンジニアリングチーム Rev 1.0、2014 年 11 月 概要 昨年、Adeneo Embeddedは、Freescale i.MX6 Windows Embedded Compact Board Support Packageを使用しているお客様から、ランダムなプロセッサのデッドロックやオペレーティングシステムのクラッシュの報告を受けてきました。   デバイスを包括的にテストしているときにランダムなハングやその他の問題が表面化しました、つまり、通常のCTKテストに合格しても、エラーの発生は引き出されませんでした。   アデネオのシニアエンジニアの専任チームは、多くの主要なお客様と協力して、全面的に問題を分析し、解決しました。最新バージョンのAdeneo i.MX6 Windows Embedded Compact (7および2013) BSPにより、これが達成されたと確信しています。   このホワイトペーパーは、調査についてであり、私たちの発見の一部を共有しています。このドキュメントのすべての情報は、Windows Embedded Compact 7 と 2013、および i.MX6 のすべてのバリエーションに適用されます。 調査の形式   現場からの問題報告に基づいて、システム内の単一のコンポーネントを原因として特定することは複雑であったため、状況を調査するために正式かつ広範なプロセスを使用することにしました。   BSPコード、Microsoftカーネルコード、および顧客アプリケーションコードについて、正式なコードレビューが行われました。 Lauterbach JTAGハードウェアデバッガは、クラッシュ時に利用可能なすべてのプロセッサデータをキャプチャするために使用されました。 Microsoftのカーネルチームは、Windows CEカーネルに関するすべての質問を支援しました。 お客様のエンジニアリングチームは、アプリケーションに関する特定の知識を持ち、問題をより簡単に再現するためのテストアプリケーションを開発しました フリースケールのサポート・エンジニアは、シリコンに関するあらゆる質問にお答えします。 Adeneoのエンジニアは、BSPを地上から再設計し、i.MX6およびCortex-A9アーキテクチャに最適化しました    要約すると、複数の企業のコラボレーション、そしてさらに重要なことに、独自の付加価値を持つ献身的な個人の多様なグループが、この複雑な問題の解決策を開発するための包括的な技術的カバレッジを提供しました i.MX6 BSPの歴史   i.MX6 Windows Embedded Compact BSPの出発点は、i.MX5xシリーズからi.MX2xシリーズまで、フリースケールの他のアプリケーションプロセッサ用の初期のBSPでした。OS 側では、履歴は Windows CE 5 にまでさかのぼります。   フリースケールのアプリケーション・プロセッサの良いところは、さまざまなプロセッサ間で周辺IPブロックを共有するため、開発者は多くのコードを共有して再利用できることです。これは、BSP を新しい i.MX6 SoC で機能させ、プロジェクトを開始するのに、最初は非常に役立ちました。ただし、マルチコアCortex-A9アーキテクチャを備えたi.MX6は、シングルコアCortex A8またはARM9 CPU用に設計されたコードを再利用するのが困難です。   特に、キャッシュ管理、マルチコアサポート、メモリ構成は、既存のCortex-A8およびARM9コードが最初に有効にすることができた領域でしたが、その後の長期安定性テストで失敗しました。 Cortex-A9アーキテクチャ   フリースケールのi.MX6アプリケーション・プロセッサは、ARM Cortex-A9およびARMv7命令セット・アーキテクチャの実装です。この強力なアーキテクチャは、処理パフォーマンスを向上させるための多くの機能を提供しますが、システムソフトウェアの開発には特別な注意が必要です。   i.MX6は、Windows Embedded Compactの対称型マルチプロセッシング構成で最大4つのコアを提供します。   調査中に対処された安定性に影響を与える機能には、次のようなものがあります。   投機的な負荷と実行 投機的なテーブルウォーク 分岐予測 アウトオブオーダーの実行と命令の並べ替え パラレル内部バス 複数の内部バッファとキャッシュ マルチコア コヒーレンシ L1/L2 キャッシュ操作 Abort handling コード レビューの一環として、これらの機能を正しく構成し、適切に活用するための既存のコードの欠点を特定しました。すべてのコードは ARM アーキテクチャのドキュメントで検証され、ARM の最新の推奨事項に従って更新されました。フリースケールのエンジニアは、ARMのドキュメントが曖昧な実装の詳細を理解するのに役立ちました。これは、機能の実装方法がシリコンベンダーにある程度の自由を残しているためです。  Freescale、ARM、その他のIPベンダーからのすべてのエラッタ・ドキュメントがレビューされ、適用可能なすべての修正または回避策がBSPまたはカーネル・コードに実装されていることを確認しました。   お客様との話し合いの結果、パフォーマンスを損なうことなく安定性に重点を置いたi.MX6プロセッサの良好な動作構成を決定しました。   マルチコア構成では、同じ構成で使用可能なすべてのコアを常に動作させるようにコードを更新しました。重要な領域は、低電力状態から復帰したときに同じ設定を再適用するための電源管理コードでした。 メモリ・コンフィグレーション   Cortex-A9は、デバイスを複数のモードで動作させ、アプリケーションプロセスを相互に分離し、保護とセキュリティのレイヤーを提供する仮想メモリシステムを実装することを可能にする強力なメモリ管理ユニットを提供します。   メモリ空間を見ると、このアーキテクチャにはいくつかのタイプのメモリがあります。私たちは以下の点に重点を置きました。   正常なメモリ デバイスメモリ ARMアーキテクチャは、メモリアドレス空間とI / Oアドレス空間があるx86アーキテクチャと比較して、フラットな統合メモリアドレス空間を持っています。これは、すべてのペリフェラルレジスタとその他のI/Oアドレスが、RAMとROM(メモリマップドI/O)とともに同じアドレス空間にマップされることを意味します。デフォルトでは、これは新しいものではなく、ソフトウェアおよびハードウェアの開発者にとって物事を容易にするため、悪い設計ではありません。以前のバージョンの Windows CE およびその他の OS では、すべてのアドレスが通常のメモリとして扱われ、RAM と I/O の唯一の違いは、I/O のメモリ プロパティで非キャッシュ フラグを設定することでした。Cortex-A8までのアーキテクチャでは、システムの安定した動作を確保するにはこれで十分でした。  特にCortex-A9の投機的エンジンでは、従来のアプローチが問題を引き起こします。コアの一部の投機的機能を無効にすることができますが、投機的テーブルウォーク (暗黙的に投機的ロードを行う) は、ノーマル メモリでは無効にできません。そのため、Cortex-A9では、アーキテクチャの拡張アクセス許可機能を使用し、すべてのI/Oメモリをデバイスメモリとして構成する必要があります。とりわけ、デバイスメモリには、そのプロパティ(XNフラグ)に実行なしフラグが設定されており、プロセッサは投機的な操作中にそれに触れません。負荷が高く、ストレスがかかると、プロセッサが時間ごとにより多くの投機的な操作を行い、I/Oに触れる機会が増えるため、これが問題になります。これは、クラッシュやデッドロックの主な理由の1つでした。   Windows CE の場合、Microsoft は Compact 7 を使用して、OEM が使用可能なメモリをカーネルに報告する新しい方法を導入しました。ただし、上記の問題は x86 および古い ARM アーキテクチャでは問題ではないため、i.MX6 BSP は古いレポート スタイルを先祖から継承しています。   レガシ メモリのレポートを使用して、OEM はメモリ マッピング テーブルに使用可能なメモリに関する情報を入力し、起動時にそれを CE カーネルに提供します。次に、カーネルは、OEM からのメモリ ブロックごとにキャッシュされたエントリとキャッシュされていないエントリを含む初期 MMU ページ テーブルを作成します。MMUにとって、すべてが正常なメモリです。   新しいWEC7モデルは、RAMとROM用の古いテーブルとI / O(デバイステーブル)用の新しいテーブルの2つのテーブルで動作します。デバイス テーブル内のすべてのブロックは、MMU でデバイス メモリとしてコンフィギュレーションされ、保護されます。   これは簡単に聞こえますが、悪魔は細部に宿っています。新しいモデルでは、初期ブート フェーズで BSP コードがアドレス変換を使用する方法が変更されます。新しいモデルで動作し、ブートローダーコードからOALコードへのパラメーター転送を可能にするために、スタートアップコードとKITLコンポーネントの機能を更新する必要がありました。また、十分に文書化されておらず、カーネル コードのレビューと Microsoft カーネル エンジニアとの話し合いにより、コードのこの部分を微調整して i.MX6 用に最適化する必要があります。もう1つの問題は、i.MX6の内部SRAMであり、これは最初にプロセッサのI/Oスペースの一部として表示されるため、デバイステーブルに配置されることになりました。ただし、内部 RAM は低電力モードで使用されるため、外部 RAM が自己リフレッシュされている間に電源管理コードが実行されるため、XN フラグを設定せずに通常のメモリとしてマップする必要があります。結局のところ、それは些細な仕事ではありませんでした。 同期バリア   Cortex-A9の前述の拡張機能により、プロセッサとすべてのメモリが既知の状態を持ち、同期している同期ポイントを操作フローに設定する必要があります。これは、プロセッサ構成を更新する場合や OS のコンテキスト スイッチ中に特に重要です。   OAL とカーネル コードのコード レビューと Microsoft との話し合いを通じて、すべての ARM 要件を満たすように BSP を更新し、カーネルと OAL 間のインターフェイスを微調整して最適なパフォーマンスを提供しました。 Errata   調査中、i.MX6 とそのさまざまな IP ブロックのエラッタ作成に時間を費やしました。BSP とカーネル コードは、各エラータについて集中的にレビューされ、影響を受ける場合は修正または回避策を実装する必要があります。   その一環として、i.MX6 に実装されたすべてのソフトウェア BSP (Freescale 製) とその変更ログも確認し、見落としがないことを再確認しました。   いくつかの重要な正誤表がコードに欠落していると特定され、調査中に実装されました。必要なコード変更のうち 3 つは Microsoft カーネル コードにあり、カーネルの更新が必要でした。Adeneo Embeddedは、これらの変更をカーネルに実装し、更新されたカーネルをテストラボおよび現場の選ばれたお客様にテストした後、カーネルの変更リクエストをMicrosoftに提出し、Windows Embedded Updateメカニズムを通じてアップデートを正式にリリースしました。 キャッシュ管理   i.MX6は、内部L1データおよび命令キャッシュと外部L2統合キャッシュを備えたCortex-A9アーキテクチャを実装しています。内部L1は、L1 RAMアレイがARM MPCore IPブロック内にあり、MPクラスタ内の各Cortex-A9コアが独自のL1キャッシュを持つことを意味します。外部 L2 は、L2 RAM アレイが ARM MPCore IP ブロックの外側にあり、SoC の内側にあり、内部 AXI バスに接続されていることを意味します。どちらの RAM アレイにも、プロセッサのロード/ストア命令からアクセスできません。   キャッシュメモリを使用すると、システムは頻繁に使用するデータをメモリに保持し、より高速にアクセスできますが、これには、プロセッサキャッシュブロックの外部のオブザーバがデータの変更を確認できるように、キャッシュメモリと外部SDRAMを同期する必要があります。   SMP クラスタとして設定すると、必要な L1 メンテナンスの一部がハードウェア キャッシュ コントローラによって行われます。それぞれが独自のL1キャッシュを持つ最大4つのコアと、コンテキストスイッチのために同じ実行スレッドを異なるコアに割り当てる可能性のあるマルチタスクオペレーティングシステムがある場合があるため、すべてのコアがメモリの同じ同期ビューを持つ必要があります。これは、単一のアドレスが影響を受ける限り、MPCoreのコヒーレンシユニットを介してハードウェアで行われます。L1のメンテナンスが必要な場合は、ソフトウェア全体で対応する必要があります。   また、ソフトウェアはすべての L2 キャッシュ メンテナンス操作を処理する必要があります。   キャッシュのメンテナンスは、通常、カーネルによって呼び出されますが、デバイスドライバやアプリケーションソフトウェアでさえもキャッシュのメンテナンスを要求しなければならない状況がいくつかあります。いずれにせよ、OAL はこれらの要求を取得して実行します。OAL のすべてのキャッシュ関連コードは、ARM アーキテクチャの要件を満たし、カーネルと最適化された方法で連携するように更新および再設計されました。欠点:キャッシュでのCortex-A9のサポート、メンテナンスコード、およびドライバーからのメンテナンスリクエストも、初期のBSPで不安定な問題の主な原因でした。   この領域の複雑さのいくつかは次のとおりです。     L1 コードを最適化して、利用可能なハードウェア サポートを活用 L1 と L2 を含むメンテナンス要求では、すべてのメモリ レベルが同期していることを確認するための特定の手順が必要です メンテナンス要求は、複数のスレッドとCPUから並行して送信される可能性があり、L2コードはリエントラントでマルチコアセーフである必要があります DMA コントローラーは物理アドレスで動作し、キャッシュについては認識しません。DMA 操作を使用する場合、ドライバーは必要なキャッシュ メンテナンスを要求する必要があります。USB、SD、およびビデオ操作の不安定性は、この領域のバグに関連していました。    ビルドとテスト   この調査の冒頭で、CTK BSPテストではこれらの問題を特定できなかったことがわかったため、テストアプローチを見直し、改善された手順を実施しました。私たちのテストの新しいコンポーネントは安定性ラボであり、タスクを自動化し、結果を記録するためのITインフラストラクチャとともに専用のハードウェアセットを提供します。主要なお客様からの承認を得て、お客様のテストアプリケーションと問題の再現に役立つアプリケーションを、より汎用的なテストアプリケーションに移行し、ポートフォリオに追加しました。   また、お客様のユースケースに関する知識が重要であることも学びました。私たちは、実際のシナリオにより近いものにするためにテストを再構築し、お客様からのフィードバックを直接統合しました。   調査中に、ビルドプロセスまたはツールが一部の問題の根本原因である可能性があるという懸念が何度も提起されました。テストチームは、OSイメージがどこでどのように構築されたかに基づいて、異なる結果を報告しました。ツールのインストールと更新のプロセス、およびMicrosoftのOSバグ修正をインストールするプロセスを分析しましたが、これらの観察結果は赤ニシンであるという結論に達しました。しかし、この調査部分から得られた知識を、Adeneo Embeddedのビルドラボの改善に活かしました。インフラストラクチャを強化し、ツールをアップグレードして、Windows Embedded Compact と BSP のバージョンと QFE レベルを簡単に切り替えられるようにしました。 コミットメント   この調査は約8ヶ月の期間にわたって行われ、Adeneo Embeddedは問題解決に全力を尽くしました。エンジニアのコアチームがフルタイムで作業し、必要に応じて拡張されたエンジニアグループがサポート(テスト、ビルド、デバッグ、アプリケーション,..)に対応しました。ここで解決しなければならなかった問題は些細なことではありませんでした。時には、ジェットコースターに乗っているような感覚でした。   しかし、その結果、Adeneo EmbeddedのFreescale i.MX6 Windows Embedded Compactボード・サポート・パッケージは、品質が大幅に向上し、このシステム・オン・チップに最適化されています。これにより、Windows Embedded Compact i.MX6 を実行しているすべてのお客様、および将来の CPU アーキテクチャを WEC7 および WEC2013 の同様の ARM コアで実行するお客様にメリットをもたらします。 詳細については、[email protected] のAdeneo組み込みサポートチームに電子メールを送信するか 、 当社のWebサイトをご覧ください http://www.adeneo-embedded.com/ 全般
View full article
Mem_43_InFls依存ファイル EBツールを使ってS32K311のメモリスタック機能を設定しようと試みていて、Mem_43_InFlsモジュールを追加していますが、コンパイル時にC40_Ip_Cfg.hなどのファイルが、Mem_43_INFLS_Cfg.h などは見つかりません。マニュアルを見ると、手動で生成する必要があることがわかりますが、その方法と、どなたか指導していただけると幸いです。 Re: Mem_43_InFls 依存ファイル Hi @ZMY666777, プロジェクトをコンパイルする前に、コードを生成する必要があります。 次のドキュメントを参照してください。 https://www.elektrobit.com/products/ecu/eb-tresos/evaluation-package/getting-started/ BR, Daniel
View full article
FRDM-IMX91コネクティビティWi-Fiベーシックハンズオン このラボでは、次の方法を学習します。 Wi-Fiインターフェースを起動します。 基本的な Wi-Fi スキャンを実行する WPA_SUPPLICANTを使用してWi-FiSTAモードを構成して起動します。 関連付けられたクライアントデバイスの動的IP割り当てのためにUDHCPサーバーを構成して起動します。 UDHCP クライアントを実行して、動的 IP アドレスを取得します。 hostapd を使用して Wi-Fi AP モードを構成して起動します。 STA を外部 AP に接続 AP を外部 STA に接続する pingを開始します Wi-Fiベーシックハンズオンデモガイド ビデオ (マイビデオで視聴)   コミュニティ・サポート このトレーニングに関するご質問は、ワイヤレスMCUコミュニティにコメントを残してください ここは FRDM-IMX91 FRDMトレーニング ハンズオン・トレーニング i.MXアプリケーション・プロセッサ ワイヤレス
View full article
S32G-VNP-RDB2 Hello, 我可以知道“RCON”代表什么吗? Re: S32G-VNP-RDB2 Hello, @JasonTseng 感谢您的提问。 根据 AN12422,RCON 代表芯片外部定义的启动配置。 顺祝商祺! 陈银
View full article
S32K14xは取り付け可能で、再プログラムできないソリューション <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi,  S32K14xの次の解決策をご紹介したいと思いますが、これは取り付けることができ、再プログラムできず、RAMの初期化で停止することはできませんでした。 タイトルとして問題に遭遇した場合は、アタッチ機能付きのIDEでSIM_CHIPCTLの値を確認してください。たぶん、値が0x0であることに気付くかもしれませんが、これはリセット後のデフォルト値ではなく、0x0030_0000です。 SIM_CHIPCTLで意味を確認すると、SRAMUとSRAMLはリセット後も保持されていることがわかります。 この問題を解決するには、その前に「40048004 WRITE_LONG C:\NXP\S32DS_ARM_v20\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_3.3.3.201712132114\win32\gdi\P&E\supportFiles_ARM\NXP\S32K1xx」にあるfreescale_s32k144f512m15_pflash_dflash_eeprom.arpのアルゴリズム(リセット後の方が優れている)を追加する必要があります。 その後、通常どおりプロジェクトをダウンロードできます。 乾杯! オリバー
View full article
2014年奖项 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 项目展示结束后,评审团将颁发以下奖项: 特殊活动 有机会参加明年的飞思卡尔实习 最佳项目 每位团队成员配备 Amazon Kindle Paperwhite                            最原创的想法 Garmin Forerunner ®每位团队成员10 美元          2014年Linux嵌入式挑战赛
View full article
imx8mm で fw_printenv/setenv を使用するにはどうすればよいですか? Hi! imx8mm で fw_printenv/setenv を使用するにはどうすればよいですか? 【Conditions】 ・ハードウェア:IMX8mm(カスタムボード上) ・bsp: imx 6.1.55-2.2.0 ・ベースイメージ:core-image-minimal ・IMAGE_INSTALL += 「u-boot-fw-utils」 ・マシン = 「IMX8MM-LPDDR4-EVK」 ・ブーツストレージ:eMMC 【log】 root@XXX:~# fw_printenv 設定ファイルが間違っているか壊れています root@XXX:~# strace fw_printenv (省略) openat(AT_FDCWD, "/etc/fw_env.config",O_RDONLY) = -1 ENOENT (そのようなファイルまたはディレクトリはありません) write(2, "設定ファイルが間違っているか、または問題があります"..., 38設定ファイルが間違っているか壊れています ) = 38 exit_group(-9) = ? +++ は 247 で終了しました +++ root@XXX:~# fdisk -l ディスク /dev/mmcblk2: 7456 MB、7818182656 バイト、15269888 セクタ 119296気筒、4ヘッド、32セクタ/トラック 単位: 1 * 512 = 512 バイトのセクター デバイスブート開始CHS EndCHS StartLBA EndLBA セクターサイズ ID タイプ /dev/mmcblk2p1 * 128,0,1 1023,3,32 16384 186775 170392 83.1M c Win95 FAT32 (LBA) /dev/mmcblk2p2 1023,3,32 1023,3,32 196608 1596821 1400214 683M 83 Linux /dev/mmcblk2p3 1023,3,32 1023,3,32 1605632 2968779 1363148 665M c Win95 FAT32 (LBA) ディスク /dev/mmcblk2boot0: 4 MB、4194304 バイト、8192 セクタ 128気筒、4ヘッド、16セクタ/トラック 単位: 1 * 512 = 512 バイトのセクター ディスク /dev/mmcblk2boot0 に有効なパーティションテーブルが含まれていません ディスク /dev/mmcblk2boot1: 4 MB、4194304 バイト、8192 セクター 128気筒、4ヘッド、16セクタ/トラック 単位: 1 * 512 = 512 バイトのセクター ディスク /dev/mmcblk2boot1 に有効なパーティションテーブルが含まれていません i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: imx8mm で fw_printenv/setenv を使うにはどうしたらいいですか? こんにちは、タビム。 返信ありがとうございます。 どのような問題が発生しますか? Re: imx8mm で fw_printenv/setenv を使うにはどうしたらいいですか? envをユーザーパーティションよりもeMMCブートパーティションに保存すると、大きな問題に直面します。 Re: imx8mm で fw_printenv/setenv を使うにはどうしたらいいですか? この問題は解決されました。 1.u-bootの設定では以下を設定します。 CONFIG_SYS_MMC_ENV_DEV=2 CONFIG_SYS_MMC_ENV_PART=2 CONFIG_ENV_OFFSET=0x0 2. /etc/fw_env.configに以下を設定します。 /dev/mmcblk2boot1 0x0 0x4000 N.B. - CONFIG_SYS_MMC_ENV_DEV=2 は、mmcblk2 に u-boot-env があることを意味します。 - CONFIG_SYS_MMC_ENV_PART=2 は、mmcblk2boot1 に u-boot-env があることを意味します。 - CONFIG_ENV_OFFSET=0x0 は、u-boot-env が mmcblk2boot1 のオフセットにプットされないことを意味します。 - 0x4000 imx8mm-evkのデフォルト値はCONFIG_ENV_SIZEです。 - ただし、mmcblk2boot1 では何も設定されていないため、uboot で saveenv を一度実行するか、u-boot-imx-initial-env-sd を mmcblk2boot1 に書き込まない限り、fw_printenv/fw_setenv を使用することはできません。 Re: imx8mm で fw_printenv/setenv を使うにはどうしたらいいですか? uboot envのアドレスがどこに設定されているのかわかりません... Re: imx8mm で fw_printenv/setenv を使うにはどうしたらいいですか? このLinux fw_printenv fw_setenvを参照して、U-Bootの環境変数にアクセスできます - NXP Community
View full article
KEA128 UART Bootloader こんにちは。KEA128マイクロコントローラの開発中に問題が発生しました。Jlink経由でプログラムをデバッグする際には全く問題ないのですが、ブートローダー経由でプログラムをダウンロードするとメインプログラムがフリーズしてしまいます。 以下のプログラム(デューティサイクルの設定)をブートローダー経由でダウンロードした後、プログラムがフリーズしてしまいます。関数の内容をコメントアウトすると、すべて正常に動作します。この場合、Jlinkプログラミングに問題はありません。この問題のせいで、どこから始めればいいのか全く分かりません。解決策を教えていただけると幸いです。 void heater_output(uint32 duty) { if(heater_switch==on) { ftm_pwm_duty(ftm0,ftm_ch0,duty);//设置占空比 } else { heater_pwm_duty=0; ftm_pwm_duty(ftm0,ftm_ch0,0); } } これは私のジャンププログラムです void bootup_application(uint32_t appEntry, uint32_t appStack) { static void (*jump_to_application)(void); static uint32_t stack_pointer; //shutdown_drivers(); jump_to_application = (void (*)(void))appEntry;//跳转APP入口地址 stack_pointer = appStack; //堆栈指针 // SCB->VTOR = appEntry; __set_MSP(appStack); //设置主程序堆栈指针 __set_PSP(appStack); //设置进程堆栈指针 jump_to_application(); //跳转 } Re: KEA128 UART Bootloader Hi, 車載グレードチップであるS32Kシリーズを検討することをお勧めします。 https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-auto-general-purpose-mcus:S32K-MCUS 先生が hardFault を入力した場合は、スタック割り当てが小さすぎないかどうかを確認してください。 BR XiangJun Rong Re: KEA128 UART Bootloader こんにちは。ご返信ありがとうございます。シミュレーションデバッグでHardFault_Handler関数にダウンロードせずに入ってしまうことが分かりました。呼び出しレベルが深すぎるため、デューティサイクル設定関数がメインループ内で直接呼び出され、スタックが発生していないことが原因だと思います。このチップではこのような状況はよくあるのでしょうか?私のAPPプログラムは約33KBで、0x8000から始まります。プロジェクトで、より高性能でコスト効率が高く、より多くのアルゴリズムを実行できる車載グレードのチップを選択したいのですが、どのように選択すればよいでしょうか? Re: KEA128 UART Bootloader Hi, 次に、appEntry に 1 を追加します。 BR XiangJun Rong Re: KEA128 UART Bootloader こんにちは。このコード行を挿入すると、エラーが発生します。(jump_to_application = jump_to_application +1;) IARソフトウェアコンパイラを使用しているのですが、エラーメッセージは「Error[Pe852]: 式は完全なオブジェクト型へのポインタである必要があります」です。どうすれば解決できますか? Re: KEA128 UART Bootloader Hi, 次のコードを使用してください: //shutdown_drivers(); jump_to_application = (void (*)(void))appEntry;//跳转APP入口地址 jump_to_application =jump_to_application +1; stack_pointer = appStack; //堆栈指针 // SCB->VTOR = appEntry; __set_MSP(appStack); //设置主程序堆栈指针 __set_PSP(appStack); //设置进程堆栈指针 jump_to_application(); //跳转 親指の命令セットなので、試してみて動作するか確認してください。 BR XiangJunRong
View full article
「Expected: sha256|hex」エラーを修正するOTAシーケンスを修正 AndroidユーザーガイドのOTAに従うと、HASH検証エラーが発生します。 update_engine: [0913/085233.421711:ERROR:delta_performer.cc(1140)] Expected: sha256|hex = 685B998E4308F20FEA83D97E60222121FFE27983F013AED5C203709E139AE9DB update_engine: [0913/085233.421760:ERROR:delta_performer.cc(1143)] Calculated: sha256|hex = B1025634138BF2B5378196E364350E1E5FCA126DEE0990A592290CEBFADC3F8B エラーの原因となった OTA プロセス: * After compiling the images according to the user guide, burn the images in the /out directory into the board * Then build the first target file according to 7.1.1 Building target files, such as PREVIOUS-target_files.zip * Modify part of the code to build the second target file, such as NEW-target_files.zip: * Make a differential upgrade package and perform differential OTA 上記の手順によるエラーの根本原因: ディファレンシャル OTA では、オンボードの system.img が、ターゲット ファイルを初めて作成するときに生成される system.img である必要があります。この方法でのみ、正しいハッシュ値を計算できます。次のコマンドを実行してターゲットファイルを作成すると make target-files-package -j4 system.img のコピーを /out ディレクトリに再パッケージ化しますが、この system.img は要件を満たしていません。differential パッケージで使用される system.img は、out/target/product/evk_8mm/obj/PACKAGING/systemimage_intermediates/ の system.img である必要があります。そのため、最初のステップでバーンしたsystem.imgが要件を満たしていなかったため、ハッシュ検証エラーが発生しました。 解決策1: プログラミングの最初のステップの後、完全な更新を行います。make otapackage -j4コマンドを使用すると、target_files.zipファイルも生成され、これをPREVIOUS-target_files.zipと見なします。コードの一部を変更してNEW-target_files.zipします。最後に、差分アップグレードを成功させることができます。 解決策2: 最初のtarget_files.zipが完了したら、out/target/product/evk_8mm/obj/PACKAGING/systemimage_intermediates/のsystem.imgをout/target/product/evk_8mmディレクトリにコピーしてから、uuuを使用してプログラミングを実行します。書き込みと書き込みの後、2回目のtarget_files.zipを行い、最後に差分でアップグレードできます。 Android i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
View full article
ワイヤレス「スルーガラス」デモンストレーター – 電力とデータ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview 家庭用ブロードバンドアクセスは、低コストのファイバーの登場以来、最大の変化を遂げています。ミリ波(mmWave)無線技術は、消費者の庭を掘り起こして新しいケーブルを敷設するコストをかけずに、ファイバーのような速度をもたらしています。ミリ波信号の伝搬に関連する問題は、NXPのAirfastモジュールとLayerscape Accessプロセッサが可能にした技術であるMassive MIMOと信号処理によって軽減されました。しかし、ファイバーアクセスと同様に、ブロードバンド接続を屋内に持ち込むという課題は残っています。既存のアプローチでは、技術者が現場を訪れ、ケーブル配線と場合によっては電力を屋外に配線し、コストが発生し、顧客に不便をかけ、資産に損害を与える可能性があります。 2020年のコンシューマー・エレクトロニクス・ショーで、NXPは、非接触型電源および接続技術がこの課題をどのように克服するかを実証しました。NXPのワイヤレス給電技術は、窓に取り付けられた小型室内ユニットから対応する室外ユニットに、窓(Low-Eガラス製)を介して電力を効率的に伝送します。また、同じユニットは、Layerscape Accessプログラマブルベースバンドプロセッサに基づくNXPのワイヤレスデータリンク技術を使用して、ギガビット速度でブロードバンドデータを伝送します。この革新的なスルーグラスアプローチは、インターネットサービスプロバイダーの実用的かつ経済的な課題を克服し、顧客満足度の向上に役立ちます。 ダイアグラム 区別 完全なワイヤレスデータ+電源ソリューション。 独自のワイヤレスデータリンクテクノロジーにより、ギガビットの速度とサブミリ秒の遅延が可能になります。 堅牢な電圧源特性と高効率を備えた65W+ワイヤレス電力供給。 NXP製品 製品名 Layerscape Access LA1575 プログラマブル・ワイヤレス・プラットフォーム |NXPの  WPS-65WS シングルコイル ワイヤレス給電ソリューション |NXPの  通信インフラストラクチャ インダストリアル スマートホーム
View full article
コンパイル失敗 SDK_32XX_4.0.0 Hi, S32K344で新規プロジェクトを作成するとき、コンパイル作業 しかし、PINを構成してコードを更新すると、コンパイルに失敗しました ディレクトリプラットフォームのインストールは\NXP \ S32 \ S32DS \ software \ PlatformSDK_S32XX_4_0_0\RTD \ですBase_TS_T40D11M40I0R0 しかし、メッセージは D:/NXP/S32/S32DS/software/PlatformSDK_S32K3/RTD/BaseNXP_TS_T40D34M40I0R0/include/OsIf_Internal.h:45:10:致命的なエラー:OsIf_Cfg.h:該当するファイルやディレクトリはありません コンパイルするとき Re:コンパイル失敗SDK_32XX_4.0.0 パッケージを再インストールしましたが、問題は解決しました Re:コンパイル失敗SDK_32XX_4.0.0 Hi@monk_65 1つのS32 DSに複数のRTDバージョンをインストールしていますか? 同じS32 DSに異なるRTDバージョンをインストールすると、同様のエラーが発生します。 これは、前にお伝えしたことと多少似ています。 可能であれば、IDEをアンインストールして再インストールし、インストールディレクトリ内のすべてのファイルを削除することを忘れないでください。 Re:コンパイル失敗SDK_32XX_4.0.0 しかし、ペリフェラル、コンポーネントビュー、およびOsif構成がないため、このファイルを追加できません 周辺機器ツールをクリックすると、「周辺機器ツールは有効になっていますが、選択したプロセッサをサポートしていません」と表示されます Re:コンパイル失敗SDK_32XX_4.0.0 OSを生成していないためです。peripheral>>OS>>generalの生成ボタンを押します。そして、プロジェクトを更新します Re:コンパイル失敗SDK_32XX_4.0.0 Hi@monk_65 Re:コンパイル失敗SDK_32XX_4.0.0 IはS32拡張機能とアップデートを含むパッケージを再インストールしました RTD S32K3_S32M27X 4.0.0.202404020208 com.nxp.RTD.S32K3_S32M27X.root.feature.feature.group NXPセミコンダクターズ株式会社 RTD S32K3XX 4.0.0.202404020208 com.nxp.RTD.S32K3XX.root.feature.feature.group NXPセミコンダクターズ株式会社 S32K3xx開発パッケージ3.5.8.202311290134 com.nxp.s32ds.s32k3.dev.feature.feature.group NXP S32プラットフォーム用S32デザインスタジオ3.5.11.202403280939 com.nxp.s32ds.platform.ide.feature.feature.group NXP FREERTOS S32K3_S32M27X 4.0.0.202312180411 com.nxp.FREERTOS.S32K3_S32M27X.root.4.0.0.feature.feature.group NXPセミコンダクターズ株式会社 guide_started_s32k_3xxでプロジェクトを作成し、コンパイルはOKです しかし、PINを構成しようとしましたが、エラーが発生しました D:/NXP/S32DS.3.5/S32DS/software/PlatformSDK_S32K3/RTD/BaseNXP_TS_T40D34M40I0R0/include/OsIf_Internal.h:45:10:致命的なエラー:OsIf_Cfg.h:該当するファイルやディレクトリはありません このファイルがプロジェクト内にない理由がわかりません 「manager SDKコンポーネント」を使用する場合 「OS」パッケージを選択しましたが、プロジェクト内のOSに関連するファイルがあります Re:コンパイル失敗SDK_32XX_4.0.0 Hi@monk_65 このプロジェクトはS32DSから来ていますか? 1つのS32 DSに複数のRTDバージョンをインストールしていますか? 同じS32 DSに異なるRTDバージョンをインストールすると、同様のエラーが発生します。 RTDのバージョンごとに別々のS32 DSをインストールしてください。 Re:コンパイル失敗SDK_32XX_4.0.0 S32K344のデモプロジェクトからきちんと始めましたか?ご確認ください Re:コンパイル失敗SDK_32XX_4.0.0 ありがとうございます。 詳細については、ここでペリフェラルを選択したときのメッセージを参照してください 私の構成はS32K344ですが、なぜ互換性がないのですか? Re:コンパイル失敗SDK_32XX_4.0.0 Hi@monk_65 S32 DSからサンプルプロジェクトを開いてみて、問題がまだ存在するかどうかテストしてください。 「はい」の場合は、RTD のインストールに問題がある可能性があります そうでない場合は、プロジェクトを確認し、2 つのプロジェクトの違いを比較します。 Re:コンパイル失敗SDK_32XX_4.0.0 OSコードを生成していないようです。周辺機器の設定で確認し、OS>Generateで[Generate Configuration]ボタンを確認してください。それを押してから、コードを更新します
View full article
[指南] 在 Ubuntu 14.04 Trusty Tahr 上设置 Android 开发环境 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好, 随着 Ubuntu 14.04 LTS Trusty Tahr 的启动和运行,我决定发布本指南来帮助任何想要迁移到该版本的人。我个人认为这是迄今为止最好的 Ubuntu。这些步骤源于我反复试验、网上搜索以及从各处收集的信息。完成后,您应该拥有一个功能齐全的 Android 开发环境。注意:其中一些软件包可能已经安装在您的机器上。显然,如果您完成某个步骤并安装了其中一个软件包,机器将无法运行。所以……这不会造成任何影响。其中一些软件包与 Ubuntu 12.04 和 13.04 有所不同(这些软件包适用于 Ubuntu 14.04,因为许多旧软件包已经过时,这些是新的替代品)。 我强烈建议安装的第一件东西是来自 Ubuntu 软件中心的“Muon 软件包管理器”。我将参考它来安装一些软件包。 下一个... 安装 Python 打开终端(CTRL + ALT + T) 然后在终端中逐个执行以下命令: $ sudo apt-get install build-essential gcc $ wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz $ tar -xvzf Python-2.7.6.tgz $ cd Python-2.7.6 $./configure--prefix=/usr/local/python2.7 $ make $ sudo make install $ sudo ln -s /usr/local/python2.7/bin/python/usr/bin/python2.7 现在 Python 已配置完毕 安装JDK 将 PPA 添加到系统 $ sudo add-apt-repository ppa:webupd8team/java 下载并安装 Java $ sudo apt-get update && sudo apt-get install oracle-java6-installer 检查 $ java -版本 您应该会看到类似这样的内容: Java版本“1.6.0_45” Java(TM) SE 运行时环境(版本 1.6.0_45-b06) Java HotSpot(TM) 64 位服务器 VM(版本 20.45-b01,混合模式) 如果没有(我过去曾遇到过这个问题),请转到: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html (在您的浏览器中手动下载) 如果您没有 Oracle 帐户,则必须登录或设置一个 Oracle 帐户。 将“jdk-6u45-linux-x64.bin”放在主目录中。 然后我们需要运行二进制文件并通过打开终端并输入以下内容将其移动到共享位置: $ chmod +x jdk-6u45-linux-x64.bin $ sudo ./jdk-6u45-linux-x64.bin $ sudo mv jdk1.6.0_45 /usr/lib/jvm/ 现在您必须安装所有二进制文件并赋予它们最高优先级,这也将覆盖您计算机中以前版本的 Java 二进制文件: $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 1 $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1 $ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 1 $ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 1 $ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 1 大多数时候我执行这些命令后,基本上 jdk 就不存在了。只需运行二进制文件并再次使用上述三个命令将其移动到共享位置并安装并再次赋予它们最高优先级...这很痛苦,我知道) 现在检查是否选择了 JDK 1.6: $ sudo update-alternatives --config java $ sudo 更新替代方案 --config javac $ sudo update-alternatives --config javaws $ sudo 更新替代方案——配置 jar $ sudo update-alternatives --config javadoc 这五个都应该选。 现在JDK已配置完毕!检查是否完成 在终端执行: $ java -版本 输出将类似于此: Java版本“1.6.0_45” Java(TM) SE 运行时环境(版本 1.6.0_45-b06) Java HotSpot(TM) 64 位服务器 VM(版本 20.45-b01,混合模式) 如果没有,你可能需要再次运行 JDK 现已配置完毕。您现在可以删除或保存主目录中的其他“jdk-6u45-linux-x64.bin” 安装 GNU Make(仅使用make-3.81;这是为 Android 设计的) $ wget -o make.tar.gz http://ftp.gnu.org/gnu/make/make-3.81.tar.gz $ tar -xvzf make-3.81.tar.gz $ cd make-3.81 $./configure $ sudo make install 现在 GNU make 已配置完毕 安装Android SDK 从以下位置下载 SDK: http://developer.android.com/sdk/index.html 接受条款并下载 64 位。 在您的主目录中提取并将提取的文件夹重命名为“adt”。 现在,在终端中执行以下命令: $ cd ~/adt/sdk/tools/ $ ./android sdk 此时 SDK 应该会出现,您至少需要下载所有工具和所有附加文件(至少到 4.0,因此请选择并安装它们。当它完成下载和安装所有内容后,您必须在另一个终端中运行此命令: $ sudo gedit .bashrc 并且您需要在其末尾添加以下三行 SDK 路径(复制并粘贴): #Android 路径 导出 PATH=$PATH:~/adt/sdk/tools 导出PATH = $ PATH:〜/ adt / sdk / platform-tools 保存并关闭文件,然后关闭终端。 SDK已配置。 设置 ADB 和 Fastboot 这些包需要运行许多 Android 命令,例如 ADB 和 FASTBOOT(只有 64 位需要这些)。使用 Muon 包管理器获取以下三个包: lib32z1 lib32ncurses5 lib32bz2-1.0 配置 USB 访问 前往: snowdream/51-android · GitHub 下载“51-Android.rules” 按字母顺序添加以下行: #Sabresd 子系统=="usb", SYSFS{idVendor}=="18d1", 模式="0777" 子系统=="usb|usb_device",属性{idVendor}=="18d1",模式="0666",组="plugdev" 打开终端并输入: $ gksudo nautilus 在弹出窗口中,返回硬盘并导航至:/etc/udev/rules.d 复制并粘贴 51-android.rules 保存并关闭文件,然后关闭窗口。 为此文件设置正确的权限: $ sudo chmod 644 /etc/udev/rules.d/51-android.rules $ sudo chown root。/etc/udev/rules.d/51-android.rules $ sudo 服务 udev 重启 $ sudo killall adb ADB 和 Fastboot 已配置 安装所需的软件包 Open Terminal 现在执行这个命令: $ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils xsltproc pngcrush gcc-multilib lib32z1 schedtool 完成后,执行以下命令: $ sudo apt-get install uuid uuid-dev $ sudo apt-get install zlib1g-dev liblz-dev $ sudo apt-get install liblzo2-2 liblzo2-dev $ sudo add-apt-repository ppa:git-core/ppa $ sudo apt-get update $ sudo apt-get install git-core curl $ sudo apt-get 安装 u-boot-tools $ sudo apt-get 安装 cbootimage $ sudo apt-get install dfu-util $ sudo apt-get install libterm-twiddle-perl 使用 Muon 包管理器安装这些包(其中一些可能已经安装): 原始 awk cl-awk dpkg-awk 呆呆地 mawk sed 已编辑 abootimg 安装 Repo 包 打开终端并输入: $ mkdir ~/bin $ PATH=~/bin:$PATH $curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo 现在建议您重新启动计算机!!!! Ubuntu 14.04 Trusty Tar 所需的额外软件包 必须安装这些以避免在 Android 构建期间出现导致错误的问题。 打开 Muon 包管理器并输入“cpanm”并安装: libmodule-cpafile-perl 减法 pmuninstall 接下来,输入“libperl”,如果尚未安装则安装: libperl-dev libperl-apireference-perl libperl5.18 libperl6-调用者-perl libperlio-gzip-perl libperl4-corelibs-perl libperl5i-perl 接下来,输入“perl”,如果尚未安装则安装: perl perl 库 libxml-perl libfile-find-rule-perl-perl libprobe-perl-perl libmodern-perl-perl perl-modules 关闭Moun包管理器 打开终端并输入: $ cpan App::cpanminus (当被问到时回答“是”) $ sudo cpanm 开关 配置 Git 打开终端并输入: $ git config --global user.email " " $ git config --global user.name " " Git 已配置。 Istall Ccache 下载“ccache 3.1.9源代码(tar.gz)”(或更高)来自: http://ccache.samba.org/download.html 解压到主目录。 打开终端并执行: $./configure $ make $ make install $ sudo gedit make install.bashrc 复制并粘贴以下内容: 导出USE_CCACHE=1 保存并关闭 打开终端并执行: $ ccache -M 75G 我通常使用 75GB。 Ccache 现已设置为 75 千兆字节。 生成 SSH 密钥 在终端中检查 SSH 密钥: $ cd ~/.ssh $ ls 检查目录列表以查看是否有名为 id_rsa.pub 或 id_dsa.pub 的文件。如果您没有上述任何一个文件,请继续。否则,您已经有一个现有的密钥对,您可以跳到“将您的 SSH 密钥添加到 GitHub”。 生成新的 SSH 密钥。 要生成新的 SSH 密钥,请输入以下代码。我们需要默认设置,因此当要求输入要保存密钥的文件时,只需按 Enter 键。在终端中输入: $ ssh-keygen -t rsa -C " " 将要求输入两次密码;只需按两次回车键即可。 将您的 SSH 密钥添加到 GitHub 运行以下代码将密钥复制到剪贴板: $ sudo apt-get 安装 xclip $ xclip -sel clip < ~/.ssh/id_rsa.pub 转到您的 github 帐户(如果没有,请创建一个)并添加您的新公钥。 GitHub · 共同构建更好的软件。 测试一切。 在终端中输入: $ ssh -T [email protected] 您可能会看到以下警告: 主机“github.com (207.97.227.239)”的真实性无法成立。 # RSA 密钥指纹为 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48。 # 您确定要继续连接吗(是/否)? 输入“yes”;你应该得到这个: 你好,用户名!你已成功验证,但 GitHub 不提供 shell 访问权限。 如果用户名正确,则表示您已成功设置 SSH 密钥。 您的构建环境现已设置
View full article
kw38 外部 jlink によるデバッグの失敗 例: SDK_2_6_15_MKW38A512xxx4\boards\frdmkw38\wireless_examples\bluetooth\w_uart\freertos ide: MCUXpresso IDE v11.9.1_2170 注:自社の取締役会 エラー: J-Link GDB Server がエラーを報告しました。 詳細については、サーバーコンソールを確認してください。 エラー:ターゲットに接続できません。 あなたはそれで私を助けてくれますか、ありがとう! Re:外部jlink経由のkw38デバッグ失敗 それは私たちのボードの問題です、ありがとう Re:外部jlink経由のkw38デバッグ失敗 Hello, この場合、私はあなたを助けます、 KW38に関するトピックについて2つの質問があることに気づきましたが、もしかしてそれらは関連していますか?その場合は、 PEmicro - NXP Communityを通じて、この脅威KW38デバッグのフォローアップを行うことができます。 よろしくお願いします。 Itzel Re:外部jlink経由のkw38デバッグ失敗 それを手伝ってくれませんか?ありがとうございます
View full article
如何解决FRDM-RW612中的闪存问题(闪存锁) 如果您尝试刷新 FRDM-RW612 并且出现以下 J-Link 错误之一: 错误 1: ****** Error: Verification failed @ address 0x18000000 Error while programming flash: Verify failed. 错误 2: ****** Error: Verification failed @ address 0x08000000 Error while programming flash: Verify failed. 发生这种情况的原因可能有很多种;我已经解决的一个问题是当我们将 RD-RW612-BGA 二进制文件刷入 FRDM-RW612 时。执行此操作时,电路板将被锁定,并且我们将无法再将数据写入闪存,直到我们将其解锁。 请尝试以下操作: 1. 获取MCUXpresso 安全配置工具 2. 创建新工作区并选择 RW612 3. 在源可执行映像中选择“ MCUX_Provi_v9\bin\_internal\data\sample_data\targets\RW612\source_images\frdmrw612_gpio_led_output.s19”。单击出现的配置助手消息的复选框,然后单击确定。 4. 将您的开发板设置为 ISP 模式;按下 ISP(SW3)按钮,通过 J10 将 USB 电缆连接到您的 PC。 5. 在工具选项中请选择RW612、UART(选择正确的PORTx)、Plain、Flex SPI NOR - complete FCB、InField shadow regs、No TrustProvi 和 PyOCD。   6.点击“构建图像” 7. 移至“写入图像”部分并单击“写入图像” 8. 示例程序闪现后,开发板上的 LED 应开始闪烁 9. 重启你的开发板并尝试烧写 MCUXpresso SDK hello_world 我希望这有帮助。 此致, Daniel.
View full article
implement gpio-imx-rpmsg driver on imx8mn ねえ皆さん 私は、M7コアとA53の両方が1つのポートで異なるgpioを使用するアプリケーションを作成しています(例:A53はGPIO1_IO_10を使用し、M7コアはGPIO1_IO_11を使用します)、これによりカーネルLinuxが永久にスタックします。 したがって、私の解決策は、Cortex-MがGPIOに対して物理的な書き込み/読み取りを行い、割り込みが発生したときにコアA53にRPMSGメッセージを送信することです。disabled &gpio からのすべての GPIO ピン参照は、仮想 GPIO に簡単に再マップできます。libgpiod と Linux gpio-imx-rpmsg.c ドライバー、この記事に基づく IMX8M PLUS: GPIO 割り込みの M7 と A53 の競合 - テクニカルサポート - Toradex Community 私はIMX8mnチップ用のM7コアアプリケーション用のSDKをダウンロードしましたが、M7コア用のLinuxからのgpio-imx-rpmsgダイバーを使用してサービスを提供する例はありません。どなたかこの問題を解決するのを手伝っていただけますか? よろしくお願いします。 コンフオン Re: implement gpio-imx-rpmsg driver on imx8mn Hi @phuongnguyen1  カーネルのgpio-imx-rpmsgドライバはi.MX7ULPおよびi.MX8ULP用で、参考のためにimx7ul/imx8ulp SDKをダウンロードすることができます。 たとえば、evkmimx8ulp_power_mode_switch\app_srtm.c と evkmimx8ulp_power_mode_switch\srtm\services\srtm_io_service.c です
View full article
mcx c144 - ROMブートローダ こんにちは 組み込みLinuxarm144ホスト上のi2c経由で接続されたmcxc64を使用しています。テスト目的で、mcxc144で正常に動作し、i2cでLinuxホストと通信できるファームウェアを作成しました。今のところ、Windows開発マシンから直接jlinkプローブを使用してファームウェアをフラッシュします。 私の目標は、i2cを介して組み込みLinuxから直接mcxc144をフラッシュすることです。これは 組み込みのブートローダーで可能であると理解しているが、いくつかの問題に直面している。 ・mcxc144を消去すると、ブートローダーで起動しないようです(i2cバスで表示されません)(NMIピンを高低で試してみましたが、同じです) -ファームウェアが実行されているときに、i2cコマンドを作成して、ファームウェアをブートローダーに強制的に実行させます(単純なジャンプ0x1c000000)。この時点で、私は2つの行動をとっています。 ->何もしないと、i2c バスに mcxc144 が 5 秒間 (デフォルトのブートローダー アドレス) 0x10 (ブートローダー ペリフェラルを有効にするデフォルトのタイムアウト) 表示され、その後何もない mcxc144 がフリーズします。 ->この 5 秒間に ping パケットを送信すると、送信コマンドは失敗しますが、最後にファームウェアで mcxc144 が再起動します。 blhostを使用するようにSPDSKをダウンロードしようとしましたが、i2cプログラミングをサポートしていません。また、i2cをサポートする古いblhostバージョンも構築しましたが、pingパケットを手動で送信したときと同じことを行います。 まあ、もっと簡単な作業だと思っていたのですが、今は少し迷っています。 何かアイデアやコメントはありますか? ブートROM|ブート|フラッシュ MCXC 日時:mcx c144 - ROMブートローダ Hi @romainmoura  私は知ってうれしいです、結果を共有してくれてありがとう、私は解決策としてあなたの応答をマークしました。 ディエゴ 日時:mcx c144 - ROMブートローダ Hello, 簡単なフィードバックとして、i2cプログラミングは新しいPCBで動作しています。より強力なプルアップ抵抗を配置し、ガルバニックアイソレータとmcxc144の電源投入の間に遅延を追加します。 これで、blhost 2.6.2 を使用して .hex をロードできますファイル : blhost -i /dev/i2c-2 flash-image /lib/firmware/myFirmware.hex   よろしくお願いいたします。 日時:mcx c144 - ROMブートローダ Hi @romainmoura  私はこれをフォローアップしたいだけです、あなたはまだ問題に直面していますか?その間に何か他のものを見つけましたか?バス上の他のデバイスについて言及しているように、バス上のMCXのみを使用してテストするとよいでしょう。 よろしくお願いいたします ディエゴ 日時:mcx c144 - ROMブートローダ 返信ありがとうございます、frdmボードを確認します。私たちの設計では、mcxc144 はガルバニック アイソレータの背後にあり、i2c 通信に問題がありました。i2c ピン構成は、ブートローダー モードではまったく同じではない可能性があります。さらに、mcxc144 は i2c バス上だけではありませんが、これはおそらく役に立たないでしょう。 blhostは、SPSDKで、Linux上の直接ネイティブのi2cバスではなく、USB i2cブリッジを探しています。エラーは次のとおりです。 blhost -l i2c,0x10,100 -- プロパティ 1 を取得 SpsdkNoDeviceFoundError:指定されたインターフェース 'usbsio_i2c'とパラメータ 'config=i2c,0x10,100, timeout=5000'のデバイスが見つかりませんでした。 よろしくお願いいたします 日時:mcx c144 - ROMブートローダ こんにちは 私はMCXC444 frdmでI2C接続をテストしましたが、それは組み込みのブートローダーで動作します。frdmボードでは、I2Cはオンボードデバッガを介して提供され、ホストコンピュータとターゲットMCU間のUSB-to-I2Cブリッジとして機能します。frdmボードでI2Cを有効にするには、0 Ω抵抗R78とR79、および2.2k Ω抵抗R76とR77をはんだ付けする必要があります。だから多分あなたはfrdmとあなたの解決策をcompereすることができます。 SPSDKはI2Cプログラミングをサポートしています私はSPSDK 2.6.0とblhost -l i2c,0x10,100 -- get-property 1を使用しました。 ROM ブートは、フラッシュ コンフィギュレーション フィールドの FOPT レジスタで設定します。しかし、消去後の状態はROMを強制的に起動する必要があるため、これは問題にはなりません。 ROMはBCA構成に基づいて周辺機器を有効/無効にできますが、消去後、BCAが無効な状態にあるため、すべての周辺機器が有効になります。 これがお役に立てば幸いです。
View full article
S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 Hi NXP, 如果我想使用Bootloader正常启动带hse特性的A-core镜像,应该怎么做?有没有什么例子或者文档可以参考?我是否缺少一些配置或步骤?你有什么建议吗? 参考 AN13750,我可以使用此 Bootloader 成功启动没有 HSE 功能的 A-core 映像。具有HSE功能的A-core镜像也可以从SD卡启动模式正常启动。但是,它无法通过 qspi 启动使用 Bootloader。现象是uart0无输出。 BSP40 hse通过yocto编译,如下: DISTRO_FEATURES:附加 = " hse " DISTRO_FEATURES:附加 = " pkcs11-hse " NXP_FIRMWARE_LOCAL_DIR =“/home/work/NXP/fsl-auto-yocto-bsp/下载” HSE_VERSION = "0_2_22_0" HSE_LIC =“许可证.rtf” HSE_SOC_REV =“rev1.1” HSE_LIC_MD5 = “a1bda359fc5cdcfca04f84834841a5ca” EB的Bootloader配置如下: 重置处理程序地址:0x34085000 在地址(RAM)处加载图像:0x3407b2c0 西南: EB tresos Studio27.1 集成参考示例S32G3202302 SW32_RTD_4.4_4.0.0 BSP40 HSE_FW_S32G3XX_0_2_22_0 硬件:S32G399A-RDB3 此致, 昆西 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 你好@Quincy_Wen , 你能告诉我你在 A53 核心上做了哪些配置或改变吗? 谢谢。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 你好@Quincy_Wen , 我想了解您在 EB 和 A 核心端的配置。如果可能的话,您能否提供这些详细信息? 您能分享您所提到的文档吗? 谢谢。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 感谢@Quincy_Wen的回复。 我将 qspi 的源地址指定为 0x200000。但我仍然面临同样的问题。 您能就此提出建议吗? 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 意思是HSE-FW和SYS-IMG存放在flash上的起始地址应该是1KB的倍数。例如,我的 HSE 从 0x1000 开始。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 你好@Quincy_Wen 谢谢您的回复。 1)我将源地址更改为 0x200000,但我观察到同样的情况,控制权没有转到 u-boot 2)您能否更详细地说明一下对齐,您指的是 A 核心对齐还是在引导加载程序端? 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 也许您的 EB 配置有问题。例如,0x264ee0 处的源地址(QSPI)的值应更改为 0x200000。另外,需要注意的是,这里要求的是1KB对齐,虽然也可能是4KB对齐(不同的flash有不同的对齐要求)。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 @Quincy_Wen 非常感谢您的回复。 以下是在核心上启用 hse 后的图像布局: 下面显示了我的 blob: 以下是 Eb 配置: 但当我闪现 引导加载程序:地址 0x0 A 核应用程序:闪存在 0x200000 M-core 应用程序:闪存于 0x400000 输出卡住了,没有转换到 u-boot,如下所示: 您能告诉我这个问题吗? 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 由于时间间隔太长,我记不清细节了。 不过还好我找到了blob图片,如下图所示,大家可以参考一下 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 你好@Quincy_Wen @Daniel-Aguirre , 我面临着类似的问题。您能告诉我您在哪个地址配置了 HSE-FW 吗? 我在引导加载程序中将 hse 配置为 0x1200 您能告诉我详细信息吗? 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 @Quincy_Wen  您能告诉我您所做的更改或在 ivt 中为 HSE-FW 配置了哪些地址吗? 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 您能否告诉我您所做的更改或您在 ivt 中为 HSE-FW 配置了哪些地址 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 我正在使用 bsp 40,我使用的主板是 s32g399ardb3。 在我的local.conf中我添加了以下内容: DISTRO_FEATURES:附加 = " hse " NXP_FIRMWARE_LOCAL_DIR =“/yocto-s32g3/文件夹” HSE_VERSION="0_2_22_0" HSE_SOC_REV="rev1.0" HSE_LIC_MD5 = “a1bda359fc5cdcfca04f84834841a5ca” 但是我没有在目标机器上找到任何日志,我得到了以下结果: 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 谢谢您的回复。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 我想知道您是如何通过 SD 卡启动模式启用 hse 的。 您在 local.conf 中更新了什么? 或者您还做了其他修改吗? 您使用哪个固件? 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 问题已解决,原因是我没有设置正确的HSE-FW地址。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 您可以参考S32G3:如何在 Linux-A53 中使用 HSE - NXP 社区 但您必须自己计算“ license.rtf ”的MD5值。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 具有HSE功能的A-core镜像也可以从SD卡启动模式正常启动。 [AG]:您是如何实现上述目标的?你能详细说明一下吗? 请回复。 谢谢。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 您能找到 SD 卡启动模式的日志吗? 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 Hi, 感谢您的反馈。我们可能误解了整个询问,如果是这样,我们深表歉意。 AN13750 显示了各个步骤下安全启动的使用,但我们知道您没有实施它们,因此我们知道并非所有步骤都得到处理。再次,我们可能存在误解。 对于引导加载程序和 ATF 上的安全启动,我们有以下意见: " 安全启动仅保护引导加载程序,引导加载程序可以在释放 A53 内核之前调用 HSE 服务来验证 TF-A。 " 其中,只有引导加载程序才可以从安全启动(在 IVT 下)启动,引导加载程序加载的所有其他应用程序都需要由开发人员进行身份验证。 请告知我们。 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 Hi Daniel, 感谢您的及时回复。是的,我已确认所有步骤均按照 AN13750 进行。此外,我熟悉 AN13750,并已按照文档在 RDB2 和 RDB3 上成功实现多核应用程序。正如我之前提到的,我可以使用 Bootloader 启动没有 hse 功能的 A-core 映像,因此我可以确认我的所有步骤都是在 AN13750 下遵循的。不过,需要澄清的是,我没有启用安全启动。这会影响启动启用了 hse 的 A-core 映像吗?您对如何实现标题有什么建议吗? 此致, 昆西 回复:S32G3 Bootloader 仅通过 qspi 启动模式启动具有 hse 功能的 A 核 Hi, 我们了解到 AN13750 仅提供了使用 HSE-FW 实现安全启动的步骤,因为为Bootloader.c提供了一个补丁文件以及包括 IVT 下的 HSE-FW。 您是否已确认遵循 AN13750 下的所有步骤?由于您的 BSP 版本与 AN13750 下显示的版本不同,因此应小心。 请告知我们。
View full article
FRDM-K64F——物联网 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 描述 东西...互联网启用...通过 TCP 连接使用命令行和 GUI 部分 Fantasma Toys 手推车: http://www.newegg.com/Product/Product.aspx? Item=9SIA0190BB9057 FRDM-K64: http://mbed.org/platforms/FRDM-K64F/ RN-XV: https://www.sparkfun.com/products/10822 FRDM-AUTO: https://community.freescale.com/docs/DOC-99621 GUI代码: https://github.com/ehughes/InternetofThing MBED Code: http://mbed.org/users/emh203/code/InternetOfThing/wiki/internet_of_thing 动作镜头 回复:FRDM-K64F - 物联网 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Nice! 现在这件东西已经正式从我的“耻辱”墙上消失了。事物之子可能会回来…… 回复:FRDM-K64F - 物联网 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你打算用它做什么?我可以使用 Hand Butler。我们可以让它们互相交谈......这是最近搬家的同事留下的。会检查但不认为她想要它。 Hand Butler 旨在取悦用户 | Ubergizmo 如果我们有多个,那肯定是物联网
View full article
フリースケール H.I.T. Project #1: MonkeyJam - DIYギター・ストンプ・ボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> プロジェクト概要 開発されたスキル: 原材料: ステップ0:前提条件のビデオ ステップ1:FRDM-JAMを入手する ステップ2:まとめる ステップ3:ダウンロード ステップ4:ハックアンドスラッシュ! サウンドサンプル ユーティリティ等: プロジェクト概要 MonkeyJamは、FRDM-JAMシールドとともにFRDM-K20D50ボード(DSP命令を備えたCortex M4コアを持つ)を使用します。 独自のギター/ベースのストンプボックス。その結果、高品質のアンプシミュレーションとエフェクトを作成できる機能的なDSPシステムが実現します。 FRDM-JAMは、楽器のDSPに限定されません。3.5mmステレオジャックからDSPまで、あらゆるタイプのオーディオ信号をフィルタリングできます。USBインターフェースを使用してUSB-MIDIシンセサイザーを作成することもできます。最後に、家を倒す必要はありません..... ヘッドホンアンプ回路が設けられているので、隣人に迷惑をかけずにジャムアウトできます。 MBEDサポートは*非常に近日* 開発されたスキル: リアルタイム・プロセッシング DSPアルゴリズム 固定小数点数学 24ビットI2Sデータコンバータインターフェース SOIC8および1206表面実装デバイスのはんだ付け Cortex CMSIS DSPライブラリ 原材料: FRDM-K20D50 FRDM-JAM 開発ツール Codewarrior 10.5 for Microcontrollers (Eclipse) Special Editionをマシンにインストールします サンプルコード Github から最新のコピーを入手する ステップ0:前提条件のビデオ 動画は素敵なYouTubeプレイリストに整理されています。 H.I.T 1:モンキージャム - YouTube https://www.youtube.com/playlist?list=PLWM8NW5LEukgM-D5eRMtKZ8R2WfXnqKGp モンキージャムウォッチミー1位 FRDM-JAM ハードウェアの概要 MonkeyJamソフトウェアの概要 組み込みシステム向け固定小数点演算入門 - パート 1/3 組み込みシステム向け固定小数点演算入門 - パート 2/3 組み込みシステム向け固定小数点演算入門 - パート 3/3 リアルタイム信号処理 パート1/3 リアルタイム信号処理 パート2/3 リアルタイム信号処理 パート3/3 q31_t (Q0.31)CMSIS DSPライブラリとMonkeyJamソフトウェアの数値形式 ギターの物理学を一言で言えば MonkeyJamをハックするためのアイデア ステップ1:FRDM-JAMを入手する モンキージャム FRDM-JAM サイトでパッケージをビルドします。組み立て済みバージョンに興味がある場合はお知らせください。十分な需要があれば、事前に組み立てて購入し、Kickstarterを開始します!自分で作ることを恐れないでください、はんだ付けは楽しいです! SMTはんだ付けの方法に関するウェブ上にはたくさんの良いものがあります。ボード上のすべての部品は、コツをつかむとかなり簡単になり、すべてを手ではんだ付けできます。 ステップ2:まとめる FRDM-JAM を FRDM-K20D50 に取り付けます。FRDM-K20D50には、ボードを簡単に分離できるようにはんだ付けできるメスヘッダーが付属しています。Rev Gamma(現在のバージョン)以降、K64Fに接続することが可能であることに注意してください。ソフトウェアはまだそこまでではありませんが、ハードウェア接続は利用可能です。よくわからない場合は、FRDM-K20D50を使用してください ステップ3:ダウンロード サンプルソフトウェアを Githubからダウンロードします。ビデオ 「MonkeyJamサンプルソフトウェアの読み込みと設定」 では、プログラムのダウンロードと基本的な設定を行う手順を説明します。 ステップ4:ハックアンドスラッシュ! プラグを差し込んでジャム! サウンドサンプル 各サウンドサンプルは、Carvin Ultra-VギターをMonkeyJamボードに直接接続したものです。出力はZoom Handy Recorder H4nに供給されました(レコーダーはRemodulate LLCのBrandin Claar氏に感謝します)。H4Nは44.1KHzのサンプルレート@16ビットで信号を記録しました。サウンドファイルはGoldwaveを介してモノラル形式に変換されました。処理 (ファイルのボリューム ブーストを除く) は実行されませんでした。録音はH4Nのライン出力でリアルタイムに聴きます。 ファイル (添付ファイルを参照) パッチ 備考 STE-003-Neck-a12b12g12-mlike.wav PATCH_TUBEY_CLEAN ネックピックアップ アルファポット - 12 O'Cock Beta Pot - 12 O'Cock Gamma Pot - 12 O'Cock メタリカ・サニタリウムに似たパターン STE-005-Neck-a7b5g5-mlike.wav PATCH_TUBEY_CLEAN ネックピックアップ アルファポット - 7 O'Cock Beta Pot - 5 O'Cock Gamma Pot - 5 O'Cock メタリカ・サニタリウムに似たパターン STE-006-Neck-a12b7g5-mlike.wav PATCH_TUBEY_CLEAN ネックピックアップ アルファポット - 12 O'Cock Beta Pot - 7 O'Cock Gamma Pot - 5 O'Cock メタリカ・サニタリウムに似たパターン STE-007-Neck-VariousSettings-d-g-em_strum.wav PATCH_TUBEY_CLEAN ネックピックアップ ポットはファイル全体で移動されました かき鳴らされたニ長調、ト長調、Eマイナー STE-008-Neck+Bridge-VariousSettings-d-g-em_strum.wav PATCH_TUBEY_CLEAN ネック+ブリッジピックアップ ポットはファイル全体で移動されました かき鳴らされたニ長調、ト長調、Eマイナー STE-009-Bridge-VariousSettings-d-g-em_strum.wav PATCH_TUBEY_CLEAN ブリッジ + ブリッジピックアップ ポットはファイル全体で移動されました かき鳴らされたニ長調、ト長調、Eマイナー STE-010-Neck-VariousSettings-Jammy.wav PATCH_TUBEY_CLEAN ネック+ブリッジピックアップ ポットはファイル全体で移動されました Bマイナータイプジャム STE-011-ブリッジ-さまざまな設定-オンオフDemo-RandomDroppedD.wav PATCH_OVERDRIVE ブリッジピックアップ アルファポット - 5 O'Cock Beta Pot - 12 O'Cock Gamma Pot - 12 O'Cock ランダムドロップDツイドリング STE-012- ネック - 各種設定 - オンオフDemo-Jammy.wav PATCH_OVERDRIVE ネックピックアップ アルファポット - 5 O'Cock Beta Pot - 7 O'Cock Gamma Pot - 7 O'Cock ランダムBマイナーツイドル(ブルージー) PATCH_OVERDRIVE             +––––––––––––––––––+      +––––––––––––––––––––––––––+      +–––––––––––––––––––––+                               |                  |      |                          |      |                     |                  シグナルイン |   IIRバイクワッド |     |     ハードオーバードライブ |     |     IIRバイクワッド | シグナルアウト  +–––––––––+>|                  +––––+>|                          +––––+>|                     +–––––––––––––+>   |  【ピーキングEQ】 |     |【atan24pi ルックアップテーブル】 |     | [ローパスフィルター] |              |                  |      |                          |      |                     |                               +––––––––––––––––––+      +––––––––––––––––––––––––––+      +–––––––––––––––––––––+                                                                                                                                    0.1 < Q < 1.5 [ポットアルファ] Q = 0                                                                                                                   50 < Fs < 750 [ポットガンマ] Fs = 2000                                                                                                                   -20 < dbGain < 20 [ポットベータ]                                                                                                                   PATCH_TUBEY_CLEAN              +––––––––––––––––––+      +––––––––––––––––––––––––––+      +–––––––––––––––––––––+                               |                  |      |                          |      |                     |                  シグナルイン |   IIRバイクワッド |     |     ソフトオーバードライブ |     |     IIRバイクワッド | シグナルアウト  +–––––––––+>|                  +––––+>|                          +––––+>|                     +–––––––––––––+>   |    [ローシェルフ] |     |【atan4pi ルックアップテーブル】 |     | [ローパスフィルター] |              |                  |      |                          |      |                     |                               +––––––––––––––––––+      +––––––––––––––––––––––––––+      +–––––––––––––––––––––+                                                                                                                                    0.05 < Q < 2.58 [ポットアルファ] Q = 2.0                                                                                                                   1000 < fs<4000 [ポットベータ] fs=2500                                                                                                               -15 < dbGain < 15 [ポットガンマ]                                                                                                               ユーティリティ等: Biquadフィルタービュー - IIRバイクワッドフィルターの設計&視覚化ツール 学生プロジェクト 日時:フリースケールH.I.T.プロジェクト#1:モンキージャム - DIYギターストンプボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Eli 私はCMSISコードを実装し、他の人のためにドキュメントを作成しましたので、プロセスに誤りがある場合はご覧いただき、更新してください。https://community.freescale.com/message/414670#414670 敬具 アミット・クマール 日時:フリースケールH.I.T.プロジェクト#1:モンキージャム - DIYギターストンプボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Eli Hughes codwarriorでCMSISライブラリを実装する方法を実演したビデオのリンクを提供していただけますか、基本的に私はあなたが実装したFFTライブラリに関係していますか?それは大きな助けになります。感謝 敬具 アミット・クマール 日時:フリースケールH.I.T.プロジェクト#1:モンキージャム - DIYギターストンプボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Eli お返事ありがとうございます。プロジェクトを初めて開くと、警告メッセージが表示されます。このメッセージは何か心配ですか?。 敬具 アミット・クマール 日時:フリースケールH.I.T.プロジェクト#1:モンキージャム - DIYギターストンプボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Amit: ライブラリのプロジェクト プロパティをクリックしてプロセッサ設定を見ると、2 つの記号 (ARM_CM4 と ARM_ROUNDING) があります。これが私がそれをコンパイルするためにしなければならなかったすべてです。 ビデオの1つで取り上げたと思います。そうでない場合は、確かに何かしらの小さなビデオを入手する必要があります!。 -Eli 日時:フリースケールH.I.T.プロジェクト#1:モンキージャム - DIYギターストンプボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Eli Hughes MonkeyListenプロジェクトをインポートしましたが、エラーなしでコンパイルされました。現在、テストのためにFRDM-K20D50M(MK20DX128)をターゲットにしています。この後、mk60fn1m0vlq12をターゲットにします。プロジェクトでライブラリを使用するために必要な設定は何ですか?それを機能させるために必要な設定のスナップショットを提供できる場合は、すべてのコミュニティメンバーに役立ちます。私は同じことに関して答えられなかったいくつかの質問に出くわしたように。ARMのWebサイトでも、これに関するヘルプは見つかりませんでした。あなたのチュートリアルを見たとき、すべてがよく説明されていました。ですから、この部分もカバーされていると、私のような人々にとって大きな助けになります。そして、多くの人がそれを使いたいと思っていますが、この実装部分のために使えないと思います。 よろしくお願いいたします 敬具 アミット・クマール 日時:フリースケールH.I.T.プロジェクト#1:モンキージャム - DIYギターストンプボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Amit: MonkeyListenプロジェクトをインポートしてみて、使用した設定を確認しますか?どのチップをターゲットにしていますか? 日時:フリースケールH.I.T.プロジェクト#1:モンキージャム - DIYギターストンプボックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi eli_hughes 素晴らしいチュートリアルをありがとう。これは、DSPの実際の実装をほぼ示しています。codewarriorでのCMSISライブラリの実装についてお聞きしたかったのです。私のプロジェクトの一つでは、FFTを実装するためにDSPライブラリを実装したいと考えていました。しかし、私はCMSISライブラリの実装に行き詰まっています。私はこれと2番目のプロジェクト、つまり プロジェクト#2:モンキーリスニングのためのあなたのビデオを見ました!Audio Spectrum Analyzer Display これもこんな感じで素晴らしかったです。しかし、ライブラリの実装に問題に直面しているため、これ以上先に進むことはできません。CMSISライブラリの実装に関する投稿をいくつか行いましたが、コンパイルされておらず、エラーが発生していました。そして時々m-textの制限を超えていました。私は以下のリンクを通過しました。 チュートリアル:ARM CMSISライブラリの使用 |Eclipse上のMCU CMSIS-DSP ライブラリの追加 移植CMSIS-DSP库到CodeWarrior的步骤以及Kinetis FPU单元应用的对比 どうかご検討ください。この投稿が多くのコミュニティユーザーにとって有益であることを願っています。よろしくお願いいたします 敬具 アミット・クマール
View full article
Kinetis L系列外部IO中断分配问题(Tips about extern IO interrupt distribution of Kinetis L serious) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> We know that the interrupt vector table of Kinetis L series only supports two external interrupt vectors (vector_46 and vector_47), and the KL series (including KL25\KL24, KL15\KL14) launched by FSL earlier only supports interrupts for PORTA and PORTD. However, the latest KLx6 series (KL26, KL16 and KL46) can support external interrupts for PORTA, PORTC and PORTD, of which PORTC and PORTD share the same interrupt vector. In addition, the KL0x series (including KL02, KL04 and L05) only supports PORTA and PORTB because the external pins only have two IO ports, PORTA and PORTB, so the external interrupts it supports are only PORTA and PORTB. The following figures are the external interrupt vector allocation tables of KLx5\KLx4 series (excluding KL05\KL04), KLx6 series and KL05\KL04\KL02: KLx5\KLx4: KLx6: KL0x: KLx6 header file comments: Finally, it should be noted that the comments on interrupt vectors in the interrupt vector table vector.h and MKLxxxx.h files of all current official demo routines (KLxx_SC) are still PORTA and PORTD. In some routines, the comments on the interrupt vector table are even directly moved from the comments of M4, which can easily mislead customers' programming. This needs to be considered when designing the PCB board. Kinetis L Series MCUs Re: Kinetis L系列外部IO中断分配问题(Tips about extern IO interrupt distribution of Kinetis L serious) I can not read the text either, however it seems from the highlighted parts of the data sheet what they are saying: Vector 47 is inconsistent between the different parts. This is either a documentation error in the various data sheets, or it is impossible to drop one part in place of an other without a lot of #ifdef's cluttering up the code, if you want to used different parts in the same board (lower cost parts of lower featured product, bigger parts for high end product). Which of the two possibilities is it? At the end they are also saying something about the example code is not matching/working due to vector 47.
View full article