Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
TWR-K21D50M v4.0.2用低消費電力MQXパッチ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 改訂0.1 - 2013/8/28 これは、以前のパッチTWR-K21D50M低電力パッチのアップデートです MQX v4.0.2 では、以前のパッチで報告された問題のほとんどが BSP で修正されています。しかし、このボードの低電力の例は、SPIペリフェラルとの競合のためにLLSモードに入ることができません。この例を修正するために必要なのは、1つのファイルにわずかな編集だけです。 User_config.h MQX_ENABLE_LOW_POWER マクロが有効になりました。LPM ドライバーと低電力の例に必要です。 SPI0 ペリフェラルを無効にしてから、ストップ モードに入る 低電力の例は、停止モードの開始を中止し、停止モードに入らなかったことです。この問題は、SPI0 ペリフェラルが LLS モードへの入力を妨げていることが原因で発生していました。lpm_smc.c の _lpm_set_cpu_operation_mode() を変更して、停止モードに入る前に SPI0 クロック ゲートを無効化し、ウェイクアップ後に再度有効化するようにしました。SPI0ペリフェラルがストップモードで必要な場合は、SPIドライバーをLPMドライバーに登録して、LPMが動作モードを停止モードに変更したときに適切に構成します。詳細については、LPM のドキュメントを参照してください。ファイル \Freescale_MQX_4_0_2\mqx\source\io\lpm\lpm_smc.c を添付のファイルに置き換えます。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 改訂0.1 - 2013/8/28 これは、以前のパッチTWR-K21D50M低電力パッチのアップデートです MQX v4.0.2 では、以前のパッチで報告された問題のほとんどが BSP で修正されています。しかし、このボードの低電力の例は、SPIペリフェラルとの競合のためにLLSモードに入ることができません。この例を修正するために必要なのは、1つのファイルにわずかな編集だけです。 User_config.h MQX_ENABLE_LOW_POWER マクロが有効になりました。LPM ドライバーと低電力の例に必要です。 SPI0 ペリフェラルを無効にしてから、ストップ モードに入る 低電力の例は、停止モードの開始を中止し、停止モードに入らなかったことです。この問題は、SPI0 ペリフェラルが LLS モードへの入力を妨げていることが原因で発生していました。lpm_smc.c の _lpm_set_cpu_operation_mode() を変更して、停止モードに入る前に SPI0 クロック ゲートを無効化し、ウェイクアップ後に再度有効化するようにしました。SPI0ペリフェラルがストップモードで必要な場合は、SPIドライバーをLPMドライバーに登録して、LPMが動作モードを停止モードに変更したときに適切に構成します。詳細については、LPM のドキュメントを参照してください。ファイル \Freescale_MQX_4_0_2\mqx\source\io\lpm\lpm_smc.c を添付のファイルに置き換えます。
查看全文
检查 Qspi_Ip_Example_S32K344 中的 WEL 位失败 示例的版本信息如下: * Autosar版本:4.7.0 * Autosar 修订版:ASR_REL_4_7_REV_0000 * Autosar Conf.Variant: * 软件版本:3.0.0 *构建版本:S32K3_RTD_3_0_0_D2303_ASR_REL_4_7_REV_0000_20230331 我使用的串行Flash是W25Q16。我已将数据表作为附件附加。 我在下面的 ConfigTools 表中配置了 Mem LUT Operand: 写入使能为 06h,读取状态寄存器-1 为 05h 但是当我运行示例时,在 main.c 中运行 Qspi_Ip_EraseBlock() 它运行到 Qspi_Ip_WriteEnable(), /*发送WREN命令*/之后,当/*检查WEL位*/时,WEL预期为1,但读到的却是0,因此程序运行到Mem_ExFls_ExampleAssert()。 是否存在任何错误的配置或者我是否错过了一些重要的配置?期待您的回复。谢谢! 回复:检查 Qspi_Ip_Example_S32K344 中的 WEL 位失败 我漏掉了读取状态寄存器-1序列中的READ指令。问题已经解决了。 回复:检查 Qspi_Ip_Example_S32K344 中的 WEL 位失败 我注意到寄存器 QUADSPI->RBDR[0] 的值始终保持为 0x00000000。 回复:检查 Qspi_Ip_Example_S32K344 中的 WEL 位失败 Hi, 我并没有在源代码中将该引脚驱动为逻辑 0。 我已经通过示波器测量了这个引脚,它在整个过程中保持逻辑 1。 我也尝试过不连接这个引脚,但仍然遇到同样的问题。 此外,我还尝试了另一个命令“读取 JEDEC ID”。以下是 Flash 用户手册中的序列:     发送读取命令后,我可以测量通过DO有数据输出。 但运行以下 API 后,ReadData 中的所有数据都保持为 0: qspiStatus = Qspi_Ip_RunReadCommand(instance, 21, 0U, ReadData, NULL_PTR, 3U);//读取JEDEC ID   21 是 ReadDeviceId 的 LUT 索引: /* 21: 读取设备ID */ (Qspi_Ip_InstrOpType)((Qspi_Ip_InstrOpType)QSPI_IP_LUT_INSTR_CMD | (Qspi_Ip_InstrOpType)QSPI_IP_LUT_PADS_1 | (Qspi_Ip_InstrOpType)159U), (Qspi_Ip_InstrOpType)(QSPI_IP_LUT_INSTR_STOP) 看起来 Flash 可以响应命令,但 S32K344 无法正确读取。 我不确定问题出在哪里。 回复:检查 Qspi_Ip_Example_S32K344 中的 WEL 位失败 如果是的话,您是否将该引脚驱动为逻辑 0? 回复:检查 Qspi_Ip_Example_S32K344 中的 WEL 位失败 Hi, 感谢你的回复! Flash的/WP(IO2)引脚目前连接到S32K344的PTD12。 回复:检查 Qspi_Ip_Example_S32K344 中的 WEL 位失败 您的 /WP 引脚连接是什么?
查看全文
问答:如何使 16 位 DDR + OpenGL/OpenVG 在 imx6 solo 上工作? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Q: OpenGL/OpenVG 可以在我们任何具有 16 位 DDR 总线的主板上运行吗? 这是在具有 16 位 DDR 总线的 imx6 solo 板上运行一些 GPU SDK 教程时的 GPU 状态转储: 挂载 rootfs VFS:在设备 0:12 上以只读方式挂载根(nfs 文件系统)。 释放初始内存:156K 启动 init GPU[0]: ************************** *** GPU 状态转储 *** **************************   axi      = 0x000000B1 空闲 = 0x7FFFFF86 FE 不空闲 SH没闲着 PA不闲着 SE 不闲着 RA 不闲着 DMA 似乎卡在了这个地址: 0x1882F230 dma低 = 0x08010583 dmaHigh = 0x80003400 dmaState = 0x00000904 命令状态 = 4 (PAR_ADR1_ST) 命令 DMA 状态 = 1 (CMD_START_ST) 命令获取状态 = 2 (FET_VALID_ST) DMA 请求状态 = 0 (REQ_IDLE_ST) 校准状态 = 0 (CAL_IDLE_ST) VE请求状态 = 0(VER_IDLE_ST) RA调试寄存器: [0x00] 0x0108C378 [0x01] 0x0042FB12 [0x02] 0x0042FB11 [0x03] 0x0000022C     [0x04] 0x10220033 [0x05] 0x0885C800 [0x06] 0xC054CBFE     [0x07] 0x68100000     [0x08] 0x00000000     [0x09] 0x00000000 [0x0A] 0x00000000 [0x0B] 0x00000000 [0x0C] 0x12344321     [0x0D] 0x12344321     [0x0E] 0x12344321 [0x0F] 0x12344321 签名 = 0x12344321(1 次读取尝试) TX调试寄存器:     [0x00] 0x00000000     [0x01] 0x00000000     [0x02] 0x00000000     [0x03] 0x00000000     [0x04] 0x00000000     [0x05] 0x00000000     [0x06] 0x00000000     [0x07] 0x00000000     [0x08] 0x00000000     [0x09] 0x00000000 [0x0A] 0x00000000 [0x0B] 0x00000000 [0x0C] 0x00000000     [0x0D] 0x00000000     [0x0E] 0x00000000 [0x0F] 0x00000000 无法获取签名(读取 0x00000000)。 FE调试寄存器: [0x00] 0x1882F450     [0x01] 0x08010594     [0x02] 0x00000001     [0x03] 0x00000256     [0x04] 0x00080049     [0x05] 0x0000000D     [0x06] 0x00009571     [0x07] 0x00007445     [0x08] 0x00000004     [0x09] 0x00000000 [0x0A] 0x00000000 [0x0B] 0x00000000 [0x0C] 0x00000000     [0x0D] 0xA3105D67 [0x0E] 0x000000D0 [0x0F] 0xBABEF00D 签名 = 0xBABEF00D(1 次读取尝试)   PE debug registers: [0x00] 0x0108C369     [0x01] 0x00000000 [0x02] 0x0108C369     [0x03] 0x00000000     [0x04] 0xA0000000     [0x05] 0xABC00000 [0x06] 0xBC000000     [0x07] 0xCDE00000 [0x08] 0xD04045C0 [0x09] 0x204045C0 [0x0A] 0x0D863084 [0x0B] 0x00000000 [0x0C] 0xBABEF00D [0x0D] 0xBABEF00D [0x0E] 0xBABEF00D [0x0F] 0xBABEF00D 签名 = 0xBABEF00D(1 次读取尝试)   DE debug registers:     [0x00] 0x00000000     [0x01] 0x00000000     [0x02] 0x00000000     [0x03] 0x00000000     [0x04] 0x00000000     [0x05] 0x00000000     [0x06] 0x00000000     [0x07] 0x00000000     [0x08] 0x00000000     [0x09] 0x00000000 [0x0A] 0x00000000 [0x0B] 0x00000000 [0x0C] 0x00000000     [0x0D] 0x00000000     [0x0E] 0x00000000 [0x0F] 0x00000000 无法获取签名(读取 0x00000000)。 SH调试寄存器:     [0x00] 0x0049AB4C [0x01] 0x0000000B     [0x02] 0x00000411 [0x03] 0x00020A95     [0x04] 0x00000000 [0x05] 0x000F024E [0x06] 0x000F424C [0x07] 0x010BEC30 [0x08] 0x0108C368 [0x09] 0x000020DF [0x0A] 0x00000693 [0x0B] 0x00000000 [0x0C] 0x00000000     [0x0D] 0x00000000     [0x0E] 0x00000000 [0x0F] 0xDEADBEEF 签名 = 0xDEADBEEF(1 次读取尝试) PA调试寄存器: [0x00] 0x640006FE     [0x01] 0x64000000     [0x02] 0x00000810     [0x03] 0x00000690     [0x04] 0x00000230     [0x05] 0x0000022D     [0x06] 0x00000000     [0x07] 0x00000000     [0x08] 0x00000003 [0x09] 0x0000AAAA [0x0A] 0x0000AAAA [0x0B] 0x0000AAAA [0x0C] 0x0000AAAA [0x0D] 0x0000AAAA [0x0E] 0x0000AAAA [0x0F] 0x0000AAAA 签名 = 0x0000AAAA(1 次读取尝试)   SE debug registers:     [0x00] 0x00000000     [0x01] 0x00000000     [0x02] 0x00000000     [0x03] 0x00000000     [0x04] 0x00000000     [0x05] 0x00000000     [0x06] 0x00000000     [0x07] 0x00000000     [0x08] 0x00000000     [0x09] 0x00000000 [0x0A] 0x00000000 [0x0B] 0x00000000 [0x0C] 0x00000000     [0x0D] 0x00000000     [0x0E] 0x00000000 [0x0F] 0x00000000 无法获取签名(读取 0x00000000)。 MC调试寄存器:     [0x00] 0x00000000     [0x01] 0x00000000     [0x02] 0x00000000     [0x03] 0x00000000     [0x04] 0x12345678     [0x05] 0x12345678     [0x06] 0x12345678     [0x07] 0x12345678     [0x08] 0x12345678     [0x09] 0x12345678 [0x0A] 0x12345678 [0x0B] 0x12345678 [0x0C] 0x12345678     [0x0D] 0x12345678     [0x0E] 0x12345678 [0x0F] 0x12345678 签名 = 0x12345678(1 次读取尝试) HI调试寄存器: [0x00] 0x0000F719 [0x01] 0x19C020C8     [0x02] 0x1EBC2426 [0x03] 0xAAAAAAAA [0x04] 0xAAAAAAAA [0x05] 0xAAAAAAAA [0x06] 0xAAAAAAAA [0x07] 0xAAAAAAAA [0x08] 0xAAAAAAAA [0x09] 0xAAAAAAAA [0x0A] 0xAAAAAAAA [0x0B] 0xAAAAAAAA [0x0C] 0xAAAAAAAA [0x0D] 0xAAAAAAAA [0x0E] 0xAAAAAAAA [0x0F] 0xAAAAAAAA 签名 = 0xAAAAAAAA(1 次读取尝试) 其他寄存器: [0x0040] 0x00924A66 [0x0044] 0x06F47370 [0x004C] 0x06F47370     [0x0050] 0x00DE8E6E     [0x0054] 0x00DE8E6E [0x0058] 0x00924A66 [0x005C] 0x001254D6     [0x0060] 0x001254D6 [0x043C] 0x00000000     [0x0440] 0x00000000     [0x0444] 0x00000000 [0x0414] 0x3C000000 [<8003b21c>] (unwind_backtrace+0x0/0xfc) 来自 [<80308114>] (_DumpGPUState+0x4ec/0x6b4) [<80308114>] (_DumpGPUState+0x4ec/0x6b4) 来自 [<80308324>] (gckOS_Broadcast+0x38/0xe8) [<80308324>] (gckOS_Broadcast+0x38/0xe8) 来自 [<80311008>] (gckEVENT_GetEvent+0x184/0x1b4) [<80311008>] (gckEVENT_GetEvent+0x184/0x1b4) 来自 [<80311294>] (gckEVENT_Submit+0x8c/0x328) [<80311294>] (gckEVENT_Submit+0x8c/0x328) 来自 [<8030dedc>] (gckCOMMAND_Commit+0x4d4/0xa28) [<8030dedc>] (gckCOMMAND_Commit+0x4d4/0xa28) 来自 [<8030c1d0>] (gckKERNEL_Dispatch+0x4b4/0x112c) [<8030c1d0>] (gckKERNEL_Dispatch+0x4b4/0x112c) 来自 [<80306580>] (drv_ioctl+0x108/0x250) [<80306580>] (drv_ioctl+0x108/0x250) 来自 [<800ed704>] (do_vfs_ioctl+0x80/0x5e0) [<800ed704>] (do_vfs_ioctl+0x80/0x5e0) 来自 [<800edc9c>] (sys_ioctl+0x38/0x60) [<800edc9c>] (sys_ioctl+0x38/0x60) 来自 [<80035580>] (ret_fast_syscall+0x0/0x30) 一个: 此 GPU 驱动程序堆栈转储表明,当 VDDPU_CAP 低于规格值(1.2V)时,GPU 卡住,因此 GPU 未正确供电。通过调整 PMU_REG_CORE[REG1_TARG] 已修复。 据我所知,GPU 驱动程序有一些 DDR 组配置,因此您可能会看到不同的问题。 i.MX6_全部
查看全文
Ubuntu 12.04 64ビット精密Pangolinホストセットアップi.MX28 L2.6.35_MX28_SDK_10.12_SOURCEをビルド[1] [1] <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview リソース Download Ubuntu 12.04.01 i.MX28EVK BSPおよびドキュメントのダウンロード Ubuntuホストのセットアップ ホストパッケージの更新 Ubuntu Configuration PDF 須藤プリビリッジ デフォルトシェル CCACHE ディレクトリレイアウト SDK とドキュメントの抽出 BSP ソースのインストール LTIB用のUbuntuソフトウェアパッケージ LTIBのパッチ適用 Ubuntuホストを使用してSDカードを作成する メディアブートの選択 ケーブル接続   Overview フリースケールの i.M28EVK 開発キットは、i.MX28プロセッサのソフトウェアを実行し、機能を評価するためのプラットフォームを提供します。このドキュメントでは、Intel / AMDアーキテクチャのコンピューター上のUbuntu 12.04 64ビットPrecise PangolinホストでLinuxボードサポートパッケージ(BSP)を実行する方法について詳しく説明します。32 ビット ホストについては、このドキュメントでは説明しておらず、ここで説明するものとは異なる設定手順があります。   Ubuntu Linux ホストは、ARM イメージを作成する BSP をクロスコンパイルするために使用されます。BSP は、Linux Target Image Builder (LTIB) という名前のビルドシステム、コンパイルとデバッグ用の GNU ツールスイート、U-Boot ブートローダー、Linux カーネル、およびルートファイルシステムを提供します。 リソース i.M28EVK- i.MX28 Evaluation Kit Web Page MCIMX28EVKJ 製品概要ページ - i.MX28 資料ダウンロード L2.6.36_MX28_SDK_10.12_ソース-BSP Source のダウンロード Linux ドキュメント - i.MX28EVK ドキュメント Ubuntu 12.04.1 LTS(Precise Pangolin)-Ubuntu12.04リリース Download Ubuntu 12.04.01 Ubuntuまたは仮想マシン(VMwareまたはVirtualBox)を実行している専用コンピューターを使用して、ホストUbuntuソフトウェアを実行できます。Ubuntuイメージは、Ubuntuサイト( Ubuntu 12.04.1 LTS(Precise Pangolin))からダウンロードできます。   このUbuntuホストISOは、md5チェックサムとともに使用されました。 ubuntu-12.04.1-desktop-amd64.iso  06472ddf11382c8da1f32e9487435c3d   ISO を取得する方法の 1 つは、zsync を使用して以下をダウンロードすることです。 zsync http://releases.ubuntu.com/12.04/ubuntu-12.04.1-desktop-amd64.iso.zsync  ダウンロード後、ISOのインストールはユーザーの好みです(専用のLinux PCまたは仮想マシンのいずれか)。   i.MX28EVK BSPおよびドキュメントのダウンロード BSPのダウンロードは、このサイト L2.6.36_MX28_SDK_10.12_Source と 、 ログイン資格情報を指定するために無料の登録が必要なLinuxドキュメントのドキュメントから、   436e0b8e1c7976c657d530a45f9dbd0c L2.6.35_10.12.01_SDK_source_bundle.tar.gz de0274320a17c1e989d1ef5c088973e2 L2.6.35_10.12.01_SDK_docs.tar.gz   Ubuntuホストのセットアップ Ubuntuのログイン資格情報 ユーザー: user パスワード:user このドキュメントに使用されます。 ホストパッケージの更新 Ubuntuホストにログインすると、BSPをインストールする前に、既存のパッケージが最新バージョンに更新されます。使用されるUbuntuパッケージマネージャーはapt-getです。 $ sudo apt-get update $ sudo apt-get upgrade 01. インストールされているすべてのパッケージで新しいリビジョンを確認する 02. 見つかった新しいパッケージがすべてインストールされます。   ltib ビルドシステムには追加パッケージが必要です。 Ubuntu Configuration PDF evinceはデフォルトのPDFリーダーで、別のオプションはzathuraです。 $ sudo apt-get zathuraをインストールする 須藤プリビリッジ LTIB では、一部の操作にスーパー ユーザー特権が必要です。有効にするには、sudo エントリが sudo'ers ファイルに追加されます。詳細については、'man visudo' を実行してください。   $ sudo visudo  最初の単語、userはログインアカウント 'user'です これは、使用したログインに変更することも、グループを設定している場合は、開発者が参加するグループを提供できます - 詳細については、sudoのマニュアルページを参照してください。 次の行を追加します。   ユーザ ALL =NOPASSWD: /usr/bin/rpm/ /opt/freescale/ltib/usr/bin/rpm   デフォルトシェル Ubuntuはデフォルトのシェル「ダッシュ」を使用します。ただし、これにより、ltibシステムの一部であるbashスクリプトでエラーが発生します。デフォルトのシェルを「dash」から「bash」に変更   $ sudo update-alternatives --install /bin/sh sh /bin/bash 1 CCACHE ccache は、ltib システムでサポートされている高速な C/C++ コンパイラ キャッシュを提供します。ccache パッケージがインストールされた後に構成するには: $ sudo apt-get install ccache $ ccache -M 50M $ ccache -c  02. キャッシュ制限を50メガに設定する 03.キャッシュフォルダをクリアします   ディレクトリレイアウト 次のディレクトリ構造が使用されます。 /home/user/freescale/imx28/ |-- archive |-- L2.6.35_10.12.01_ER_source |-- L2.6.35_10.12.01_SDK_docs |-- L2.6.35_10.12.01_SDK_scripts |-- ltib |-- ubuntu-imx28-ltib-patch   アーカイブディレクトリは、BSP と文書が保存される場所です。コマンドを使用してディレクトリを作成します。 $ mkdir -p ~/freescale/imx28/archive   SDK とドキュメントの抽出 ソフトウェア開発キットの内容を抽出するために、次の手順を使用しました。   $ cd ~/freescale/imx28/archive $ tar -zxf L2.6.35_10.12.01_SDK_source_bundle.tar.gz -C ..    01.圧縮されたタールボールを含むディレクトリに移動します。 02. 現在のディレクトリの上のディレクトリ(-C..)に内容を抽出します -z unzip -x抽出 -f L2.6.35_10.12.01_SDK_source_bundle.tar.gz   $ tar -zxf L2.6.35_10.12.01_SDK_docs.tar.gz  01. 現在のディレクトリの上のディレクトリ(-C..)に内容を抽出します     -z unzip -x抽出 -f このファイルをL2.6.35_10.12.01_SDK_docs.tar.gz 両方のtarファイルの内容は、ディレクトリ/home/user/freescale/imx28にあります。 BSP ソースのインストール L2.6.35_10.12.01_SDK_source_bundle.tar.gzからコンテンツを抽出した後、ファイルL2.6.35_10.12.01_SDK.source.tar.gzすべてのソースとビルドシステムが含まれます。内容を抽出してインストールします。これにより、ビルドシステムであるltibディレクトリが作成されます。 $ tar -zxf L2.6.35_10.12.01_SDK_source.tar.gz $ cd L2.6.35_10.12.01_ER_source $ ./install  ライセンス情報を読み、「YES」と入力して同意します。次に、インストールディレクトリが要求され、次のように提供されます。これが親ディレクトリです。 インストールスクリプトはパッケージをコピーし、「インストールが完了しました。ltib のインストールが ../ltib で、インストールを完了するには、次のようにします。 cd .../ltib ./ltib  ただし、これを行う前に、Ubuntu 12.04.01でltibを実行するために適用する必要があるパッケージとパッチがあります。 LTIB用のUbuntuソフトウェアパッケージ 次のパッケージが必要です。以下に添付されているスクリプト pkg-setup.sh には、ダウンロードして実行してインストールできるこれらのパッケージがあります。 $ sh pkg-setup.sh sudo apt-get -y gettext libgtk2.0-dev をインストールするRPMバイソンM4 LibFreeType6-DEV sudo apt-get -y libdbus-glib-1-dev liborbit2-dev intltool をインストールする sudo apt-get -y ccache zlib1g zlib1g-dev gcc g ++ libtool sudo apt-get -y install uuid-dev liblzo2-dev tcl wget libncurses5-dev sudo apt-get -y libncursesw5-dev lib32z1 libglib2.0-devをインストールするxsltproc sudo apt-get -y install ia32-libs libc6-dev-i386 このファイル pkg2-setup.sh には、開発用のオプション パッケージが含まれています。インストール、ダウンロード、実行するには: $ sh pkg2-setup.sh ホスト設定の詳細については、ドキュメントltib_build_host_setup.pdfを参照してください。 LTIBのパッチ適用 glibc-develおよびzlib Ubuntu 12.04パッケージのファイルの場所が9.0.4から変更されました元のltibがリリースされたUbuntu。ltib 操作を更新するために、ディレクトリ ~/freescale/imx28/ltib から次のパッチが実装されています。 1.ファイル ltib は 2387 行目で変更され、rpm 呼び出しに '-v' オプションが追加されます 古い: system('rpm --force-debian 2>/dev/null') == 0? 新機能: system('rpm -v --force-debian 2>/dev/null') == 0? 2. bin/Ltibutils.pm ファイルが更新され、glibc-devel と zlib がサポートされるようになりました。   glibc-devel 更新: 563 行目で /usr/lib32/libm.so のチェックを追加 'glibc-devel' => sub {-f 'usr/lib/libm.so' || -f '/usr/lib64/libz.so' || -f '/usr/lib32/libm.so'},   zlibc update: Line 584 add /lib/x86_64-linux-gnu/libz.so* zlib => sub{my @f = (glob('/usr/lib/libz.so*'),               glob('/lib/x86_64-linux-gnu/libz.so*'),               glob('/lib/libz.so*'),   上記のパッチは、アタッチメント 0001-patches-for-12.04-ubuntu.patch にもあります。   LTIBパッケージも、Ubuntuで正しくビルドするために調整が必要です。以下のtarファイルubuntu-imx28-ltib-patch.tgzには、すべての更新が含まれています。ltibソースディレクトリと同じディレクトリレベルでコンテンツをダウンロードして抽出します。 $ tar -zxf ubuntu-imx28-ltib-patch.tgz ├── ltib ├── ubuntu-imx28-ltib-patch └── ubuntu-imx28-ltib-patch.tgz ディレクトリをubuntu-imx28-ltib-patchに変更してから、install-patches.sh スクリプトを実行します。 $ cd ubuntu-imx28-ltib-patch $./install-patches.sh   次のパッケージが更新されます。 lkc mtd-utils mux_server sparse Ubuntuホストを使用してSDカードを作成する tar ファイル L2.6.35_10.12.01_SDK_scripts.tar.gz には、ltib ビルドから SD カードにイメージを書き込むためのスクリプトが含まれています。内容を抽出し、スクリプトを ltib ディレクトリにコピーし、更新された fdisk コマンドで動作するように mk_mx28_sd スクリプトを更新します。   $ tar -zxf L2.6.35_10.12.01_SDK_scripts.tar.gz $ cd L2.6.35_10.12.01_SDK_scripts $ cp mk_hdr.sh ~/freescale/imx28/ltib $ cp mk_mx28_sd ~/freescale/imx28/ltib $ cd ~/freescale/imx28/ltib  スクリプトを編集mk_mx28_sd、177 行目に 'u' を追加し、その後に o コマンドを追加します。これにより、シリンダがセクタに変更されます。   古い: エコー "o n   新機能: エコー "U o n   /dev/sdb にある SD カードを作成するように更新したら、次のようにします。 $ ./mk_mx28_sd /dev/sdb  注: 自動的にマウントされた場合、スクリプトを機能させるにはマウントを解除する必要があります $ sudo umount /dev/sdb*     メディアブートの選択 i.MX28EVKには、EVKの下部にあるスロット0のSDカードから実行するブートオプションがあります。EVKの上部には、スタートアッププロセス中に読み取られるスイッチがあり、使用するブートメディアを決定します。この例では、スロット 0 の SD カードが使用されており、次の設定が必要です。 B3/DIP1 B2/DIP2 B1/DIP3 B0/DIP4 1 0 0 1 ユーザーガイドのセクション3.2.1 i.MX28_Linux_BSP_UG.pdfを参照してください。すべてのオプションのブートモード。ユーザーガイドは、 Linuxドキュメント バンドルのドキュメントにあります。ブートスイッチの位置とSDカードスロット0の位置を示す図については、次のセクションを参照してください。 ケーブル接続 コンピューターのシリアル・ポートは、i.MX28EVK シリアル・ポートに接続されています。通信設定は115200ボー、8データビット、パリティなし、1ストップビットです。このポートにはフロー制御が設定されていません。これは通常、115200、8N1と表示されます。電源が接続されています  
查看全文
MCUXpresso SDK: CMake の使用方法 - パート II MCUXpresso SDK CMakeプロジェクトの概要 CMakelists.txtファイル(上図)は、CMakeがプロジェクトビルドを構成するために使用されます。これは、インクルード、プロジェクトなどの標準CMake関数の両方を含むテキストファイルです。ただし、MCUXpresso SDK にあるプロジェクトには、MCUXpresso CMake 拡張機能もあります。 上記のファイルには、2 つの MCUXpresso CMake 拡張機能が表示されています。 mcux_add_source - プロジェクトのソースファイルへのパスを指定します。 mcux_convert_binary - 出力バイナリ形式を指定します。 この MCUXpresso CMake 拡張機能の詳細については、オンラインの SDK ドキュメントを参照してください。 CLI を使用したプロジェクトのビルド 環境をセットアップし、MCUXpresso SDK を取得したら、コマンド ラインからプロジェクトをビルドできます。これを行うには、Westコマンドを使用します。まず、お好みのCLIを起動し、MCUXpresso SDKを保存したディレクトリに移動します。 使用可能な West コマンドの完全なリストについては、west -h を実行します。 この課題では、FRDM MCXA153の Hello World サンプルプロジェクトをビルドするだけです。これを行うために、実行するコマンドは次のとおりです。 West Build -B frdmmcxa153の例/demo_apps/hello_world それを分解する 上記のビルド コマンドは、SDK のルート ディレクトリからビルドされます。この特定のバージョンでは、ルートは mcuxsdk ディレクトリです。MCUXpresso SDK には、さまざまなデバイスでサポートされている多くの例があります。したがって、frdmmcxa153 を -b フラグで指定する必要があります。ビルドはルート ディレクトリから実行されたため、プロジェクトへのパスも指定されました。 MCUXpresso for VS Code
查看全文
マルチコア開発に関するデバッグに関する質問 親愛なるコミュニティの皆様へ 私のMPC5748Gマルチコア開発では、デュアルZ4_0とZ4_1コアを使用しました。Z4_0のDebug_RAMだけでも問題なく動作しますが、Z4_1のDebug_RAMは使用できません。それはどうしてですか。 Hチップ MPC5748G-GW-RDB  回复: マルチコア開発に関するデバッグに関する質問 私はこのリンクで解決策を見つけました: https://community.nxp.com/docs/DOC-335367
查看全文
Video - i.MX53 iWave G11 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 追加した人 アイウェーブシステム on 2011年10月20日 at 7:26am http://www.youtube.com/watch?feature=player_embedded&v=gHiHe5IX5LU#!#!   投稿者 pressannas on 2011年6月29日 iW-i.MX53は、フリースケールのi.MX53 (1GHz、ARM Cortex-A8) マルチメディア・アプリケーション・プロセッサをベースとしたリファレンス・プラットフォームです。これは、iWaveの成長を続けるリファレンスプラットフォームファミリーに加わった最新の製品です。G11Dは、成長を続けるオートマティブインフォテインメント、テレマティクス、HMI、ディスプレイベースのクラスター市場を目指し、高度な機能統合を備えた高性能処理を提供します。このプロセッサには、3Dおよび2Dグラフィックプロセッサ、1080i / pビデオ処理、デュアルディスプレイが含まれ、さまざまなインターフェイスを提供します。 カテゴリ: サイエンス&テクノロジー ライセンス: 標準 YouTube ライセンス   全般
查看全文
使用MQX4.1进行NFC测试 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这是 NFC 设备读写非接触式卡的演示。 该测试环境使用 Kinets K60 塔板和 NXP PN512 板。 K60塔板到PN512 RF板的连接引脚如下所列: SPI1: SPI1_SIN : PTE1/SDHC0_D0 SPI1_SCK : PTE2/SDHC0_DCLK SPI1_SOUT : PTE3/SDHC0_CMD SPI1_PCS0 : PTE4/SDHC0_D3 重置: PTB9 外部中断: PTA26 因为SPI1端口作为pn512的主机接口,所以需要在MQX的用户配置文件中开启SPI1驱动。 使用CW10.5打开/build文件夹中的项目文件。 并且必须在构建测试图像之前构建 PSP 和 BSP 库,因为这个测试项目需要它们。 下图是从Mifare one测试卡中读取的序列号和块数据。 Kinetis K系列MCU 回复:使用MQX4.1进行NFC测试 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   Hi David, 这个演示只是一个读卡器驱动程序,但是对于支付系统来说,需要做很多工作才能实现它。 BCM20792S和PN512都是NFC的收发器IC,对于支付系统来说没有区别,但是对于NFC驱动程序有区别。 回复:使用MQX4.1进行NFC测试 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,卫平: 我是台湾 FAE David Chen。客户正在寻找用于支付系统的 NFC 阅读器。 我不熟悉 NCF 应用程序。我可以知道这个演示适合 NFC 支付应用程序吗? 是否有任何由 K60 处理的 NFC 软件堆栈? 在这个应用程序中 MQX 是必须的吗? BCM20792S 怎么样,它与 NXP PN512 相同吗? 任何评论都将受到欢迎。 顺祝商祺! David
查看全文
i.MX27 ADS 开发板视频 GST 视频流 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 以太网视频流 本节介绍如何使用 UDP 和 RTP 通过以太网传输视频。请务必安装最新的 gst-plugin-good 以确保最佳流媒体质量。 使用接收机器(将显示视频的机器)的 IP 地址定义环境变量 HOST。 $ 导出 HOST=XX.XX.XX.XX 你知道如何获得帽子吗?i.MX 27 视频 GST 电容 H264(MX->PC) 在i.MX27中: gst-launch-0.10-v mfw_v4lsrc捕获宽度=640捕获高度=480!mfw_vpuencoder宽度=640高度=480/ 编解码器类型=std_avc!rtph264支付!udpsink 主机=$HOST 端口=5000 在PC中: gst-launch-0.10 -v --gst-debug=2 udpsrc 端口=5000 / caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,/ 配置文件级别 ID = (字符串)42001e,sprop 参数集 = (字符串)Z0IAHqaAoD2Q,有效载荷 = (整数)96,/ ssrc=(guint)3296222373,时钟基数=(guint)2921390826,seqnum基数=(guint)35161”!/ rtph264depay!ffdec_h264!自动视频接收器 MPEG4 (MX->PC) 在i.MX27中 gst-launch-0.10-v mfw_v4lsrc捕获宽度=352捕获高度=288!mfw_vpuencoder 宽度=352 高度=255 比特率=64 编解码器类型=std_mpeg4!rtpmp4vpay 发送配置=true / !udpsink 主机=10.29.244.32 端口=5000 将 send-config 设置为 true 以随视频发送配置。确保更好的解码 PC gst-launch-0.10 -v --gst-debug=2 udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, / 编码名称=(字符串)MP4V-ES,配置文件级别ID=(字符串)2,配置=(字符串)000001b002000001b59113000001000000012000c888800f50b042414103,/ 有效载荷=(int)96,ssrc=(guint)4006671474,时钟基数=(guint)3714140954,seqnum-base=(guint)29742“/ !rtpmp4vdepay!ffdec_mpeg4 !自动视频接收器 MPEG4(MX->MX) Sender gst-launch-0.10-v mfw_v4lsrc捕获宽度=640捕获高度=480!mfw_vpuencoder宽度=640高度=480编解码器类型=std_mpeg4!rtpmp4vpay 发送配置=true!udpsink 主机=$HOST 端口=5000 接收器 gst-launch-0.10 -v udpsrc 端口=5000 caps=“应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(int)90000,/ 编码名称=(字符串)MP4V-ES,配置文件级别ID=(字符串)4,配置=(字符串)000001b004000001b59113000001000000012000c888800f514043c14103,/ 有效载荷=(int)96,ssrc=(guint)907905085,时钟基数=(guint)2029414707,序列号基数=(guint)22207”!rtpmp4vdepay!/ mfw_vpudecoder 编解码器类型=std_mpeg4 min_latency=true!mfw_v4lsink 同步=false 将 min_latency 设置为 true 可以为流媒体提供更好的延迟 H264 (MX->MX) Sender gst-launch-0.10-v mfw_v4lsrc捕获宽度=640捕获高度=480!mfw_vpuencoder宽度=640高度=480编解码器类型=std_avc!rtph264支付!udpsink 主机=10.29.240.51 端口=5000 接收器 gst-launch-0.10 -v udpsrc 端口=5000 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000"!rtph264depay!mfw_vpudecodr 编解码器类型=std_avc!mfw_v4lsink 同步=false i.MX2x 回复:i.MX27 ADS 板视频 GST 视频流 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello, 我正在寻找 TI 处理器中的 i.mx6 处理器。您能告诉我您的 MX 板在解码时遇到了什么样的延迟吗?我正在尝试了解我对飞思卡尔提供的 gstreamer 元素的期望。 谢谢! Tim
查看全文
SNVS LPバッテリ障害検出 新しいアプリケーションの電源障害ルーチンからの回復を試みていますが、SNVS LPのドキュメントにイライラしています。当然のことながら、デフォルト値を書き込む前にRTC値が有効かどうかを知る必要があり、この目的のためにデジタル低電圧検出器に注目しています。(I.MX RT1160リファレンスマニュアル、2020ページ)。 LPLVDR の参照値の設定は簡単ですが、LP ステータス レジスタへの参照には満足できません。マニュアルによると、LPLVDR を設定した後、このレジスタの低電圧イベントをクリアする必要がありますが、このビットがレジスタのどこにあるかの記録はありません。ほとんどのビットは識別されず、予約済みとしてマークされています。私が見る限り、この状況はSNVSモジュールを使用する他のデバイスでも同じです。 いずれにせよ、SDK の SNVS_LP_Init() ルーチンを調べると、低電圧イベントは SNVS_LPSR_LVD_MASK で定義されているビット 8 であることがわかります。しかし、マニュアルに書かれていることにもかかわらず、それは初期化に設定されており、クリアされていません。また、電源投入時に有効な状態を確認する機能やマクロはないため、バッテリーが故障したかどうかを知るために何を探しているのでしょうか?初期化後も設定したままにしておくべきですか?無視してLPLVDRを直接チェックしますか? 私はそれがどのように機能するかを見ることができましたが、アプリケーションが信頼できることを確認するためには、NXPがどのように機能することを意図していたかを本当に理解する必要があります。 よろしくお願いします。 Sacha. 日時:SNVS LPバッテリー障害検出 ありがとうエドウィン、 このドキュメントへのアクセスをリクエストしました。 NXPに公平を期すために、リファレンスマニュアルには、セキュリティ関連のビットフィールドに関する情報がセキュリティリファレンスマニュアルに記載されているという注記があります。SNVS リセット ステート ビットがセキュアとして分類される理由がわかりません。また、SDKにマクロがあり、この状態を簡単に確認できると便利です。 よろしくお願いします。 Sacha. 日時:SNVS LPバッテリー障害検出 Hi @Sacha, SNVS レジスタの詳細については、ここからダウンロードできるセキュリティ リファレンス マニュアルを参照してください (RT1160 と RT1170 の両方で同じファイルです)。 ただし、SRM には、このビットがリセット時に 1 であり、クリアされていないと表示されます。初期化後、このビットは次のSNVS_LPSR_LVD_MASKでクリアされます。 BR, Edwin. 日時:SNVS LPバッテリー障害検出 すみません。ビット 8 ではなく、ビット 3 を意味しました。しかし、私のコメント/質問はまだ立っています。
查看全文
应用笔记(AN12751):如何从 i.MX RT600 MCU 的 QSPI Flash 启用恢复启动 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文档介绍了如何使用 i.MX RT600 MCU 将可引导映像编程到恢复闪存设备中。 单击此处访问完整的应用说明。 i.MXRT 600
查看全文
HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 1.HDMIを設定します 2. 生のオーディオをテストする 3.HDMIオーディオをデフォルトの出力にします 4.エンコードされたオーディオ 1.HDMIを設定します HDMI を使用するようにカーネルを設定し、u-boot の bootargs に次のコードを追加します。 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 2. 生のオーディオをテストする 未加工のオーディオのみをテストするには、次のコマンドを使用します。 aplay -D hw:1,0 Kaleidoscope.wav 3.HDMIオーディオをデフォルトの出力にします HDMI経由でオーディオ出力を設定するには、~/.asoundrcファイルの内容を次のものに置き換えてください pcm.dmix_48000{ タイプdmix      ipc_key 5678293      ipc_key_add_uid yes      slave{ PCM 「hw:1,0」 period_time 0 period_size 2048 buffer_size 24576 フォーマットS16_LE レート 48000      } } pcm.!dsnoop_44100{ DSNOOP と入力します。      ipc_key 5778293      ipc_key_add_uid yes      slave{ PCM "hw:0,0" period_time 0 period_size 2048 buffer_size 24576 フォーマットS16_LE 料金 44100      } } pcm.!dsnoop_48000{ DSNOOP と入力します。      ipc_key 5778293      ipc_key_add_uid yes      slave{ PCM 「hw:1,0」 period_time 0 period_size 2048 buffer_size 24576 フォーマットS16_LE レート 48000      } } pcm.asymed{ アシム型 playback.pcm 「dmix_48000」 capture.pcm 「dsnoop_44100」 } pcm.dsp0{ タイププラグ slave.pcm 「アシメド」 } pcm.!default{ タイププラグ route_policy 「平均」 slave.pcm 「アシメド」 } ctl.mixer0{ タイプHW カード0 } これにより、alsa がサウンドカード hw:1,0 を使用するように設定されます。お使いのデバイスに適したオーディオカード名を使用するように注意してください。 船内で利用可能なサウンドカードを確認するには: root@imx53qsb:~# aplay -l PLAYBACKハードウェアデバイスのリスト **** カード0:IMX3stack [IMX-3stack]、デバイス0:SGTL5000 SGTL5000-0 [] サブデバイス:1/1 サブデバイス #0: サブデバイス #0 card 1: imx3stackspdif [imx-3stack-spdif], device 0: IMX SPDIF mxc spdif-0 [] サブデバイス:1/1 サブデバイス #0: サブデバイス #0 asound.conf の作成方法については、alsa-lib 設定の紹介をご覧ください。 4.エンコードされたオーディオ エンコードされた (つまり、AC3, DTS) オーディオでは、alsa-tools が提供するユーティリティである ac3dec を以下のコマンドラインで使用できます。 ac3dec -D hw:1,0 -C test.ac3 これは、HDMIオーディオとSPDIFオーディオの両方で機能します。ハードウェアや回路図を再確認して、どちらを使用するかを確認してください。 i.MX53 マルチメディア 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Dear Daiane Angolini, SRを通じて新しいチケットを作成しました。 SRから以下のケースをご確認ください。 【事例:00198948】i.MX6Q / Linux 3.14.52でHDMIオーディオを24ビットとして設定する方法 よろしくお願いいたします。 エリック。 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 新しいチケットを作成していただけますか?そうしないと、レーダーから外れてしまう可能性があります 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Dear Daiane Angolini, i.MX6Q / Linux 3.14.52でHDMIオーディオを24bitとして設定する方法を知りたいです。 その方法を教えてください。 i.MX6Q Evaluation boardでの確認方法を教えていただけると大変助かります。 実は、いくつかの資料で以下の内容を確認することができました。 - HDMIオーディオ24bitはi.MX6Qリファレンスマニュアルで対応しています。 .表 33-6.第33章のL-PCM(24ビット)のシステムメモリへのデータ配置 . - HDMI Audio 24bit は、i.MX6 Linux リファレンス マニュアル for Linux 3.14.52 ではサポートされていません。 .第 15 章 オンチップ HD マルチメディア インターフェイス (HDMI) ドライバー . よろしくお願いいたします エリック。 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> PulseAudio conf ファイルを探してください。メタレイヤーにbbappendを作成して、これをデフォルトで画像に追加します。 (すみません、私はpulseaudioを知りません ) 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> PulseAduioはオーディオの出力を検出し、あるときはHDMIで、あるときは他のものなので、デフォルトの出力としてHDMIを指定する必要があります。 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> それは悪いように見えます、私もメールリストで言ったようにデーモンをstatアップします、 コマンド "pulseaudio -D" で再起動しますが、オーディオの出力は HDMI からではなく、"カード 0: wm8962audio [wm8962-audio]、デバイス 0: HiFi wm8962-0 []" 本当に不思議です、助けてください... 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> まあ、私はあなたがそれを機能させると思います(メタフリースケールについてのあなたのコメントによって) 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 「pacmd」というコマンドはなく、「pactl」というだけのコマンドがあります。 ところで、私はFSLコミュニティのYOCTOプロジェクトを使用してすべてを構築しますが、あなたの質問に対する私の次のステップは何ですか? 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ああ、その通りです!PulseAudioの設定方法は異なります。 私の古い電子メールから、私はこのコマンドラインを取得しました: pacmd set-default-sink 1 ぜひ試してみて、結果をお知らせください。 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 良い、ネイティブアプリを使用してIMX6QSDでオーディオを再生すると本当に機能します ただし、パルスオーディオサーバーを使用したHDMIからのオーディオ出力はありません。 オーディオの出力は、私のIMX6QSDにあるように「WM8962audio」からのものですが、これについて何かアドバイスはありますか? Pulse Audio Serverを使用してHDMIインターフェースで出力したいです。 root@imx6qsabresd:~# aplay -l PLAYBACKハードウェアデバイスのリスト **** カード0:wm8962audio [wm8962-audio]、デバイス0:HiFi wm8962-0 [] サブデバイス:1/1 サブデバイス #0: サブデバイス #0 カード 1: imxhdmisoc [imx-hdmi-soc]、デバイス 0: IMX HDMI TX mxc-hdmi-soc-0 [] サブデバイス: 0/1 サブデバイス #0: サブデバイス #0 日時:HDMIオーディオ設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello, 非常に美しいガイド、AndroidでデフォルトのSPDIFオーディオカードを設定する方法は? ありがとうございます
查看全文
i.MX创建Android SDCard镜像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> [中国語訳] 添付ファイルを参照   元のリンク: i.MX Create Android SDCard Mirror  Android i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX6_All i.MX6DL i.MX6Dual i.MX6DualPlus6QuadPlus i.MX6Quad i.MX6S i.MX6SL i.MX6SoloX i.MX6UL i.MX7Dual i.MX7Solo i.MX7ULP
查看全文
Ubuntu 12.04 64 位 Precise Pangolin 主机设置,用于构建 i.MX28 L2.6.35_MX28_SDK_10.12_SOURCE[1] [1] <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview 相关资源 Download Ubuntu 12.04.01 下载i.MX28EVK BSP和文档 Ubuntu 主机设置 主机包更新 Ubuntu Configuration PDF Sudo 权限 默认 Shell CCACHE 目录布局 提取 SDK 和文档 安装 BSP 源 适用于 LTIB 的 Ubuntu 软件包 修补 LTIB 使用 Ubuntu 主机创建 SD 卡 媒体启动选择 电缆连接   Overview 飞思卡尔的i.M28EVK开发套件提供了一个运行软件和评估 i.MX28 处理器功能的平台。本文档提供了在 Intel/AMD 架构计算机上的 Ubuntu 12.04 64 位 Precise Pangolin Host 上运行 Linux 板级支持包 (BSP) 的详细信息。本文档未涵盖 32 位主机,并且其配置步骤与此处描述的不同。   Ubuntu Linux 主机用于交叉编译 BSP 创建 ARM 图像。BSP 提供了一个名为 Linux Target Image Builder (LTIB) 的构建系统、用于编译和调试的 GNU 工具套件、U-Boot 引导加载程序、Linux 内核和根文件系统。 相关资源 i.M28EVK- i.MX28 Evaluation Kit Web Page MCIMX28EVKJ 产品概要页- i.MX28 下载资料 L2.6.36_MX28_SDK_10.12_源-BSP源码下载 Linux 文档- i.MX28EVK 文档 Ubuntu 12.04.1 LTS(Precise Pangolin) - Ubuntu 12.04 版本 Download Ubuntu 12.04.01 运行 Ubuntu 或虚拟机(VMware 或 VirtualBox)的专用计算机可用于运行 Host Ubuntu 软件。Ubuntu 映像可从 Ubuntu 网站下载: Ubuntu 12.04.1 LTS (Precise Pangolin) 。   此 Ubuntu 主机 ISO 与 md5 校验和一起使用: ubuntu-12.04.1-desktop-amd64.iso  06472ddf11382c8da1f32e9487435c3d   获取 ISO 的一种方法是使用 zsync 下载: zsync http://releases.ubuntu.com/12.04/ubuntu-12.04.1-desktop-amd64.iso.zsync  下载后,安装 ISO 是用户的偏好 - 无论是专用的 Linux PC 还是虚拟机。   下载i.MX28EVK BSP和文档 BSP 下载来自此站点L2.6.36_MX28_SDK_10.12_Source ,文档来自Linux 文档,需要免费注册才能指定登录凭据,   436e0b8e1c7976c657d530a45f9dbd0c L2.6.35_10.12.01_SDK_source_bundle.tar.gz de0274320a17c1e989d1ef5c088973e2 L2.6.35_10.12.01_SDK_docs.tar.gz   Ubuntu 主机设置 Ubuntu 登录凭证 用户:user 密码:用户 用于本文件。 主机包更新 一旦登录到 Ubuntu 主机,现有软件包就会在安装 BSP 之前更新到最新版本。使用的 Ubuntu 包管理器是 apt-get。 $ sudo apt-get 更新 $ sudo apt-get 升级 01. 检查所有已安装的软件包是否有新修订 02. 安装所有找到的较新的软件包。   ltib 构建系统需要附加包。 Ubuntu Configuration PDF evince 是默认的 pdf 阅读器,另一个选择是 zathura。 $ sudo apt-get install zathura Sudo 权限 LTIB 的某些操作需要超级用户权限。要启用 visudo,请将条目添加到 sudo'ers 文件中。要了解更多信息,请运行“man visudo”。   $ sudo visudo  第一个单词“用户”是登录帐户“用户”,可以将其更改为您使用的任何登录名,或者如果您配置了组,则可以提供开发人员所在的组 - 有关详细信息,请参阅 sudo 的手册页。 添加此行:   用户 ALL =NOPASSWD: /usr/bin/rpm/ /opt/freescale/ltib/usr/bin/rpm   默认 Shell Ubuntu 使用默认 shell“dash”。但这会导致 ltib 系统的一部分 bash 脚本失败。将默认 shell 从“dash”更改为“bash”   $ sudo 更新替代方案 --install /bin/sh sh /bin/bash 1 CCACHE ccache 提供了一个快速的 C/C++ 编译器缓存,该缓存在 ltib 系统中受支持。安装 ccache 包后进行配置: $ sudo apt-get install ccache $ ccache -M 50M $ ccache -c  02. 将缓存限制设置为 50 MB 03.清除缓存文件夹   目录布局 使用以下目录结构: /home/user/freescale/imx28/ |-- archive |-- L2.6.35_10.12.01_ER_source |-- L2.6.35_10.12.01_SDK_docs |-- L2.6.35_10.12.01_SDK_scripts |-- ltib |-- ubuntu-imx28-ltib-patch   档案目录是存储 BSP 和文档的地方;创建目录的命令: $ mkdir -p ~/freescale/imx28/archive   提取 SDK 和文档 下列指令用于提取软件开发工具包的内容:   $ cd ~/freescale/imx28/archive $ tar -zxf L2.6.35_10.12.01_SDK_source_bundle.tar.gz -C ..    01. 进入包含压缩 tar 包的目录。 02. 将内容提取到当前目录的上一级目录(-C..) -z unzip -x 提取 -f L2.6.35_10.12.01_SDK_source_bundle.tar.gz   $ tar -zxf L2.6.35_10.12.01_SDK_docs.tar.gz  01. 将内容提取到当前目录上方的目录(-C ..)     -z unzip -x 提取 -f L2.6.35_10.12.01_SDK_docs.tar.gz此文件 两个 tar 文件的内容现在位于目录 /home/user/freescale/imx28 中。 安装 BSP 源 从 L2.6.35_10.12.01_SDK_source_bundle.tar.gz 中提取内容后,文件 L2.6.35_10.12.01_SDK.source.tar.gz 包含所有源代码和构建系统。提取内容并安装。这将创建 ltib 目录,即构建系统。 $ tar -zxf L2.6.35_10.12.01_SDK_source.tar.gz $ cd L2.6.35_10.12.01_ER_source $ ./install  阅读许可证信息并输入 YES 表示接受。然后要求提供安装目录:.. 这是父目录。 安装脚本复制软件包并通知您“安装完成,您的 ltib 安装已放置在 ../ltib,以完成安装: cd .../ltib ./ltib  然而,在执行此操作之前,需要应用一些软件包和补丁才能在 Ubuntu 12.04.01 上运行 ltib。 适用于 LTIB 的 Ubuntu 软件包 需要以下包。下面附加的脚本 pkg-setup.sh 包含这些包,可以下载并执行以进行安装。 $ sh pkg-setup.sh sudo apt-get -y 安装 gettext libgtk2.0-devrpm bison m4 libfreetype6-dev sudo apt-get -y 安装 libdbus-glib-1-dev liborbit2-dev intltool sudo apt-get -y 安装 ccache zlib1g zlib1g-dev gcc g++ libtool sudo apt-get -y install uuid-dev liblzo2-dev tcl wget libncurses5-dev sudo apt-get -y 安装 libncursesw5-dev lib32z1 libglib2.0-dev程序 sudo apt-get -y install ia32-libs libc6-dev-i386 文件 pkg2-setup.sh 包含用于开发的可选包。要安装、下载并执行: $ sh pkg2-setup.sh 有关主机设置的更多信息,请参阅文档 ltib_build_host_setup.pdf。 修补 LTIB glibc-devel 和 zlib Ubuntu 12.04 软件包中的文件位置与 9.0.4 版本相比有所变化最初的 ltib 是针对 Ubuntu 发布的。要更新 ltib 操作,请从目录 ~/freescale/imx28/ltib 实施以下补丁 1.文件 ltib 在第 2387 行进行了更改,在 rpm 调用中添加了“-v”选项 老的: 系统('rpm --force-debian 2> / dev / null')== 0? 新的: 系统('rpm -v --force-debian 2> / dev / null')== 0? 2. 文件 bin/Ltibutils.pm 已更新,支持 glibc-devel 和 zlib。   glibc-devel 更新:第 563 行添加对 /usr/lib32/libm.so 的检查 'glibc-devel' => sub {-f 'usr/lib/libm.so' || -f '/usr/lib64/libz.so' || -f '/usr/lib32/libm.so'},   zlibc update: Line 584 add /lib/x86_64-linux-gnu/libz.so* zlib => sub{我的@f = (glob('/usr/lib/libz.so*'),               glob('/lib/x86_64-linux-gnu/libz.so*'),               glob('/lib/libz.so*'),   上述补丁也在附件0001-patches-for-12.04-ubuntu.patch中。   LTIB 包也需要调整才能在 Ubuntu 上正确构建。下面的 tar 文件 ubuntu-imx28-ltib-patch.tgz 包含所有更新。下载并提取与 ltib 源目录同一目录级别的内容。 $ tar -zxf ubuntu-imx28-ltib-patch.tgz ├── ltib ├── ubuntu-imx28-ltib-patch └── ubuntu-imx28-ltib-patch.tgz 将目录更改为 ubuntu-imx28-ltib-patch,然后运行 install-patches.sh 脚本。 $ cd ubuntu-imx28-ltib-patch $./install-patches.sh   以下软件包已更新: lkc mtd-utils 多路复用服务器 sparse 使用 Ubuntu 主机创建 SD 卡 tar 文件 L2.6.35_10.12.01_SDK_scripts.tar.gz 包含将 ltib 构建中的图像写入 SD 卡的脚本。提取内容,将脚本复制到 ltib 目录,并更新 mk_mx28_sd 脚本以使用更新的 fdisk 命令。   $ tar -zxf L2.6.35_10.12.01_SDK_scripts.tar.gz $ cd L2.6.35_10.12.01_SDK_scripts $ cp mk_hdr.sh ~/freescale/imx28/ltib $ cp mk_mx28_sd ~/freescale/imx28/ltib $ cd ~/freescale/imx28/ltib  编辑 mk_mx28_sd 脚本并在第 177 行添加“u”,然后在后面添加 o 命令。这会将圆柱体变为扇区。   老的: 回声“o n   新的: 回声“u o n   更新后,创建位于 /dev/sdb 的 SD 卡: $ ./mk_mx28_sd /dev/sdb  注意:如果自动安装,则需要卸载才能使脚本运行 $ sudo umount /dev/sdb*     媒体启动选择 i.MX28EVK 具有一个启动选项,可以从位于 EVK 底部的插槽 0 中的 SD 卡执行。EVK 顶部有一些开关,在启动过程中读取这些开关来确定使用哪种启动介质。本示例使用插槽 0 中的 SD 卡,需要进行以下设置: B3/DIP1 B2/DIP2 B1/DIP3 B0/DIP4 1 0 0 1 请参阅用户指南 i.MX28_Linux_BSP_UG.pdf 第 3.2.1 节。所有选项的启动模式。用户指南可以在Linux 文档包文档中找到。请参阅下一部分,其中的图片显示了启动开关的位置和 SD 卡插槽 0 的位置。 电缆连接 计算机串行端口连接到i.MX28EVK串行端口。通信设置为 115200 波特、8 个数据位、无奇偶校验和 1 个停止位。此端口未设置流量控制。通常显示为 115200, 8N1。电源已连接  
查看全文
S32K344 DCF配置器 详细描述:                 此配置工具简化了 S32K344 设备的 DCF 记录计算。                 看看 如何使用 表格中的简单指南,然后使用 直流现金流折现法 床单                 说明: - 必须启用宏!   BR, Petr
查看全文
s32k312:ADC FIFO(ADC0 和 ADC1) 你好,我正在尝试更好地了解 ADC FIFO 的工作原理。我能够使“S32K312 PIT BTCU 并行 ADC FIFO DMA DS3.5 RTD300”示例在 sdk5.0.0 上运行。然后我尝试修改它,因为我有使用不同数量通道的 ADC1 和 ADC0: ADC0 ADC 1 我创建了两个具有相同坑源的触发事件和两个 DMA 通道(一个用于 FIFO1,另一个用于 FIFO2)。BTCU设置如下: 代码编译并调用两个回调函数: void BctuWatermarkNotif_2(void) { result2[0] = (uint16_t) (BctuDmaFifo2[0]&0xFFFF)>>3; val2[0] = ((浮点型) result2[0]/ adcMax) * (ADC_VREFH - ADC_VREFL); result2[1] = (uint16_t) (BctuDmaFifo2[1]&0xFFFF)>>3; val2[1] = ((浮点型) result2[1]/ adcMax) * (ADC_VREFH - ADC_VREFL); result2[2] = (uint16_t) (BctuDmaFifo2[2]&0xFFFF)>>3; val2[2] = ((浮点型) result2[2]/ adcMax) * (ADC_VREFH - ADC_VREFL); } void BctuWatermarkNotif_1(void) { result1[0] = (uint16_t) (BctuDmaFifo1[0]&0xFFFF)>>3; val1[0] = ((浮点型) result1[0]/ adcMax) * (ADC_VREFH - ADC_VREFL); result1[1] = (uint16_t) (BctuDmaFifo1[1]&0xFFFF)>>3; val1[1] = ((浮点型) result1[1]/ adcMax) * (ADC_VREFH - ADC_VREFL); result1[2] = (uint16_t) (BctuDmaFifo1[2]&0xFFFF)>>3; val1[2] = ((浮点型) 结果1[2]/ adcMax) * (ADC_VREFH - ADC_VREFL); result1[3] = (uint16_t) (BctuDmaFifo1[3]&0xFFFF)>>3; val1[3] = ((浮点型) result1[3]/ adcMax) * (ADC_VREFH - ADC_VREFL); } 但是 valx[] 数组不包含正确的值,看起来它们正在移动。 这里有一些截图: 我已附上源代码。 您能否提供一些有关如何修复它的信息? 当 adc0 和 1 使用不同数量的通道时,我可以使用单个 FIFO 吗? 先行致谢。 此致问候 回复:s32k312:ADC FIFO(ADC0 和 ADC1) Hi@PaoloRB 1.我检查了你的代码,发现水掩码值有误。 请参考下面的修改。 2.当adc0和1使用不同数量的通道时,我可以使用单个FIFO吗? 是的,这可以通过“Adc Target Mask”来完成,例如,在你的情况下,你可以将 i 设置为 0b011, 然后 adc0 和 adc1 将并行工作并在相同的触发源和数据上触发 可以根据需要保存到 fifo1或fifo2。
查看全文
示例 IP S32K312 EMIO PWM 生成和使用轮询 DS3.5 RTD300 的占空比捕获 ******************************************************************************************* 此演示应用程序的目的是展示 适用于 S32K3xx MCU 的轮询模式的EMIOS IP 驱动程序。 该示例用于:-- EMIOS-1 - ch-0 --> PTC24 --> 生成 PWM EMIOS-1 - ch-1 --> PTC25 --> 是用于测量占空比的 ICU 通道 使用的引脚:-- 此示例针对 IPWM 模式进行了测试。:-- IPWM模式,ICU驱动程序用户手册:-- 结果 : - ------------------------------------------------------------------------------ * 测试硬件:S32K3X2EVB-Q172 * MCU:S32K312 * 编译器:S32DS3.5 * SDK 发布:RTD 3.0.0 * 调试器:PE micro * 目标:internal_FLASH ********************************************************************************
查看全文
S32G-VNP-RDB3 如何启用 6*100baseT1 网络端口。 您好,亲爱的先生。 我正在使用带有 BSP42.0 软件的 S32G-VNP-RDB3 板。 我已成功启用 PFE 和 SJA1110 固件。 现在我想使用 100BASE_T1 端口(例如:TRX10)来发送消息。 我从网络上获得一张图片,其中有 ifconfig -a 命令中的那些端口。您能帮我告诉我如何设置 SJA1110 以启用 TRX5-10 协议吗?然后我可以为 TRX10 设置 IP。 以下是我的 PFE 和 SJA110 信息: 回复:S32G-VNP-RDB3 如何启用 6*100baseT1 Enternet 端口。 谢谢。 它起作用了。 回复:S32G-VNP-RDB3 如何启用 6*100baseT1 Enternet 端口。 Hi, @Wzlinux  感谢您的回复。 我建议仔细参考 BSP42 UM 的 7.7.3,为 SJA1110 启用 DSA 驱动程序,完成后,接口就可以在 Linux 中显示了 BR 陈银 回复: S32G-VNP-RDB3如何启用6*100baseT1 Enternet端口。 来自https://community.nxp.com/t5/S32G/S32G399A-MDIO-configuration-in-the-Device-Tree/mp/1954576我得到的信息是“是的,如果启用以太网交换机@1,那么当Linux内核启动时,端口2和3的PHY驱动程序和SJA1110的6 * 100BaseT端口将被加载,并且可以使用命令“ifconfig -a”查看端口” 我将 fsl-auto-yocto-bsp/build_s32g399ardb3/tmp/work/s32g399ardb3-fsl-linux/linux-s32/6.6.32-r0/git/arch/arm64/boot/dts/freescale/ s32gxxxa-rdb.dtsi 文件更改如下: 但这似乎不起作用。在我对此进行 bitbake 之后。ifconfig -a 不包含 TRX* 信息。 root@s32g399ardb3:/lib/模块 ifconfig -a can0: flags=128 mtu 16 未指定 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10(未指定) RX 数据包 0 字节 0(0.0 B) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 0 字节 0(0.0 B) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 can1:标志=128 mtu 16 未指定 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10(未指定) RX 数据包 0 字节 0(0.0 B) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 0 字节 0(0.0 B) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 eth0:标志=4099 mtu 1500 inet6 fe80::bc1a:1ff:fe94:64e prefixlen 64 scopeid 0x20 ether be:1a:01:94:06:4e txqueuelen 1000(以太网) RX 数据包 13 字节 1034(1.0 KiB) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 23 字节 3617(3.5 KiB) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 设备中断 55 基址 0xa000 lo:标志=73 mtu 65536 inet 127.0.0.1 网络掩码 255.0.0.0 inet6 ::1 前缀长度 128 范围 ID 0x10 loop txqueuelen 1000(本地环回) RX 数据包 82 字节 6220(6.0 KiB) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 82 字节 6220(6.0 KiB) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 pfe0:标志=4163 mtu 1500 inet6 fe80::204:9fff:febe:ef00 prefixlen 64 scopeid 0x20 以太 00:04:9f:be:ef:00 txqueuelen 1000(以太网) RX 数据包 0 字节 0(0.0 B) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 71 字节 18022(17.5 KiB) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 设备内存 0x46000000-46ffffff pfe1:标志=4099 mtu 1500 ether 00:04:9f:be:ef:01 txqueuelen 1000(以太网) RX 数据包 0 字节 0(0.0 B) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 0 字节 0(0.0 B) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 设备内存 0x46000000-46ffffff pfe2:标志=4099 mtu 1500 以太 00:04:9f:be:ef:02 txqueuelen 1000(以太网) RX 数据包 0 字节 0(0.0 B) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 0 字节 0(0.0 B) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 设备内存 0x46000000-46ffffff 坐0:标志= 128 mtu 1480 未指定 00-00-00-00-00-00-38-9B-00-00-00-00-00-00-00-00 txqueuelen 1000(未指定) RX 数据包 0 字节 0(0.0 B) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 0 字节 0(0.0 B) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0
查看全文
Yocto BuildでQTクリエーターをセットアップする <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ビットベイクド・メタ-ツールチェーン-qt と一緒にインストールしてください ~/yocto/build/tmp/deploy/sdk$ poky-eglibc-x86_64-arm-toolchain-qt-1.4.1.sh Qtcreatorをここからダウンロードしてください http://qt-project.org/downloads そしてそれをあなたのホームディレクトリにインストールします ビン/qtcreator.sh の編集 ソース: /opt/poky/1.4.1/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi #!/bin/sh makeAbsolute() { ケース$ 1 /*) #すでに絶対的な、それを返す エコー "$1" ;; *) # relative, 先頭に $2 を絶対値にする エコー 'makeAbsolute "$2", "$PWD"'/"$1" |sed 's,/\.$,,'            ;; ESACの } .... 「#!「/bin/sh」は重要です!!! QtCreatorで私は設定しました コンパイラとして                /opt/poky/1.4.1/sysroots/x86_64-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ Qtバージョンは          /opt/poky/1.4.1/sysroots/x86_64-pokysdk-linux/usr/bin/qmake sysroot を                     /opt/poky/1.4.1/sysroots/armv7a-vfp-neon-poky-linux-gnueabi それらをキットに入れてください ボードに接続するには、デバイスをクリックしてください---> 管理 新しいプロジェクトを構築してください そして.proにいくつか追加してくださいファイル ボードのイメージの構築: add         EXTRA_IMAGE_FEATURES = " デバッグ-微調整 ssh-server-openssh " をローカルコンフィグに合わせます bitbake core-image-sato-sdk パスワードをrootに設定する SSHのroot@[boardIP] passwd テスト接続 SFTP root@[ボードIP] QtCreatorを起動します ./qtcreator.sh メッセージの編集者: Joerg Boge プログラミングについてのより多くの情報を得るための良いビデオはこれです Beaglebone: 組み込み Linux 用 LCD タッチスクリーン GUI アプリケーション - YouTube Beaglebone: C++ ARM 組み込み Linux 開発のための Qt クリエーター - YouTube ビーグルボーン:Qt組み込みLinuxアプリケーションの例-YouTube Beagelbone用ですが、Qtのプログラミングには良いスタートです。 Dieses Dokument wurde aus folgender Diskussion erzeugt: Setup QT Creator with Yocto Build Re: YoctoビルドでQTクリエーターをセットアップします <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> " bitbakedメタツールチェーン-qt " を実行すると、問題が発生します。 依存関係チェーンがない、または構築できない依存関係チェーンは [" meta-toolchain-qt ", " packagegroup-qt-toolchain-target ", " qt4-mkspecs ", " virtual/libx11 "] でした なぜそうなのですか? Re: YoctoビルドでQTクリエーターをセットアップします <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 上記のすべての手順に従っていますが、Nitrogen 6xボードを起動した後、sftp経由で接続できません。 次のエラーがあります。誰か助けてもらえますか SFTP [email protected] ルート @192 .168.2.26のパスワード: sh: /usr/lib/openssh/sftp-server: そのようなファイルやディレクトリはありません 接続が閉じました ありがとうございます Re: YoctoビルドでQTクリエーターをセットアップします <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このセットアップで、X11なしでQWSを使用できましたか?私もfs-image-guiをうまく試したからです。しかし、Qtアプリケーションのレンダリングにはdirectfbの代わりにX11を使用します。 パフォーマンスと起動を高速化するために、X11を削除したかったのです。 そして私が思ったのは、Qt-Appを正しくコンパイルするには、meta-toolchain-qteの代わりにmeta-toolchain-qteを使わなければならないということです。もしそうなら、このDOCでそれについて言及するべきです。 Re: YoctoビルドでQTクリエーターをセットアップします <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello Florin, ぜひ試してみてください。私はそのlocal.conf機能を使用してfsl-image-guiを構築します。 機械。。= 'ユアボード' DISTRO ?= 'poky' PACKAGE_CLASSES ?= "package_rpm" EXTRA_IMAGE_FEATURES = " デバッグ-微調整 ssh-server-openssh " CORE_IMAGE_EXTRA_INSTALL_append = "openssh-sftp-server " TOOLCHAIN_HOST_TASK_append = "nativesdk-python-subprocess" 正常に動作します。デバッグ 今までテストしていませんでした Re: YoctoビルドでQTクリエーターをセットアップします <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私をもう一度 X11を必要とせずにQWS Qtウィンドウサーバーなどを使用するには、ビットベイクされたメタツールチェーン-qteを使用することについても言及しておくべきかもしれません。 どう思いますか。 よろしくお願いいたします フロリアン Re: YoctoビルドでQTクリエーターをセットアップします <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは! ターミナルから./qtcreator.sh を起動するのは私にとっては問題なく機能しますが、あまり便利ではないと思います。 Qt Creatorのビルド設定ですべての環境変数を直接設定できないのはなぜですか? Qt Creator(プロジェクト-> ビルド設定-> ビルド環境)で環境変数(現時点で環境設定-... が行っていることのすべて)を直接設定しても機能しません。誰かがその理由を知っていますか? 私にとってのその逆の方法は、.desktopを作成することです.shをすばやく実行するにはデスクトップ/スターターメニューから。 しかし、.desktop の作成には別の問題がありますUbuntu上のファイル:environment-setupが見つかりません-...(1: /mypath/qtcreator.sh:source: not found) .desktop-file で開始します- 何か問題がありますか?すでに設定されているように:ターミナルから直接実行しても問題なく機能します。 qtcreator.desktop (qtcreator.sh と同じディレクトリ内) [デスクトップエントリ] バージョン=2.8.1 名前=Qtクリエーター exec=/mypath/qtcreator.sh アイコン=QtProject-qtcreator ターミナル=本当です タイプ=アプリケーション カテゴリ=開発;井手;Qt; MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.nokia.qt.qmakeprofile;application/vnd.nokia.xml.qt.resource;text/x-qml; このステップを改善し、ターミナルからqtcreatorを起動する「問題」を回避するための他のアイデアはありますか?
查看全文
Sequential APIを使用したLwIPアプリケーションの開発 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> LwIP は、メインループ モード ("NO_SYS") (ターゲット システムで OS/RTOS が実行されていない) と OS モード (TCPIP スレッド) (ターゲット システムで OS が実行されている) の 2 つの基本モードで使用できます。mainloop モードでは、raw API のみを使用できます。OSモードでは、raw APIとSequential APIを使用できます。 OS モードでは、lwip スタックとアプリケーションは別々のタスクで実行されます。このアプリケーションは、プロセス間通信のためにRTOSメールボックスメカニズムを訴えるシーケンシャルAPI呼び出しを介してLwIPスタックと通信します。 この投稿では、MCUXpresso SDKのシーケンシャルAPIを使用してOSモードでLwIPアプリケーションを設計する方法に焦点を当てています。LwIP初心者向けです。コード snipperts は MCUXpresso SDK2.6 からのものです。 raw APIを使用してメインループモード(ベアメタルモード)でLwIPアプリケーションを設計する方法については、以下のリンクを参照してください。 Raw API を使用した LwIP アプリケーションの開発   一般に、LwIP アプリケーションには、ネットワーク インターフェイスの設定、LwIP スタックの初期化、LwIP API の使用、および構成が含まれます。 1. ネットワークインターフェースの起動 新しいネットワークインターフェースを作成するには、ユーザーは新しい 構造体netif にスペースを割り当て(ただし、その一部は初期化しません)、 netifapi_netif_addを呼び出します。     IP4_ADDR(&fsl_netif0_ipaddr, configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3);     IP4_ADDR(&fsl_netif0_netmask, configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3); IP4_ADDR(&fsl_netif0_gw, configGW_ADDR0, configGW_ADDR1, configGW_ADDR2, configGW_ADDR3);       netifapi_netif_add(&fsl_netif0, &fsl_netif0_ipaddr, &fsl_netif0_netmask, &fsl_netif0_gw, &fsl_enet_config0,                        ethernetif0_init, tcpip_input); tcpip_input API を netif_add API に入力コールバック関数として渡します。このコールバック関数は、入力パケットをプロトコル層スタックに渡します 次に、インターフェースを有効にする必要があります 「アップ」状態のインターフェースはアプリケーションで入力と出力に使用でき、「ダウン」状態はその反対の状態です。したがって、インターフェースを使用する前に、起動する必要があります。これは、インターフェースがIPアドレスを取得する方法に応じて達成できます。静的IPアドレスまたはDHCPを使用することができます。 ネットワーク・インターフェースをデフォルトのネットワーク・インターフェースとして設定します netifapi_netif_set_default(&fsl_netif0);   インターフェースを起動し、処理が可能な状態にします     netifapi_netif_set_up(&fsl_netif0); 2. LwIPスタックの初期化   tcpip_threadを作成するために tcpip_init を呼び出すと、このスレッドはLwIPコア関数に排他的にアクセスできます。他のスレッドは、メッセージ ボックスを使用してこのスレッドと通信します。また、すべてのタイマーを開始して、適切なスレッドコンテキストで実行されていることを確認します。   tcpip_init(NULL, NULL);   void   tcpip_init(tcpip_init_done_fn initfunc, void *arg) {   lwip_init();     tcpip_init_done = initfunc;   tcpip_init_done_arg = arg; if (sys_mbox_new(&tcpip_mbox, TCPIP_MBOX_SIZE) != ERR_OK) { LWIP_ASSERT ("mbox の作成に失敗しましたtcpip_thread", 0);   } #if LWIP_TCPIP_CORE_LOCKING if (sys_mutex_new(&lock_tcpip_core) != ERR_OK) { LWIP_ASSERT ("lock_tcpip_coreの作成に失敗しました", 0);   } #endif /* LWIP_TCPIP_CORE_LOCKING */   sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO); } ユーザータスクの優先度は、tcpip_threadの優先度を超えてはなりません - lwipopts.h では、tcpip_threadの優先順位 #define TCPIP_THREAD_PRIO 2 3. シーケンシャルAPIの利用  次の図に示すように、クライアント側で TCP 接続を確立する手順は次のとおりです。 netconn_new() 関数を使用して接続を作成します。 netconn_connect() 関数を使用してサーバーのアドレスに接続します。 netconn_recv() 関数と netconn_write() 関数を使用してデータを送受信します。 netconn_close()関数で接続を閉じてください。 サーバー側でTCP接続を確立するための手順は次のとおりです。 netconn_new() 関数を使用して TCP 接続を作成します。 netconn_bind() 関数を使用してサーバーをアドレスにバインドします。 netconn_listen() 関数で接続をリッスンします。 netconn_accept() 関数で接続を受け入れます。通常、この呼び出しは、クライアントがサーバーに接続するまでブロックされます。 netconn_write() と netconn_recv() を使用してデータを送受信します。 netconn_close()関数で接続を閉じてください。 ミドルウェア/lwip/contrib/appa/tcpecho/tcpecho.c スタティックボイド tcpecho_thread(void *arg) {   struct netconn *conn, *newconn;   err_t err; LWIP_UNUSED_ARG(引数);    /* 新しい接続識別子を作成します。  /* 既知のポート番号 7 への接続をバインドします。 */ #if LWIP_IPV6 conn = netconn_new(NETCONN_TCP_IPV6); netconn_bind(コネチカット州、IP6_ADDR_ANY、7); #else /* LWIP_IPV6 */ conn = netconn_new(NETCONN_TCP);   netconn_bind(コネチカット州、IP_ADDR_ANY、7); #endif /* LWIP_IPV6 */   LWIP_ERROR("tcpecho: invalid conn", (conn != NULL), return;);    /* 接続にリスニングモードに入るように指示します。   netconn_listen(conn);    (1) {      /* 新しい接続を取得します。     err = netconn_accept(conn, &newconn);    /*printf("新しい接続 %p\nを受け入れました", newconn);*/    /* 新しい接続を処理します。 */     if (err == ERR_OK) {      構造体 netbuf *buf;       void *data;       u16_t len;            while ((err = netconn_recv(Newconn, &buf)) == ERR_OK) {        /*printf("受信済み\n");*/         do { netbuf_data(buf, &data, &len); err = netconn_write(newconn, data, len, NETCONN_COPY); #if 0             if (err != ERR_OK) { printf("tcpecho: netconn_write: エラー \"%s\"\n", lwip_strerr(エラー));             } #endif } while (netbuf_next(buf) >= 0);         netbuf_delete(buf); }      /*printf("EOF を取得しました。ループしています\n");*/      /* 接続を閉じ、接続識別子を破棄します。       netconn_close(ニューコン);       netconn_delete(ニューコン);     }   } } tcpechoスレッドから、 まず、API netconn_newによってパラメータ NETCONN_TCP を使用して 1 つの新しい TCP 接続が呼び出されました。 #define netconn_new(t) netconn_new_with_proto_and_callback(t, 0, NULL) 構造体 netconn * netconn_new_with_proto_and_callback(列挙型 netconn_type t、u8_t proto、netconn_callback コールバック) { 構造体 netconn *conn;   API_MSG_VAR_DECLARE(msg);   API_MSG_VAR_ALLOC_RETURN_NULL(msg);   conn = netconn_alloc(t, コールバック); if (conn != NULL) {     err_t err;       API_MSG_VAR_REF(msg).msg.n.proto = proto;     API_MSG_VAR_REF(msg).conn = conn;     err = netconn_apimsg(lwip_netconn_do_newconn, &API_MSG_VAR_REF(msg));     if (err != ERR_OK) { LWIP_ASSERT ("pcb を解放せずに conn を解放", conn->pcb.tcp == NULL); LWIP_ASSERT("conn には recvmbox がありません", sys_mbox_valid(&conn->recvmbox)); #if LWIP_TCP LWIP_ASSERT("conn->acceptmbox は存在すべきではありません", !sys_mbox_valid(&conn->acceptmbox)); #endif /* LWIP_TCP */ #if !LWIP_NETCONN_SEM_PER_THREAD LWIP_ASSERT ("conn にはop_completedがありません", sys_sem_valid(&conn->op_completed)); sys_sem_free(&conn->op_completed); #endif /* !LWIP_NETCONN_SEM_PER_THREAD */ sys_mbox_free(&conn->recvmbox);       memp_free(MEMP_NETCONN, conn);       API_MSG_VAR_FREE(msg);       return NULL;     }   }   API_MSG_VAR_FREE(msg);   return conn; }   次に、新しく作成された接続は、API 関数 netconn_bind を呼び出すことによってポート 7 (エコー プロトコル) にバインドされます。   次に、アプリケーションは API 関数 netconn_listen を呼び出して、接続のリッスン プロセスを開始します。 無限の while(1) ループでは、アプリケーションは API 関数 netconn_accept を呼び出して新しい接続を待ちます。この API は、着信接続がない場合にアプリケーション タスクをブロックします。 受信接続がある場合、アプリケーションは API 関数 netconn_recv を呼び出してデータの受信を開始できます。着信データは netbuf で受信されます。       アプリケーションは、netbuf API 関数netbuf_dataを呼び出すことで、受信したデータを取得できます。 err_t netbuf_data(struct netbuf *buf, void **dataptr, u16_t *len) { LWIP_ERROR ("netbuf_data: 無効な buf", (buf != NULL), return ERR_ARG;);   LWIP_ERROR("netbuf_data: invalid dataptr", (dataptr != NULL), return ERR_ARG;);   LWIP_ERROR("netbuf_data: invalid len", (len != NULL), return ERR_ARG;);   if (buf->ptr == NULL) {     return ERR_BUF;   } *dataptr = buf->ptr->ペイロード;   *len = buf->ptr->len;   return ERR_OK; }   受信したデータは、API 関数 netconn_write を呼び出すことによって、リモート TCP クライアントに送り返されます (エコーされます)。 Netconn_close と netconn_delete は、それぞれ netconn 接続を閉じて削除するために使用されます     4. LwIPの設定 lwipopts.h は、lwIP とそのすべてのモジュールを完全に設定するために使用できるユーザーファイルです。lwIP が提供するすべてのオプションを定義する必要はありません。オプションを定義しない場合は、デフォルト値が使用されます。したがって、あなたのlwipopts.hlwIP の動作の多くをオーバーライドする方法を提供します。 マルチヘッドモードでは、.0 に #define NO_SYS する必要があります。 evkbimxrt1050_lwip_tcpecho_freertos\source\lwipopts.hを参照してください。 … #if USE_RTOS   /** * SYS_LIGHTWEIGHT_PROT==1: 特定のタスク 間保護が必要な場合 * バッファの割り当て、割り当て解除、およびメモリ中の重要な領域 * 割り当てと割り当て解除。  */ #define SYS_LIGHTWEIGHT_PROT 1   /** * NO_SYS==0: RTOSを使用  */ #define NO_SYS 0 /** * LWIP_NETCONN==1: Netconn API を有効にする (api_lib.c の使用が必要)  */ #define LWIP_NETCONN 1 /** * LWIP_SOCKET==1: ソケットAPIを有効にする(sockets.cの使用が必要)  */ #define LWIP_SOCKET 1   /** * LWIP_SO_RCVTIMEO==1: ソケット/ネットコンの受信 タイムアウトを有効にし、 ※SO_RCVTIMEO加工中です。  */ #define LWIP_SO_RCVTIMEO 1 …   Re: Sequential APIを使用したLwIPアプリケーションの開発 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Daniel, netif API呼び出しを行う前に、ネットワーク接続がアクティブである必要はありませんか?netif_dhcp_start() を呼び出すときにネットワーク ケーブルが接続されていないのに、後で接続すると、dhcp 状態変数が DHCP_STATE_BOUND になるのが見えません。だから、リンクがアップまたはダウンしたときに知らせるコールバックまたはステータス変数があると思いますが、MCUXpresso SDKまたはLwIPでそれを見つけることができないようです。リンクステータスはどのように検出および報告されますか? ありがとうございます!
查看全文