Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
使用 Ubuntu 在 i.MX8MM 上运行 Docker <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
記事全体を表示
补丁使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 根据EHSET_v1.01.pdf描述( http://testusb.com/EHHS.html ),USB物理认证测试有两个方面。一种测试情况是PC作为USB主机运行USB-IF HSET实用程序来测试目标板作为USB设备;另一种情况是目标板作为USB主机向测试夹具发起测试信号。 所支持的测试模式的原理是基于主机枚举过程中的 Vid/Pid 对。 应用附加的补丁(我使用 r13.4.1 kernel_imx 树),然后在内核配置中启用“FSL_USB_TEST_MODE”,重建 uImage 以获取测试模式支持内核。 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好张霞, 我打的是kernel3.10.53中的补丁。但是内核一直打印“处于测试模式,但单步执行失败”。 你能给一些建议吗? 顺祝商祺! 乔治 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 如何在内核 4.1.15 上将 iMx6dl USB 设置为测试模式(主机)? 上述寄存器设置在内核 4.1.15 上不起作用 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好, 它在 Android L5.1.2 上运行吗?来源 ?有人测试过吗? 感谢您的帮助 !! BR 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, Zongbiao, 本文讨论的是HOST模式,而不是DEVICE模式。由于是设备模式,因此无需进行任何更改。 顺祝商祺! Wilson 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,威尔逊 感谢您这么快回复我。 就我而言,i.MX6 正在 USB OTG 设备模式下工作。 如果我运行./memtool-32 0x021841A8=0x3,i.MX6将在主机模式下工作。 所以我认为我需要将 0x021841A8 设置为 0x2,对吗? 顺祝商祺! ZongbiaoLiao 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, Zongbiao, 还没有将 0x2 设置为0x021841A8。完成我的步骤 1~5 后,应该可以生成测试模式了。 祝您好运! 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,威尔逊 我现在正在使用 L3.0.35_4.1.0 在 i.MX6 上工作我想测试i.MX6在设备模式下工作时的高速眼图(用于认证测试),不知道以下操作是否正确?你能幫我嗎? 1)./memtool -32 0x020c4080 1 2)./memtool -32 0x202c4080=(当前值+0x3) 3)./memtool -32 0x02184140=0x2 4)./memtool -32 0x021841A8=0x2(设置为设备控制器) 5)./memtool -32 0x02184184=0x1C050000(根据IMX6SDLRM.pdf,我将 PTC 字段设置为 FORCE_ENABLE_HS 以启用高速)。 你能告诉我这是否正确吗? 非常感谢! 顺祝商祺! ZongbiaoLiao 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 早上好,下田先生, Linux 不需要任何补丁,但有一些命令直接改变寄存器内容以生成 USB 测试模式,它们在 L3.0.35_4.1.0 上运行: 1 ./memtool -32 0x020c4080 1(读取当前值;例如 0xc00) 2./memtool-32 0x020c4080=(当前值 + 0x3;例如 0xc03) 3./memtool-32 0x02184140=0x2 4./memtool-32 0x021841A8=0x3 5./memtool-32 0x02184184=0x1C040000 (*由于某种原因,第一次分配没有生成测试模式。在这种情况下,请重执行此命令。) 但是,在我运行 Yocto 的情况下,第 5 条命令将 0x020C4080 的位 0 和 1 从 1 改回 0。因此,我们必须运行第 2 条命令再次设置时钟;否则,任何后续命令都可能导致系统崩溃。虽然我已经将此问题提交给我们的内部团队寻求帮助,但您可以在 L3.0.35_4.1.0 上尝试这些命令。 顺祝商祺! Wilson 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,Wilson先生, 感谢您的回复。 那么,你对Linux BSP了解多少呢? 特别是,我想知道它是否已应用于L3.10.17_1.0.0-ga(Yocto BSO)。 顺祝商祺! Satoshi Shimoda 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,下田桑, 该补丁适用于KK4.4.2_1.0.0-GA。 顺祝商祺! Wilson 回复:修补程序使 i.MX6DQ USB 支持认证测试的测试模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好张霞, 您能否告诉我该补丁是否已应用于较新的 BSP? (e.g. L3.10.17_1.0.0-ga, kk4.4.2_1.0.0-ga, etc...) 顺祝商祺! Satoshi Shimoda
記事全体を表示
示例 MPC5643L Flash_program_simple CW210 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 示例展示了简单的闪存编程程序。在运行时它会改变 * 常量“测试”字段的内容(因此位于内部闪存中)。 * 它还展示了如何将代码重新定位到 RAM 中,将数据重新定位到 FLASH 中(使用链接器 * 命令文件是 MPC5643L_my_sections.lcf 和 MPC5643L_DEBUG_my_sections.lcf)。 * * 注意:对于复杂的任务,请使用 SSD 驱动程序(飞思卡尔网站提供特定设备, * 软件和工具/运行时软件/中间件-设备驱动程序 * * ------------------------------------------------------------------------------ * 测试硬件:xPC564xLKIT、PPC5643L Cut3 芯片 * 目标:internal_FLASH,RAM * 系统频率:120 MHz PLL0 * Debugger:        Lauterbach Trace32 *                  PeMicro USB-ML-PPCNEXUS * 终端:19200-8-无奇偶校验-1停止位-无通过LINFlex0的流量控制 * EVB连接:默认 * ******************************************************************************** <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 示例展示了简单的闪存编程程序。在运行时它会改变 * 常量“测试”字段的内容(因此位于内部闪存中)。 * 它还展示了如何将代码重新定位到 RAM 中,将数据重新定位到 FLASH 中(使用链接器 * 命令文件是 MPC5643L_my_sections.lcf 和 MPC5643L_DEBUG_my_sections.lcf)。 * * 注意:对于复杂的任务,请使用 SSD 驱动程序(飞思卡尔网站提供特定设备, * 软件和工具/运行时软件/中间件-设备驱动程序 * * ------------------------------------------------------------------------------ * 测试硬件:xPC564xLKIT、PPC5643L Cut3 芯片 * 目标:internal_FLASH,RAM * 系统频率:120 MHz PLL0 * Debugger:        Lauterbach Trace32 *                  PeMicro USB-ML-PPCNEXUS * 终端:19200-8-无奇偶校验-1停止位-无通过LINFlex0的流量控制 * EVB连接:默认 * ******************************************************************************** 概述
記事全体を表示
SimpleEvents_1.045.PEupd <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> シンプルイベント 形容 イベントフラグの設定/クリア/チェック コンポーネント SimpleEvents.PEupd Dependencies 低消費電力 ライセンス ライセンス : オープンソース (LGPL) 著作権:(c)著作権Erich Styger、2011、無断複写・転載を禁じます。 これは、Processor Expertを使用して簡単なイベントモジュールを実装するオープンソースソフトウェアです。 これはフリーソフトウェアであり、次の条件のライセンスポリシーの下で教育、研究、および商用開発に開放されています。 *これはフリーソフトウェアであり、保証はありません。 ※使用制限はありません。あなたは、あなたの責任の下で、個人、非営利、または商用製品のためにそれを使用、変更、および再配布することができます。 ※ソースコードの再配布には、上記の著作権表示を保持する必要があります。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> シンプルイベント 形容 イベントフラグの設定/クリア/チェック コンポーネント SimpleEvents.PEupd Dependencies 低消費電力 ライセンス ライセンス : オープンソース (LGPL) 著作権:(c)著作権Erich Styger、2011、無断複写・転載を禁じます。 これは、Processor Expertを使用して簡単なイベントモジュールを実装するオープンソースソフトウェアです。 これはフリーソフトウェアであり、次の条件のライセンスポリシーの下で教育、研究、および商用開発に開放されています。 *これはフリーソフトウェアであり、保証はありません。 ※使用制限はありません。あなたは、あなたの責任の下で、個人、非営利、または商用製品のためにそれを使用、変更、および再配布することができます。 ※ソースコードの再配布には、上記の著作権表示を保持する必要があります。 コンポーネント交換
記事全体を表示
ubuntu-freescale-pkgs.tar <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ltib がコンパイルしたデコードプラグインパッケージは、公式サイトでは見つけるのが困難です。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ltib がコンパイルしたデコードプラグインパッケージは、公式サイトでは見つけるのが困難です。
記事全体を表示
RT1050 startup time using different memories <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> [Chinese translation] See attachment Original link: https://community.nxp.com/docs/DOC-341316 i.MXRT 105x
記事全体を表示
MCU 101:パルス幅変調 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> パルス幅変調(PWM)は、ロボット工学でモーターやサーボを制御するために利用される技術です。マイクロコントローラは、内部カウンタを使用して、方形波のデューティサイクルを変調し、デバイスに供給される電力量を制御します。デューティサイクルは、矩形波が「オン」である時間の割合を、繰り返し信号周期と比較して参照します。デューティサイクルが高ければ高いほど、信号に運ばれる電力は大きくなります。デューティサイクルは、信号が「オン」である時間の割合として表され、100%が一貫してオンになっています。 タイマーの設定 PWM 信号の生成は、レジスタ値とフリーランニング ハードウェア カウンタ間のハードウェア比較に基づいています。タイマーモジュールは、出力比較回路の形で同様のハードウェア比較を提供します。レジスタの内容は、マスターのフリーランニングタイマーと継続的に比較されます。一致が発生すると、ハードウェア出力イベントが発生するように構成でき、割り込みはサービスルーチンを呼び出すことができます。 Timer I/O タイマー I/O ポート制御レジスタは、ポート統合モジュール (PIM) にあります。各ポートはピン単位で構成でき、各タイマー入力キャプチャ/出力比較チャネルは1つのピンに関連付けられています。リセット時には、タイマー・モジュールはディセーブルになり、適切なI/Oポートはデフォルトで高インピーダンス入力になります。ピンの初期状態を定義するには、適切な汎用 I/O ピンをデータ方向レジスタ (DDRT) の出力として構成し、ポート データ レジスタ (PTx) を適切な状態に書き込む必要があります。リセット中にレベルを制御するには、外部プルデバイスが必要です。タイマ・システム制御レジスタ(TSCR1)にタイマ・イネーブル(TEN)ビットを設定すると、タイマ・モジュールがイネーブルされます。出力比較機能は、デフォルトのモジュールリセット状態では無効になっています。このモードでは、データ方向ビット (DDRTx) がピンの I/O 状態を制御し、入力比較ロジックがピンの遷移を監視します。Timer Input Capture/Output Compare Select (TIOS) レジスタに適切なビットを設定すると、PWM 生成に必要な出力比較用のタイマー チャネルが有効になります。出力比較モードでは、タイマ制御レジスタ (TCTL1/2) の出力モード (OMn) ビットと出力レベル (OLn) ビットが同時に比較イベント アクションを選択し、 出力比較出力ロジックを関連するピンに接続できるようにします。 チャネルの OMn:OLn 制御ビットが両方とも 0 の場合、DDRTx ビットと PTx ビットは I/O ピンの状態を制御します。OMn:OLn ビットのいずれか (または両方) を設定すると、出力比較回路がピンに接続され、DDRTx と PTx の設定がオーバーライドされます。リセット後、各出力比較回路の出力状態はゼロになります。 PWM 生成の場合、OM ビットは (= 1) 設定され、出力比較出力は各比較イベントで関連付けられた OL ビットの状態に従います。OLビットの状態は、タイマチャネル割り込みが処理されるたびに反転し、トグル出力が生成されます。TENビットをクリアまたは設定すると、タイマーモジュールがそれぞれ無効または有効になりますが、他のタイマー制御レジスタの内容や出力比較出力ロジックの状態は変更されません タイマーモジュールをPWM用に構成する際には、いくつかの考慮事項を考慮する必要があります。大まかな観点から見ると、主な考慮事項は次のとおりです。 • PWM周波数 • PWMデューティサイクル 必要なPWM周波数を生成するには、バスクロック周波数がわかっている必要があり、タイマープリスケーラを設定する必要があります。これらの値は、生成されるPWM周波数の範囲とPWM信号の分解能の程度によって異なります。最大分解能とPWM周波数は、最大タイマクロック周波数によって制限されます。低いPWM周波数は、最小タイマクロック周波数によって制限されます。これはトレードオフを招くことがあり、図1に示すように評価できます。 タイマチャネルが設定されると、タイマチャネル割り込みを使用してPWM信号を生成できます。これは、割り込みサービス ルーチン (ISR) を呼び出して、適切な比較値 (マークまたはスペース) でタイマー比較レジスタを読み込むように構成する必要があります。これは、最後のアクションが負のエッジ遷移であったか正のエッジ遷移であったかを識別し、遷移ステータスを切り替えて比較レジスタをロードすることで実現されます を次の適切な値に置き換えます。マスター・タイマー・カウント・レジスタへの参照は、図3に示すように、連続するISR関数呼び出しのタイマー比較レジスタに連続するマーク値とスペース値を追加するだけで回避できます。タイマのロールオーバーは、符号なし整数の加算を使用する場合にシームレスです。前の比較値を次の比較値を生成するための参照として使用すると、ISR の遅延が変動する場合でも、正確な出力タイミングが可能になります。 PWMの開始は、慎重に検討する必要があるタスクです。割り込みを使用してPWM生成を開始するには、最初の比較イベントを手動で構成する必要があります。出力ピンを最初の遷移状態に切り替えるには、比較を設定して強制比較を構成する必要があります。最初の比較イベントの後、割り込みはPWM生成を処理します。HCS12 はハードウェア強制比較をサポートしていませんが、強制比較は、現在のフリーランニング タイマー値の数サイクル前に通常の比較を設定することで構成できます。このサイクルは、MCU内の内部レイテンシを補償するために必要です。サイクル数は、コアとモジュールのクロックによって異なります。PWMの生成を停止するときは、ラントパルス(必要に応じて規定のマークまたはスペース比よりも幅が短いパルス)を考慮することが重要です。これらのパルスを回避するには、関連する割り込みサービス ルーチン内で適切なローカル割り込みマスクを設定して、PWM 生成を無効にします。停止時のピンの適切な状態は、ISRのいずれかの部分で割り込みを無効にすることで設定できます。どちらかのライジング または立ち下がりエッジ部分。 追加のチュートリアルリソース: (マイビデオで視聴) (マイビデオで視聴) (マイビデオで視聴) DCモータ制御の概要 - パートII 講義2:パルス幅変調 フリースケール・カップの内容
記事全体を表示
Rapid IoT Cool Out-of-the-Box Experience ビデオ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このビデオでは、Rapid IoT のすぐに使えるエクスペリエンスを紹介しています。 ビデオやRapid IoTの使用経験についてどう思うか、ぜひお聞かせください。 お楽しみください! Javier アプリ動画 迅速なIoT
記事全体を表示
i.MX53メモリキャリブレーションスクリプト(AN4466) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> AN4466 で提供されているサンプル コードに基づいて、ARM DS-5 用の簡単なメモリ キャリブレーション スクリプトを作成しました。このスクリプトでは、同じ手順を実行して DQS、読み取りおよび書き込みキャリブレーションの結果が出力されます。このスクリプトは、メモリ コントローラーの最適なキャリブレーション設定を見つけるために、新しいボードで実行できます。 このスクリプトを実行する前に、標準のメモリ初期化スクリプトを実行する必要があります。 新しいボードを作成するとき: 使用しているメモリ タイプのデフォルトのメモリ初期化スクリプト (DDR Stress Tester パッケージなど) を取得し、使用するメモリ デバイスに応じてメモリ コントローラーの設定を変更します。 特定の設定でメモリを動作させるために使用するターゲット周波数に対して、指定された構成でDDRストレステスターを実行します(キャリブレーションのデフォルト値は、PCBや配線に問題がない限り、ほとんどの場合問題ありません)。 memory init スクリプトを実行し、次に添付されたスクリプトを実行して、キャリブレーションされた値を取得します。 再テスト Vladan i.MX53 Re: i.MX53 メモリ キャリブレーション スクリプト (AN4466) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> JTAGでデバイスに接続します。ARM DS-5を使用している場合は、このスクリプトを読み込んで実行し、メモリを初期化します。他のツールを使用している場合は、使用しているツールの構文に合わせて調整する必要があります... Re: i.MX53 メモリ キャリブレーション スクリプト (AN4466) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, このスクリプトの使い方を説明していただけますか?どうすれば実行できますか? Karel
記事全体を表示
P2020-MSC8156AMCRD:P2020-MSC8156 AdvancedMC ™参考设计 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 结构框图 特性 结构框图 电路板 设计资源 结构框图 NXP ® P2020-MSC8156 AdvancedMC ™ (AMC) 参考设计是面向 LTE、WiMAX、WCDMA 和 TD-SCDMA 等下一代无线标准的多标准基带开发平台。 该 AMC 平台集成了 QorIQ ® P2020 处理器及其 MSC8156 DSP P2020和MSC8156夹层卡提供系统构建模块,快速实现原型系统 适用于为下一代无线标准开发解决方案 特性 P2020-MSC8156 AMC参考设计的关键特性包括: 单宽、全高AMC规格 QorIQ ®  P2020处理器 1.2GHz的双e500v2内核 1 GB的DDR2 (SOCDIMM) TCP/IP加速 eSDHC USB MSC8156 DSP 六个 SC3850 核心,基于 StarCore ® 构建 技术,每 1 GHz 面向基带的多加速器平台引擎(MAPLE-B) 可编程Turbo和Viterbi解码器 两组512MB 64位DDR3-800 结构框图 电路板 设计资源 传统设计
記事全体を表示
Wandboard - 超低功耗、高性能、低成本开发板,配备飞思卡尔 i.MX6 Cortex-A9 处理器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Wandboard是一款超低功耗完整计算机,具有高性能多媒体功能,基于即将推出的全新 Freescale i.MX6 Cortex-A9 处理器,并配备令人眼花缭乱的 1Ghz 处理器 HDMI 显示接口和千兆以太网。Wandboard 的双核版本(Wandboard DUAL)不仅配备 1GB 内存,还内置 Wi-Fi 和蓝牙。     Wandboard Solo Wandboard Dual 处理器 飞思卡尔 i.MX6 Solo 飞思卡尔 i.MX6 Duallite Cores Cortex-A9单核 Cortex-A9 双核 内存 512 MB DDR3 1 GB DDR3 音频 • • 光纤 S/PDIF • • HDMI • • 摄像头接口 • • 微型SD卡插槽 2 2 串口 • • 扩展头文件 • • USB • • USB OTG • • SATA接头 无人居住 无人居住 Gigabit LAN • • 无线网络 (802.11n) • 蓝牙 • 69美元 89美元   www.wandboard.org 联系人: [email protected] 概述 回复:Wandboard - 超低功耗高性能低成本开发板,配备飞思卡尔 i.MX6 Cortex-A9 处理器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,我想知道 Wanboard Quad 板有多少层 PCB ?我只是对未来的定制开发感到好奇?如果有人有此信息我将不胜感激。 回复:Wandboard - 超低功耗高性能低成本开发板,配备飞思卡尔 i.MX6 Cortex-A9 处理器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> hi, 我从 tenet technetronics 拿到了这块主板,它运行良好,Jelly bean 和 ubuntu 可以在这块主板上顺利运行。
記事全体を表示
Wandboard - フリースケールi.MX6 Cortex-A9プロセッサを搭載した超低消費電力、高性能、低コストの開発ボード <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Wandboardは 、新しい近日発売予定のFreescale i.MX6 Cortex-A9プロセッサをベースにした高性能マルチメディア機能を備えた超低電力の完全なコンピュータで、まばゆいばかりの1GHzプロセッサ、HDMIディスプレイインターフェイス、ギガビットイーサネットが付属しています。Wandboard(Wandboard DUAL)のデュアルコアバージョンは、1GBのメモリを搭載するだけでなく、Wi-FiとBluetoothも搭載しています。     Wandboard Solo Wandboard Dual プロセッサ フリースケールi.MX6 Solo フリースケールi.MX6 Duallite Cores Cortex-A9シングルコア Cortex-A9デュアルコア メモリ 512 MB DDR3 1 GB DDR3 オーディオ • • オプティカル S/PDIF • • HDMI • • カメラ・インターフェース • • microSDカード・スロット 2 2 シリアルポート • • 拡張ヘッダー • • USB • • USB OTG • • SATAコネクタ 入力されていません 入力されていません Gigabit LAN • • WI-FI(802.11n) • Bluetooth • 69米ドル 89米ドル   www.wandboard.org 担当者 : [email protected] 全般 Re:Wandboard - フリースケールi.MX6 Cortex-A9プロセッサを搭載した超低電力高性能低コスト開発ボード <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、Wanboard Quad BoardにはいくつのPCBレイヤーがあるのか知りたいのですが?私はただ将来のカスタム開発に関連して興味がありますか?どなたかこの情報を持っていただけると幸いです。 Re:Wandboard - フリースケールi.MX6 Cortex-A9プロセッサを搭載した超低電力高性能低コスト開発ボード <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> hi, 私はこのボードをTenet Technetronics.itsから入手しました.それはうまく動作し、Jelly BeanとUbuntuはこのボード上でスムーズに実行されています。
記事全体を表示
卸载 KDS:“打开安装日志文件时出错。” <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 如果您在 Windows 上尝试卸载 KDS 时遇到此错误(我遇到的是 KDS V1.1.0,但也可能适用于其他版本):   “打开安装日志文件时出错。验证指定的日志文件位置是否存在并且可写入。”   经过谷歌搜索后,发现一些安装程序(或卸载程序)可能会导致该错误消息。似乎有些文件/文件夹无法访问。 就我而言,我在安装 KDS 时遇到了这个问题,然后想卸载它,因为我错误地安装了 V1.1.0(而不是最新的 V1.1.1)。 之后我没有重新启动。但当我重新启动时,问题确实消失了。   因此,如果您遇到该问题:请重新启动机器并重试。它对我有用。   卸载愉快 🙂 概述
記事全体を表示
示例 MPC5777M LINFlex UART Echo SW 池 GHS614 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * * 简单的 LINFlex UART 模式发送和接收,无中断(轮询 UART) * TXFIFO 和 RXFIFO 宏用于在缓冲区和 FIFO 模式之间进行选择 * * PIT 通道 0 也用于生成 1 秒中断,其中 PA0 引脚被切换。 * * EVB连接: * * 母板 * J14——SCI_RX关闭 * J13——SCI_TX关闭 * J25——SCI_PWR开启 * * 查看 PC 终端上的结果(19200、8N1、无)。 * ------------------------------------------------------------------------------ * 测试硬件:MPC5777M,MPC57xx主板+MPC5777M_512DS迷你模块 * Maskset:  0N78H * 目标:RAM、内部闪存 * Fsys: 600 MHz PLL1,带 40 MHz 晶振参考, * core2 以 200MHz 的频率由 PPL1 生成 * 终端:19200, 8N1 ******************************************************************************** 概述
記事全体を表示
连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> FreeRTOS 通过计数滴答来跟踪系统中经过的时间。主机 MCU 中可用的定时器之一生成的周期性中断例程内的滴答计数会增加。当 FreeRTOS 运行空闲任务挂钩时,微控制器可以进入低功耗模式。根据低功耗模式,可以禁用一个或多个外围设备,以节省尽可能多的能源。FreeRTOS 无滴答空闲模式允许在空闲期间停止滴答中断。停止滴答中断可使微控制器保持深度省电状态,直到唤醒事件发生。 应用程序需要配置模块(计时器、ADC 等),以便在执行下一个 FreeRTOS 任务之前唤醒微控制器。为此,在执行 vPortSuppressTicksAndSleep(启用无滴答空闲时由 FreeRTOS 调用的函数)期间,MCU 可以保持休眠状态的最大时间量作为输入参数传递,以便正确配置唤醒模块。一旦 MCU 唤醒并且 FreeRTOS 滴答中断重新启动,就必须恢复 MCU 睡眠期间丢失的滴答计数。 在连接软件 FreeRTOS 演示中,无滴答模式默认未启用。在这篇文章中,我们将 展示如何启用它。对于此示例,我们将使用 QN9080x 来演示实现。 低功耗 Freertos 无滴答 无滴答 以下文件中实施了更改: \框架\低功耗\源\QN908XC\PWR.c \框架\低功耗\接口\QN908XC\PWR_Interface.h \freertos\fsl_tickless_generic.h \source\common\ApplMain.c 以下文件已从项目中删除 fsl_tickless_qn_rtc.c PWR.C 和 PWR_Interface.h 此文件中的更改旨在让 QN9080 准备好使用 RTC 计时器唤醒。其他部件,如 MKW41Z,可能会为此目的启用其他模块(如 LPTMR),并且可能不需要更改这些文件。 *** PWR.c *** 添加 RTC 的驱动程序。这是我们将用来唤醒 QN908x 的计时器 /*Tickless: Add RTC driver for tickless support */ #include "fsl_rtc.h"‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 添加局部变量 uint64_t mLpmTotalSleepDuration;        //Tickless uint8_t mPWR_DeepSleepTimeUpdated = 0;  //Tickless: Coexistence with TMR manager‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 添加私有函数 uint32_t PWR_RTCGetMsTimeUntilNextTick (void);         //Tickless void PWR_RTCSetWakeupTimeMs (uint32_t wakeupTimeMs);   //Tickless void PWR_RTCWakeupStart (void);                        //Tickless‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 在 PWR.C 中进行以下更改。所有需要的更改都标记为注释,其中“Start”表示更改的开始位置,“End”表示更改的结束位置 #if (cPWR_UsePowerDownMode && (cPWR_EnableDeepSleepMode_1 || cPWR_EnableDeepSleepMode_2 || cPWR_EnableDeepSleepMode_3 || cPWR_EnableDeepSleepMode_4)) static void PWR_HandleDeepSleepMode_1_2_3_4(void) { #if cPWR_BLE_LL_Enable     uint8_t   power_down_mode = 0xff;     bool_t    enterLowPower = TRUE;     __disable_irq(); /****************START***********************************/     /*Tickless: Configure wakeup timer */     if(mPWR_DeepSleepTimeUpdated){       PWR_RTCSetWakeupTimeMs(mPWR_DeepSleepTimeMs);       mPWR_DeepSleepTimeUpdated = FALSE;        // Coexistence with TMR Manager     }         PWR_RTCWakeupStart(); /*****************END**************************************/     PWRLib_ClearWakeupReason();     //Try to put BLE in deep sleep mode     power_down_mode = BLE_sleep();     if (power_down_mode < kPmPowerDown0)     {         enterLowPower = false; // BLE doesn't allow deep sleep     }     //no else - enterLowPower is already true     if(enterLowPower)     { /****************START**************************/         uint32_t freeRunningRtcPriority; /****************END****************************/         NVIC_ClearPendingIRQ(OSC_INT_LOW_IRQn);         NVIC_EnableIRQ(OSC_INT_LOW_IRQn);         while (SYSCON_SYS_STAT_OSC_EN_MASK & SYSCON->SYS_STAT) //wait for BLE to enter sleep         {             POWER_EnterSleep();         }         NVIC_DisableIRQ(OSC_INT_LOW_IRQn);         if(gpfPWR_LowPowerEnterCb != NULL)         {             gpfPWR_LowPowerEnterCb();         } /* Disable SysTick counter and interrupt */         sysTickCtrl = SysTick->CTRL & (SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_TICKINT_Msk);         SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_TICKINT_Msk);         ICSR |= (1 << 25); // clear PendSysTick bit in ICSR, if set /************************START***********************************/         NVIC_ClearPendingIRQ(RTC_FR_IRQn);         freeRunningRtcPriority = NVIC_GetPriority(RTC_FR_IRQn);         NVIC_SetPriority(RTC_FR_IRQn,0); /***********************END***************************************/         POWER_EnterPowerDown(0); //Nighty night! /************************START**********************************/         NVIC_SetPriority(RTC_FR_IRQn,freeRunningRtcPriority); /************************END************************************/         if(gpfPWR_LowPowerExitCb != NULL)         {             gpfPWR_LowPowerExitCb();         }         /* Restore the state of SysTick */         SysTick->CTRL |= sysTickCtrl;         PWRLib_UpdateWakeupReason();     }     __enable_irq(); #else     PWRLib_ClearWakeupReason(); #endif /* cPWR_BLE_LL_Enable */ } #endif /* (cPWR_UsePowerDownMode && cPWR_EnableDeepSleepMode_1) */ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ void PWR_SetDeepSleepTimeInMs(uint32_t deepSleepTimeMs) { #if (cPWR_UsePowerDownMode)     if(deepSleepTimeMs == 0)     {         return;     }     mPWR_DeepSleepTimeMs = deepSleepTimeMs; /****************START******************/     mPWR_DeepSleepTimeUpdated = TRUE; /****************END*********************/ #else     (void) deepSleepTimeMs; #endif /* (cPWR_UsePowerDownMode) */ }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 在文件末尾添加/替换以下函数定义 /*--------------------------------------------------------------------------- * Name: PWR_GetTotalSleepDurationMS * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ uint32_t PWR_GetTotalSleepDurationMS(void) {     uint32_t time;     uint32_t currentSleepTime;     OSA_InterruptDisable();     currentSleepTime = RTC_GetFreeRunningInterruptThreshold(RTC);     if(currentSleepTime >= mLpmTotalSleepDuration){     time = (currentSleepTime-mLpmTotalSleepDuration)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     else{     time = ((0x100000000-mLpmTotalSleepDuration)+currentSleepTime)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     OSA_InterruptEnable();     return time; } /*--------------------------------------------------------------------------- * Name: PWR_ResetTotalSleepDuration * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ void PWR_ResetTotalSleepDuration(void) {     OSA_InterruptDisable();     mLpmTotalSleepDuration = RTC_GetFreeRunningCount(RTC);     OSA_InterruptEnable(); } /*--------------------------------------------------------------------------- * Name: PWR_RTCGetMsTimeUntilNextTick * Description: - * Parameters: - * Return: Time until next tick in mS *---------------------------------------------------------------------------*/ uint32_t PWR_RTCGetMsTimeUntilNextTick (void) {     uint32_t time;     uint32_t currentRtcCounts, thresholdRtcCounts;     OSA_InterruptDisable();     currentRtcCounts = RTC_GetFreeRunningCount(RTC);     thresholdRtcCounts = RTC_GetFreeRunningResetThreshold(RTC);     if(thresholdRtcCounts > currentRtcCounts){     time = (thresholdRtcCounts-currentRtcCounts)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     else{     time = ((0x100000000-currentRtcCounts)+thresholdRtcCounts)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     OSA_InterruptEnable();     return time; } /*--------------------------------------------------------------------------- * Name: PWR_RTCSetWakeupTimeMs * Description: - * Parameters: wakeupTimeMs: New wakeup time in milliseconds * Return: - *---------------------------------------------------------------------------*/ void PWR_RTCSetWakeupTimeMs (uint32_t wakeupTimeMs){     uint32_t wakeupTimeTicks;     uint32_t thresholdValue;     wakeupTimeTicks = (wakeupTimeMs*CLOCK_GetFreq(kCLOCK_32KClk))/1000;     thresholdValue = RTC_GetFreeRunningCount(RTC);     thresholdValue += wakeupTimeTicks;     RTC_SetFreeRunningInterruptThreshold(RTC, thresholdValue); } /*--------------------------------------------------------------------------- * Name: PWR_RTCWakeupStart * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ void PWR_RTCWakeupStart (void){   if(!(RTC->CNT2_CTRL & RTC_CNT2_CTRL_CNT2_EN_MASK)){     RTC->CNT2_CTRL |= 0x52850000 | RTC_CNT2_CTRL_CNT2_EN_MASK | RTC_CNT2_CTRL_CNT2_WAKEUP_MASK | RTC_CNT2_CTRL_CNT2_INT_EN_MASK;   }   else{     RTC->CNT2_CTRL |= 0x52850000 | RTC_CNT2_CTRL_CNT2_WAKEUP_MASK | RTC_CNT2_CTRL_CNT2_INT_EN_MASK;   } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ *** PWR_接口.h *** 在文件末尾添加以下函数声明 /*--------------------------------------------------------------------------- * Name: PWR_GetTotalSleepDurationMS * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ uint32_t PWR_GetTotalSleepDurationMS(void); /*--------------------------------------------------------------------------- * Name: PWR_ResetTotalSleepDuration * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ void PWR_ResetTotalSleepDuration(void); #ifdef __cplusplus } #endif #endif /* _PWR_INTERFACE_H_ */ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ FSL_TICKLESS_GENERIC 以下更改的目的是让系统做好准备,以恢复低功耗期间错过的滴答声。 在 fsl_tickless_generic.h 中进行以下更改。所有需要的更改都标记为注释,其中“Start”表示更改的开始位置,“End”表示更改的结束位置 /* QN_RTC: The RTC free running is a 32-bit counter. */ #define portMAX_32_BIT_NUMBER (0xffffffffUL) #define portRTC_CLK_HZ (0x8000UL) /* A fiddle factor to estimate the number of SysTick counts that would have occurred while the SysTick counter is stopped during tickless idle calculations. */ #define portMISSED_COUNTS_FACTOR (45UL) /* * The number of SysTick increments that make up one tick period. */ /****************************START**************************/ #if configUSE_TICKLESS_IDLE == 1     static uint32_t ulTimerCountsForOneTick; #endif /* configUSE_TICKLESS_IDLE */ /************************END*********************************/ /* * Setup the timer to generate the tick interrupts. */ void vPortSetupTimerInterrupt(void); #ifdef __cplusplus } #endif #endif /* FSL_TICKLESS_GENERIC_H */ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 应用程序主程序 这是主要的应用程序文件。在这里我们将调用适当的 API 来进入低功耗模式的 MCU 并执行滴答恢复序列。 包含所需的 RTC 和 FreeRTOS 头文件 /*Tickless: Include RTC and FreeRTOS header files */ #include "fsl_rtc.h" #include "fsl_tickless_generic.h" #include "FreeRTOS.h" #include "task.h"‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ QN9080 包含几种低功耗模式。睡眠模式可使大多数模块保持活动状态。断电模式会关闭大多数模块,但允许用户配置一些模块保持活动状态,以便在必要时唤醒 MCU。使用无滴答 FreeRTOS 需要在执行下一个就绪任务之前通过某个计时器唤醒。对于 QN908x,此计时器将是 RTC,它需要 32.768kHz 振荡器保持活动状态。我们将更改连接软件电源库以使用深度睡眠模式 3(QN908x 的断电模式 0),以保持 32.768kHz 振荡器开启。这个改变是在main_task函数中实现的。 #if !defined(MULTICORE_BLACKBOX)         /* BLE Host Stack Init */         if (Ble_Initialize(App_GenericCallback) != gBleSuccess_c)         {             panic(0,0,0,0);             return;         } #endif /* MULTICORE_BLACKBOX */ /*************** Start ****************/ #if (cPWR_UsePowerDownMode)     PWR_ChangeDeepSleepMode(3); #endif /*************** End ****************/     }         /* Call application task */     App_Thread( param ); }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 此外,无滴答 FreeRTOS 需要一个特殊的空闲函数,该函数将 MCU 在需要执行下一个任务之前可以保持休眠状态的 RTOS 滴答数作为输入参数。当启用无滴答模式时,以下更改将禁用连接软件演示中提供的默认空闲功能。 /************************************************************************************ ************************************************************************************* * Private prototypes ************************************************************************************* ************************************************************************************/ #if (cPWR_UsePowerDownMode || gAppUseNvm_d) #if (mAppIdleHook_c)     #define AppIdle_TaskInit()     #define App_Idle_Task() #else #if (!configUSE_TICKLESS_IDLE)     static osaStatus_t AppIdle_TaskInit(void);     static void App_Idle_Task(osaTaskParam_t argument); #endif // configUSE_TICKLESS_IDLE #endif #endif‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ /************************************************************************************ ************************************************************************************* * Private memory declarations ************************************************************************************* ************************************************************************************/ /******************************** Start ******************************/ #if ((cPWR_UsePowerDownMode || gAppUseNvm_d) && !configUSE_TICKLESS_IDLE) /******************************** End ******************************/ #if (!mAppIdleHook_c) OSA_TASK_DEFINE( App_Idle_Task, gAppIdleTaskPriority_c, 1, gAppIdleTaskStackSize_c, FALSE ); osaTaskId_t gAppIdleTaskId = 0; #endif #endif  /* cPWR_UsePowerDownMode */‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ #if !gUseHciTransportDownward_d         pfBLE_SignalFromISR = BLE_SignalFromISRCallback; #endif /* !gUseHciTransportDownward_d */ /**************************** Start ************************/ #if ((cPWR_UsePowerDownMode || gAppUseNvm_d) && !configUSE_TICKLESS_IDLE) /**************************** End ************************/ #if (!mAppIdleHook_c)         AppIdle_TaskInit(); #endif #endif‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ /***************************START**************************/ #if (cPWR_UsePowerDownMode && !configUSE_TICKLESS_IDLE) /******************************END***************************/ static void App_Idle(void) {     PWRLib_WakeupReason_t wakeupReason;     if( PWR_CheckIfDeviceCanGoToSleep() )     {         /* Enter Low Power */         wakeupReason = PWR_EnterLowPower(); #if gFSCI_IncludeLpmCommands_c         /* Send Wake Up indication to FSCI */         FSCI_SendWakeUpIndication(); #endif #if gKBD_KeysCount_c > 0         /* Woke up on Keyboard Press */         if(wakeupReason.Bits.FromKeyBoard)         {             KBD_SwitchPressedOnWakeUp();             PWR_DisallowDeviceToSleep();         } #endif     }     else     {         /* Enter MCU Sleep */         PWR_EnterSleep();     } } #endif /* cPWR_UsePowerDownMode */ #if (mAppIdleHook_c) void vApplicationIdleHook(void) { #if (gAppUseNvm_d)     NvIdle(); #endif /*******************************START****************************/ #if (cPWR_UsePowerDownMode && !configUSE_TICKLESS_IDLE) /*********************************END*******************************/     App_Idle(); #endif } #else /* mAppIdleHook_c */ /******************************* START ****************************/ #if ((cPWR_UsePowerDownMode || gAppUseNvm_d) && !configUSE_TICKLESS_IDLE) /******************************* END ****************************/ static void App_Idle_Task(osaTaskParam_t argument) {     while(1)     {   #if gAppUseNvm_d         NvIdle(); #endif         #if (cPWR_UsePowerDownMode)         App_Idle(); #endif         /* For BareMetal break the while(1) after 1 run */         if (gUseRtos_c == 0)         {             break;         }     } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 一旦默认的空闲功能被禁用,就必须实现特殊的空闲功能。在ApplMain.c的末尾添加以下代码文件。 /*Tickless: Implement Tickless Idle */ #if (cPWR_UsePowerDownMode && configUSE_TICKLESS_IDLE) extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) {     uint32_t time_ms = xExpectedIdleTime * portTICK_PERIOD_MS;     uint32_t tmrMgrExpiryTimeMs;     ulTimerCountsForOneTick = 160000;//VALUE OF THE SYSTICK 10 ms #if (cPWR_UsePowerDownMode)     PWRLib_WakeupReason_t wakeupReason;         //TMR_MGR: Get next timer manager expiry time     tmrMgrExpiryTimeMs = TMR_GetFirstExpireTime(gTmrAllTypes_c);     // TMR_MGR: Update RTC Threshold only if RTOS needs to wakeup earlier     if(time_ms<tmrMgrExpiryTimeMs){       PWR_SetDeepSleepTimeInMs(time_ms);     }         PWR_ResetTotalSleepDuration();     if( PWR_CheckIfDeviceCanGoToSleep() )     {         wakeupReason = PWR_EnterLowPower();                 //Fix: All the tick recovery stuff should only happen if device entered in DSM         xExpectedIdleTime = PWR_GetTotalSleepDurationMS() / portTICK_PERIOD_MS;     // Fix: ticks = time in mS asleep / mS per each tick (portTICK_PERIOD_MS)         /* Restart SysTick so it runs from portNVIC_SYSTICK_LOAD_REG         again, then set portNVIC_SYSTICK_LOAD_REG back to its standard         value. The critical section is used to ensure the tick interrupt         can only execute once in the case that the reload register is near         zero. */         portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL;         portENTER_CRITICAL();         portNVIC_SYSTICK_CTRL_REG |= portNVIC_SYSTICK_ENABLE_BIT;         vTaskStepTick( xExpectedIdleTime );         portNVIC_SYSTICK_LOAD_REG = ulTimerCountsForOneTick - 1UL;         portEXIT_CRITICAL(); #if gKBD_KeysCount_c > 0         /* Woke up on Keyboard Press */         if(wakeupReason.Bits.FromKeyBoard)         {           KBD_SwitchPressedOnWakeUp();           PWR_DisallowDeviceToSleep();         } #endif     }     else     {       /* Enter MCU Sleep */       PWR_EnterSleep();     } #endif /* cPWR_UsePowerDownMode */ } #endif  //cPWR_UsePowerDownMode && configUSE_TICKLESS_IDLE ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 从前面的函数中可知,ulTimerCountsForOneTick的值用于在唤醒后恢复RTOS滴答定时器的计数。该值取决于 FreeRTOSConfig.h 中定义的 RTOS Tick 间隔并使用以下公式计算: SYST_RNR = F_Systick_CLK(赫兹) * T_FreeRTOS_Ticks(毫秒) 其中: F_Systick_CLK(Hz) = AHB 或 SYST_CSR 选择的 32KHz T_FreeRTOS_Ticks(ms) = 滴答计数值。 FreeRTOS配置.h 最后,在 FreeRTOSConfig.h文件中,确保 configUSE_TICKLESS_IDLE 设置为 1 * See http://www.freertos.org/a00110.html. *----------------------------------------------------------*/ #define configUSE_PREEMPTION                    1 #define configUSE_TICKLESS_IDLE                 1 //<--- /***** Start *****/ #define configCPU_CLOCK_HZ                      (SystemCoreClock) #define configTICK_RATE_HZ                      ((TickType_t)100) #define configMAX_PRIORITIES                    (18) #define configMINIMAL_STACK_SIZE                ((unsigned short)90)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 测试无滴答 RTOS 为了测试是否成功添加了无滴答支持,我们实现了一个切换 LED 的示例应用程序。此应用程序配置一个 RTOS 定时器,每 500 毫秒切换一次 LED,并在空闲时间进入 DSM3 中的 MCU。电源分析演示就是为此目的而使用的。 电源分析.c 确保已包含以下头文件 #include "FreeRTOS.h" #include "task.h"‍‍‍‍ 创建一个 RTOS 任务,使 LED 每 500 毫秒闪烁一次。首先声明任务函数、任务ID和任务本身。 void vfnTaskLedBlinkTest(void* param); //New Task Definition OSA_TASK_DEFINE(vfnTaskLedBlinkTest, 1, 1, 500, FALSE ); osaTaskId_t gAppTestTask1Id = 0; // TestTask1 Id‍‍‍‍‍‍ 在BleApp_Init函数中创建新任务 void BleApp_Init(void) {     PWR_AllowDeviceToSleep();     mPowerState = 0;   // Board starts with PD1 enabled     /******************* Start *****************/     gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskLedBlinkTest), NULL); //Task Creation     /*******************  End  *****************/ }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 最后在文件末尾添加任务函数定义。 void vfnTaskLedBlinkTest(void* param) {     uint16_t wTimeValue = 500; //500ms     while(1)     {         LED_BLUE_TOGGLE();         vTaskDelay(pdMS_TO_TICKS(wTimeValue));     } }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 我们可以监控 MCUXpresso IDE ,带有 功率测量工具。有了它,我们可以看到消耗的电流并证明实施情况符合预期。 配置功率测量工具 消耗电流 BLE软件 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 即使在无滴答模式或裸板模式下,电源配置文件也可以达到合理的功耗。 然而,有一个陷阱,需要小心。 如果从电源模式 PD1 恢复,在无滴答空闲任务中,在睡眠前已关闭 32K OSC, PWRLib_LPTMR_Stop将崩溃以操作断电外设。 如果电源模式为 PD0,则 OSC 工作时不会出现该问题,并且在睡眠期间保持通电。 如何修复: 判断从PD1还是PD0恢复。 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 温度传感器示例似乎在无滴答模式下工作。 与电源配置文件示例相比,睡眠消耗略高 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 哪个示例最适合用于测试无滴答 freertos 和低功耗操作? 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi: 最新的 SDK v2.2 已经支持 freertos 的 tickless 功能,需要在app_preinclude.h中启用以下宏 configUSE_TICKLESS_IDLE :为1 以下定义用于计算无滴消逝时间 /* RTC 在 PD1 中不运行,因此禁用 PWR 模块中的 RTC 相关代码 */ #定义 cPWR_EnableLpTmrRunning 1 #定义cPWR_EnablePD0RtcInterrupt 1 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本指南是否可以更新为最新的 SDK?QN9080 的 SDK 中似乎实现了对无滴答模式的部分支持?
記事全体を表示
在 wait_event_interruptible(vt_event_waitqueue, vw->done) 中无限期休眠; <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 一位i.MX50客户最近遇到了这样的内核错误。Android UI 没有响应,因为暂停工作队列被阻塞: 暂停 pm_suspend 进入状态 suspend_prepare / suspend_finish pm_prepare_console / pm_restore_console               vt_move_to_console vt_waitactive                   vt_event_wait wait_event_interruptible 确认同样的错误也可能发生在运行linux 3.0.35 的 imx6SL 上。 例如通过 echo standalone/ mem > /sys/power/state 需要经过一千多次暂停/恢复循环才能重现该问题。 自Linux 3.6 以来,该错误修复已被合并: commit a7b12929be6cc55eab2dac3330fa9f5984e12dda Android i.MX2x i.MX50 i.MX51 i.MX53 i.MX6_全部 Linux
記事全体を表示
MPC5744P DCFコンフィギュレータ 詳細な説明:                 この設定ツールは、MPC5744PデバイスのDCFレコードの計算を簡素化します。                 簡単なガイドラインについては、 HowToUse シートを見てから、 DCF シートで作業してください                 メモ: - マクロを有効にする必要があります。         BR, Petr
記事全体を表示
カスタムボードMCUXpresso SDKの作成方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> この記事では、カスタムボードMCUXpresso SDKの作成方法と使用方法を紹介しており、主に次の3つの部分で構成されています。 パート 1: ボード サポート構成 (.mex) の生成 パート 2: Board SDK ウィザードを使用してカスタム ボード SDK を作成する パート3。カスタム SDK を使用して新しいプロジェクトを作成する   要件: MCUXpresso IDE v11.1.1、LPC845、LPC845-BRKボード用のMCUXpresso SDK。 この方法は、MCUXpresso SDKでサポートするすべてのNXP MCUで機能します。 詳細な手順については、添付資料を参照してください。 ありがとうございます! 全般 LPC51Uxx LPC546xx LPC54xxx LPC55xx LPC800
記事全体を表示
Ubuntu 14.04 Trusty Tahr で i.MX 6 シリーズ LTIB を使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview このドキュメントでは、Ubuntu 14.04 Trusty Tahr ホストで i.MX 6 シリーズ LTIB を構築するためのソリューションをいくつか紹介します。 Virtualbox 仮想マシンは、ビルド ホストに使用される Ubuntu コンピューター用に作成されました。   Linux Target Image Builder (LTIB) は、イメージ (ブートローダー u-boot、Linux uImage、およびルート ファイル システム) の作成に使用される perl スクリプトです。ここに示すビルド例は、i.MX 6Q および最小ルート ファイル システム用です。   ソフトウェアバージョン L3.0.35_4.1.0_ER_ソース_BSP L3.0.35 : Linux version 3.0.35 4.1.0: フリースケールのリリース番号 ER_SOURCE_BSP:エンジニアリングリリースソースボードサポートパッケージ ファイルのダウンロードURL: L3.0.35_4.1.0_130816_source.tar.gz。これには、freescale.com での無料アカウント登録が必要です。 md5sum L3.0.35_4.1.0_130816_source.tar.gz dec08bb266134b94af0f54356e2e9de9  L3.0.35_4.1.0_130816_source.tar.gz L3.0.35_4.1.0_docs.tar.gz ドキュメントバンドル。 ファイルダウンロードURL: L3.0.35_4.1.0_docs.tar.gz md5sum L3.0.35_4.1.0_docs.tar.gz 85f122c72735f3d162a99ae42554e886  L3.0.35_4.1.0_docs.tar.gz Ubuntu 14.04 LTS Trusty Tahr LTS:長期サポート 64ビット版 ファイルダウンロードURL: http://www.ubuntu.com/download/desktop md5sum ubuntu-14.04-desktop-amd64.iso dccff28314d9ae4ed262cfc6f35e5153  ubuntu-14.04-desktop-amd64.iso Virtualbox バージョン 4.3.10 ファイルのダウンロードURL: Oracle VM VirtualBox マシンのセットアップ 4 CPUの 4GB RAM USB 3.0接続ドライブの64GBハードディスク ホストコンピュータ Dell M4600, 8GB RAM,  8 CPU Ubuntu Linux 12.04.02 LTS   Ubuntuホスト14.04 ホストパッケージ LTIB のビルド要件を満たすには、さまざまなパッケージが必要です。 L3.0.35_4.1.0_docs.tar.gzのダウンロードにある「Setting_Up_LTIB_host.pdf」のドキュメントを参照してください。 インストールされたすべてのパッケージを示すtrustyPkgs.txt添付ファイルについては、以下を参照してください。これは、 コマンド: dpkg --list   ホストでコマンド "dpkg --list" を実行し、お気に入りの差分ツールを使用してtrustyPkgs.txtと比較できます。(例、meld、diff)。不足しているパッケージは、お気に入りのパッケージマネージャーを使用して追加できます。たとえば、u-boot-tools パッケージにある mkimage をインストールするには、sudo apt-get install u-boot-tools を実行します。   ビルド LTIBの ホストパッケージ M4 故障 パッケージ m4 のビルドに失敗します。エラーメッセージの貼り付け:   gcc -std=gnu99  -I.     -g -O2 -MT clean-temp.o -MD -MP -MF .deps/clean-temp.Tpo -c -o clean-temp.o clean-temp.c clean-temp.h:22:0からインクルードされたファイルでは、 clean-temp.c:23 より: ./stdio.h:477:1:エラー:ここで 'gets'が宣言されていません(関数ではありません) make[3]: *** [clean-temp.o]エラー 1 make [3]:ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/m4-1.4.16/lib' を離れます make[2]: *** [all] エラー 2 make [ 2 ] : ディレクトリ '/opt/freescale / ltib / usr / src / rpm / BUILD/m4-1.4.16 / lib' を残します   解決策 m4 パッケージを新しいバージョンに置き換えてください。LTIB にバンドルされている m4 パッケージはバージョン 1.4.16 です。新しいバージョン1.4.17が利用可能で、ビルドの失敗はありません。 File download URL: http://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz md5 ファイルを作成します。           md5sum m4-1.4.17.tar.gz > m4-1.4.17.tar.gz.md5 両方のファイルを /opt/freescale/pkgs に移動します。このディレクトリでは、ltib がパッケージを検索します。           mv m4* /opt/freescale/pkgs バージョンを指定する m4.spec ファイルを編集します cd /dist/lfs5.1/m4/ お好みのエディタを使用してm4.specを編集します。5 行目は、16 から 17 に変更するバージョン番号です。   翻訳元: 1 %define pfx /opt/freescale/rootfs/%{_target_cpu} 2 3 まとめ : GNU マクロプロセッサ 4 名前 : m4 5 バージョン : 1.4.16 6 リリース : 1 7 ライセンス : GPL   更新: 1 %define pfx /opt/freescale/rootfs/%{_target_cpu} 2 3 まとめ : GNU マクロプロセッサ 4 名前 : m4 5 バージョン : 1.4.17 6 リリース : 1 7 ライセンス : GPL       ビジーボックス   故障   /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: /lib/libc.so.6 が見つかりません /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: /usr/lib/libc_nonshared.a が見つかりません /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: /lib/ld-linux.so.3 が見つかりません collect2: ld が 1 つの終了ステータスを返しました make: *** [busybox_unstripped] エラー 1 エラー: /home/user/imx6/ltib/tmp/rpm-tmp.60711 (%build) からの終了ステータスが正しくありません     RPMビルドエラー: /home/user/imx6/ltib/tmp/rpm-tmp.60711 (%build) からの終了ステータスが正しくありません busybox のビルド時間: 93 秒   busybox の構築に失敗しました   ソリューション:   ltib/dist/lfs-5.1/base_libs/base_libs.spec に移動し、次の行を見つけてください。 # テキスト検索ファイルから絶対パスを削除する (存在する場合) perl -w -e ' @ARGV = grep { 'file $_' =~ m,ASCII C プログラム テキスト, } @ARGV; exit(0) @ARGVない限り; 最後の 2 つ ("@ARGV" と "exit(0)" で始まる行) を削除します   # 文字を追加すると、299 行目と 300 行目が削除されます 297 # テキスト検索ファイルから絶対パスを削除する (存在する場合) 298 perl -w -e ' 299 #@ARGV = grep { 'file $_' =~ m,ASCII C プログラム テキスト, } @ARGV; 300 #exit(0) @ARGVない限り; 301$^I = ".bak";     成功 ビルドが完了すると、u-boot.bin と uImage が /rootfs/boot にあります   [user@trusty ltib]$ tree rootfs/boot rootfs/boot ├── bootable_kernel -> uImage ├── linux.config ├── System.map ├── Uブーツ ├── u-boot.bin ├── uImage ├── vmlinux └── zImage 元の添付ファイルは次の場所に移動しました trustyPkgs.txt.zip 元の添付ファイルは次の場所に移動しました lkc-1.4.tar.gz 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 「ubuntu-ltib-patch.tgz」を参照してください。IMX280 ./ltib ERRに付属  日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私は自分のプライベートローカルマシンで/opt/freescale/pkgsをチェックし、以前に取得したすべてのlkc*ダウンロードを添付しています。(lkc-1.4.tar.gz、添付ファイルについては、このディスカッションのトップの最初のエントリを参照してください)。 この記事を書いている時点では、最新のFreescale Linux BSPは http://www.freescale.com/imx6tools で入手できます。これらは現在、LTIBに代わるYocto Projectベースです。LTIB BSP は Freescale によって更新されなくなったため (ソフトウェア アップデート、新しいカーネルなど)、Yocto Project BSP を使用することをお勧めします。 > また、imx_usb_loaderに関連する別の質問がありますが、imx_usb_loaderは u-boot のロードのためだけなのか、それとも system.img の >flashing にも使用できるのかということです。 u-bootのみ。 imx_usb_loaderに関する質問については、さまざまなトピックの質問に対して新しいコミュニティ投稿を開始するのが最善です。そして実際、 http://community.freescale.com を検索すると、他の人がこれについて尋ねていることがわかります。例として、 https://community.freescale.com/docs/DOC-94117アプリのソースコードを検査できる場所。 -Curtis 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 私はimx6用のLTIBを構築するためのあなたの手順に従いました、そしてそれはいくつかのパッケージ(m4、bison、automake、autoconfなど)が指定されたURLから欠落するまで正常にインストールされていました http://bitshrine.org/gpp/ 。したがって、これらのパッケージを個別にダウンロードし、Curtisが述べたようにビルドに含めました。 " /opt/freescale/pkgs は、linux-2.6.35.3-imx_12.02.00.bz2 と md5 ファイルを見つけることができれば、それを置く場所です。残念ながら、bitshrine.org がダウンロードするパッケージを提供できないことがあります。パッケージをダウンロードできる別のサイトを知りません。"(2014年8月) Curtisと同じ行で、「 パッケージをダウンロードするための代替サイトを知らない」 他のサイトから他のパッケージをダウンロードしたが、lkcのsrcを見つけることができなかったため、現在、すべてのパッケージをダウンロードできる代替サイトや「lkc」パッケージをダウンロードするためのリンクはありますか? そして、私のインストールは以下のメッセージで停止します 処理:lkc ================= ビルドパスが取得された理由:事前に構築されたrpmがない、 ネットワーク接続のテスト OK GPPです。 GPP から lkc-1.4-lib.patch.md5 を試してみてください http://bitshrine.org/gpp//lkc-1.4-lib.patch.md5: 2015-10-30 21:51:15 エラー 404: 見つかりません。 GPP から lkc-1.4-lib.patch を試してみてください http://bitshrine.org/gpp//lkc-1.4-lib.patch: 2015-10-30 21:51:15 エラー 404: 見つかりません。 取得できません: ./ltib 行 802 の lkc-1.4-lib.patch ./ltib 行 1392 で死亡。 トレースバック: メイン::build_host_rpms:1392 メイン::host_checks:1447 メイン:554 また、imx_usb_loaderに関連する別の質問がありますが、imx_usb_loaderはu-bootのロードのためだけなのか、それともsystem.imgのフラッシュにも使用できるのかということです。 よろしくお願いします。 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, あなたは言いました。このビルドから生成されたuImageは、デモイメージで利用可能なものとは異なる」と述べている。 デモ イメージとその後に生成される uImage とのバイト比較を検討する場合、埋め込まれた日付/タイム スタンプの uImage に違いがあることが保証されます。 フリースケールの一般提供 (GA) リリースには、そのリリースを構成する特定のバージョンのソフトウェア・パッケージが含まれています。GAリリースにバンドルされているLinuxカーネルソースから作成されたuImageのパッチについて質問されました。 Freescale i.MX Linuxソース・ベースはGITリポジトリから入手でき、お気に入りのWebブラウザである「Freescale i.MX Linux Tree<http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/>またはGITの「クローン」機能を利用してローカルにコピーを作成できます。 $ git clone git://git.freescale.com/imx/linux-2.6-imx.git. 注: リポジトリ名は linux-2.6-imx.git です。ただし、すべての Linux GA リリース、3.0、3.10 などが含まれています。 現在の Web ビューのスナップショットを次に示します。 フリースケールがLinux GAリリースを発行すると、コードのスナップショットにGIT タグ が適用されます。Linux の命名規則: rel_imx_3.0.35_4.1.0 ================== rel_imx – リリースを示します 3.0.35–Linuxカーネルバージョン 4.1.0– フリースケール版 GIT ブランチ ツリーはパッチに使用されます。変更が見つかり、リリースに必要であると判断されると、GIT コミットがブランチにプッシュされます。Linux の命名規則: imx_3.0.35_4.1.0 ============= imx – imx のみに注目し、rel_imxには注意しません。 3.0.35–Linuxカーネルバージョン 4.1.0– フリースケール版 各パッチコミットでは、ブランチ名は常に最新のコミットで見つかります。 Webビューを見ると、ブランチ名とタグリリース名が表示されます。ここに要約されたビューを表示するために、いくつかのコミットを削除しました。 上の図から、黄色のボックス (rel_imx_3.0.35_4.1.0) は、ボード サポート パッケージ (BSP) リリースにあるものと一致するコミット ポイントです。緑色のボックス imx_3.0.35_4.1.0 は、このリリースで使用可能な最新のパッチです。 BSP リリースのブランチで使用可能なすべてのパッチを適用することをお勧めします。 gitを使用すると、チェリーピックオプションを使用し、追加情報が必要な場合はオンラインでチュートリアルを検索できます。 git チェリーピック -Curtis 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Curtis, あなたの返信をありがとう、そしてそれは役に立ちました。 現在、このビルドから生成されたuImageがデモイメージで利用可能なものとは異なるという別の問題に直面しています。 したがって、デモ画像で利用可能な他の機能を追加するには、パッチを適用する必要がありますか。 それらのパッチを共有できますか。 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 選択したプロファイル、mfgファームウェアが機能しない理由です-最小プロファイルに変更します。 mfg oneは、Windows上で動作し、ボードをプログラムする方法を提供する製造ツールをサポートしています。興味がある場合は、ダウンロードするためのリンクの freescale.com/imx6tools<>を参照してください。 誠に カーティス 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Curtis, 上記の設定を使用してu-boot.binとuImageを生成することができました。 ただし、取得された u-boot は、 i.MX 6 Q/D/DL/S L3.0.35_4.1.0 GA リリース で言及されているビルド済みのデモイメージで利用可能なものとは異なります。 i.MX6Q Sabre-SDボードを使用しており、メニュー構成で次の設定を選択しました。 1、フリースケール i.MX リファレンスボード 2、imx6qとしてのプラットフォームタイプ 3、mfgファームウェアプロファイルのパッケージプロファイル 4、「U-Boot用のボードを選択してください」を「mx6q_sabresd」として選択します メニュー構成で他に何も変更していませんが、Sabre-SDボードでuImageが正常に動作している間、ubootイメージは機能しません。 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello Todd, texinfoの失敗を再現しようとしましたが、texinfoパッケージ全体がすべてのltibステップで正しく機能しました。 Ubuntuホストマシン: $ lsb_release -a LSB モジュールは利用できません。 Distributor ID:    Ubuntu Description:    Ubuntu 14.04.1 LTS リリース:14.04 コードネーム:trusty ダウンロードしたL3.0.35_4.1.0_130816_source.tar.gz、最小ルートファイルシステムをインストールして構築しました。次に、特にtexinfoパッケージで作業しました。 ./ltib -p texinfo -m 準備 ./ltib -p texinfo -m scbuild ./ltib -p texinfo -m scinstall ./ltib -p texinfo -m scdeploy これらの ltib の各ステップは正常に完了しました。 あなたが投稿したエラー状態から、「all」ターゲットが rpm/BUILD/texinfo-4.8/tools/Makefile に見つかりません。 このMakefileを確認したところ、244行目に「all」ターゲットが見つかりました-以下は「all」の前後の行番号の貼り付けです。 239 # make distcheck 中に TEXINFO_MAINT が設定されている場合。この場合、 240 # info/ で生成された単純な doc 関連ファイルが distcleancheck を失敗させる。 241 distcleancheck_listfiles = \ 242 find -type f -exec sh -c 'test -f $(srcdir)/{} ||エコー {}' ';' 243     244 all: config.h 245 $(MAKE) $(AM_MAKEFLAGS) 全再帰的 246 247 .サフィックス: 午前248時--リフレッシュ: tools/Makefile は ./ltib から生成されます。-m scbuild ステップを実行します。 私はあなたの失敗シナリオを再現することができないので、ここに提案があります: 1.あなたはccacheについて言及し、おそらくキャッシュされた以前の結果をクリーンアップします。ccache -C コマンドはキャッシュをクリーンアップし、texinfo パッケージだけをビルドします。 $ ccache -C $ rm -f rpm/BUILD/texinfo-4.8 $ ./ltib-m prep -p texinfo $ ./ltib-m scbuild -p テクスイン 2. すべてのホストパッケージがインストールされていることを再確認します - このスレッドの最初の投稿の「ホストパッケージ」セクションを参照してください。 3. 2014/11/28 - Freescale の新しい BSP ビルド オファリングは Yocto Project に基づいているため、LTIB ベースの BSP の代わりにこれを試すことができます。 リンクについては、http://www.freescale.com/imx6tools を参照してください。この記事の執筆時点での最新の一般提供 (GA) は 3.10.17 です。これは、LTIB 3.0.35 よりも新しい Linux カーネル 3.10.17 であり、更新された u-boot とルート ファイル システムです。 がんばって -Curtis 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 同じバージョンの Ubuntu 14.04 64 ビット環境で、同じバージョンの LTIB のビルドを実行しようとしています。m4を乗り越えましたが、texinfo-4.8でビルドの失敗は発生していませんパッケージ: config.status: po/POTFILES の作成 config.status: po/Makefile の作成 + 作る 全再帰的にする make[1]: ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.8' に入ります すべてのツールを作る make [2]:ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.8/tools'に入ります make[2]: *** ターゲットを 'all' にするルールはありません。ストップ8 make [2]:ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.8/tools'を離れます make[1]: *** [all-recursive] エラー 1 make [1]: ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.9' を離れます make: *** [all] エラー 2 エラー: /home/toddh/Q7120/LTIB/ltib/tmp/rpm-tmp.9064 (%build) からの終了ステータスが正しくありません RPMビルドエラー: /home/toddh/Q7120/LTIB/ltib/tmp/rpm-tmp.9064 (%build) からの終了ステータスが正しくありません texinfo のビルド時間: 17 秒 texinfo の構築に失敗しました ./ltib 行 1392 で死亡。 最新バージョンのキャッシュがインストールされています。 texinfo-4.9 でもパッチを適用してみましたinto/opt/freescale別のスレッドごとに実行されますが、それでも同じビルドエラーが発生します。誰かがこのエラーで私たちを助けることができますか? ありがとうございます トッドH 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 誰かがこれらのファイルを持っていますか: linux-2.6.35.3-imx_12.02.00.bz2.md5 linux-2.6.35.3-imx_12.02.00.bz2 bitshrineがそれらをまったく持たないことに決めたようで、私はそれらの代わりを見つけることができません。 別の方法として、以前のバージョンに戻すことはできますか、それともそれらが存在しなくなった場合は、yuctoメソッドに移行する必要がありますか? ありがとうございます Todd 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Curtis, あなたの推薦をありがとう! 私はimx233ボードのQTを構築しようとしています! よろしくお願いいたします。 ピグエン 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちはファイ、 Linux Target Image Builder (LTIB) はパッケージプールを定義し ( LTIB : LtibFaq を参照)、/opt/freescale/pkgs は linux-2.6.35.3-imx_12.02.00.bz2 と md5 ファイルがあればそれを置く場所です。残念ながら、bitshrine.org がダウンロードするパッケージを提供できない場合があります。パッケージをダウンロードできる別のサイトを知りません。 imx23evk では、LTIB BSP の代わりに Yocto Project ベースの FSL Community BSP を使用することもできます 。imx23 は、LTIB のものよりも新しい Linux カーネルとブートローダ、U-Boot をサポートしています。 開始方法については、リリースノートの http://freescale.github.io を参照してください。 ありがとうございます -Curtis 日時:ホストUbuntu 14.04 Trusty Tahrで i.MX 6シリーズLTIBを使用する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi CurtisWald, あなたのトピックは私にとって非常に役に立ちます!ありがとうございました 私はimx233のためにubuntu 14.04でLTIBをビルドしました。 問題があります: -------------------------------------------------------------------------------------------------------------------------- プロセッシング・プラットフォーム: フリースケールiMX233/stmp3780ベース・ボード ============================================================= using config/platform/imx/.config 処理:fake-provides =========================== 処理中: u-boot-v2009.08 ============================= Processing: kernel-2.6.35 =========================== ビルドパスが取得された理由:事前に構築されたrpmがない、 ネットワーク接続のテスト OK GPPです。 GPP から linux-2.6.35.3-imx_12.02.00.bz2.md5 を試してみてください。 http://bitshrine.org/gpp/linux-2.6.35.3-imx_12.02.00.bz2.md5: 16:12:20 エラー 404: 見つかりません。 GPP から linux-2.6.35.3-imx_12.02.00.bz2 を試してみてください http://bitshrine.org/gpp/linux-2.6.35.3-imx_12.02.00.bz2: 16:12:21 エラー 404: 見つかりません。 取得できません: linux-2.6.35.3-imx_12.02.00.bz2 at ./ltib line 802. f_buildrpms() がエラーを返し、終了しました トレースバック: メイン:572 開始: Mon Aug 4 16:12:18 2014 終了: 2014年8月4日(月) 16:12:21 経過時間: 3秒 次のパッケージはビルドに失敗しました。 kernel-2.6.35 ビルドに失敗しました エラーまたは割り込みで終了 ------------------------------------------------------------------------------------------------------------------------------------ リンクが切れてしまったので、次にどうしたらいいのかわかりませんか? 手伝ってくれませんか? これらのファイルを別のソースからダウンロードする必要がありますか?しかし、LTIBにリンクする方法がわかりません。 ありがとうございます ピグエン
記事全体を表示
双模式企业微微小区基站解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 演示所有者Jeff Steinheider   通过LTE传输视频流+WCDMA手机之间的电话在相同的BSC9132设备上转接。 观看此双模企业微蜂窝如何通过 NXP 的多模 LTE 和 WCDMA 第 1 层软件展示QorIQ 处理平台Qonverge BSC9132 SoC 的功能。     特性 LTE 和 WCDMA 同时运行 为企业和办公环境中的覆盖和容量问题提供解决方案 特色恩智浦产品 产品 链接 QorIQ Qonverge®平台:基带处理器 QorIQ Qonverge ®平台:基带处理器 | NXP QorIQ ® Qonverge BSC9132 双核处理器和双核 DSP QorIQ® Qonverge B9132 | NXP  VortiQa L1基带软件 https://www.nxp.com/design/software/development-software/vortiqa-software-for-networking/vortiqa-layer-1-baseband-software:VORTIQA_L1SW_SC?&tid=SWnT 面向微微小区开发的QorIQ ® Qonverge BSC9132 QDS https://www.nxp.com/design/qoriq-developer-resources/qoriq-qonverge-bsc9132-qds-for-picocell-base-station-development:BSC9132QDS?&parentCode=BSC9132 框图   通信基础设施
記事全体を表示