Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
S32G引脚排列 Hello, 我可能错过了一些东西,但不幸的是我找不到 S32G 引脚排列描述。 在数据表中,它提到“有关封装引脚排列和信号描述,请参阅设备参考手册。” 这是指“S32G3 参考手册”还是“GMAC/Serdes 子系统参考手册”? 但它们均不包含引脚排列描述。 我正在寻找所有符号名称/封装类型/I/O类型/功能编号/引脚描述之间的映射表。 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 我同意你的看法。 顺祝商祺! 陈银 回复:S32G引脚排列 你好,陈音, 结合QSG/UG/Sch的信息,平台板上s32g到SGMII端口的链接结论如下 S32G -> Y18 -> PCIE1_TXN1/SGMII_PFE_MAC1 -> 处理器板子卡 -> 平台板子卡 -> SERDES_1_TX0N (serdes S1 L0) -> eth AQR107,单端口,10Gbps PHY -> SGMII eth 端口 对吗? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 关于您的问题: Q1:“PCIe1 L1”是指PCIe1 Lane1,对吗? [CY] 是 Q2:“PFE_MAC1_SGMII”是指SGMII(PFE MAC1),对吗? [CY] 是 Q3:“SERDES S1 L0”表示serdes1 Lane0,对吗? [CY] 这里似乎有点混乱,因为只有 SERDES1_LANE1 可以配置为 SGMII_PFE_MAC1。 但从原理图上看,PCIe1_lane1(或者叫Serdes1_lane1)通过连接器连接到SGMII PHY,而连接器上对应的针脚叫做serdes1_xx0xx,这或许就是黄色箭头后写成“SERDES S1 L0(ENET AQR107)”的一个可能原因。 无论如何,在我看来,您可以参考 EVB UG 中的以下图表来了解 Serdes 的连接。 希望有帮助。 顺祝商祺! 陈银 回复:S32G引脚排列 你好, ChenYin, 抱歉,我不明白。 让我换一种方式来问这个问题。 in S32G-VNP-EVB-QSG.pdf p. 4 It shows "PCIe1 L1 / PFE_MAC1_SGMII -> SERDES S1 L0 (ENET AQR107)", so Q1:“PCIe1 L1”是指PCIe1 Lane1,对吗? Q2:“PFE_MAC1_SGMII”是指SGMII(PFE MAC1),对吗? Q3:“SERDES S1 L0”表示serdes1 Lane0,对吗? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 您所指的图片只是一个框图,对于实际连接,您可以参考EVB的原理图了解详情。 关于组合,所有组合均列在 RM 提到的表格中。没有其他组合。 顺祝商祺! 陈银 回复:S32G引脚排列 @chenyin_h ,感谢更新。 顺便说一句,图片显示“PCIe1 L1 / PFE_MAC1_SGMII -> SERDES S1 L0 (ENET AQR107) 假设 Q1:“PCIe1 L1”是指PCIe1 Lane1,对吗? Q2:“PFE_MAC1_SGMII”是指SGMII(PFE MAC1),对吗? Q3:“SERDES S1 L0”表示serdes1 Lane0,对吗? 如果答案全部正确,那么RM表405中的设置是什么。 SerDes_0工作模式和表406 SerDes_1工作模式? 我找不到 PCIe1 通道 1 + SGMII (PFE_MAC1) 的组合。 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈,对于延迟深感抱歉。 是的,正确,它们是Y18的功能,而且,serdes功能组合如下: 对于Serdes相关的详细功能,您还可以参考S32g2 RM的52.1.2。 顺祝商祺! 陈银 回复:S32G引脚排列 你好, ChenYin, 现在我明白发生了什么事。 图中显示的是 PFE_MAC1_SGMII,这意味着 SGMII_PFE_MAC1 而不是 PFE_MAC1_TXD_O。 因此 PCIE1_TX1_N 和 SGMII_PFE_MAC1 都是 Y18。 我说得对吗? 谢谢! 回复:S32G引脚排列 你好, ChenYin, 下图显示 PCIe1 L1 和 PFE_MAC1_SGMII 是互斥的吗? 如果是,那就意味着 PCIE1_TX1_N 和 PFE_MAC1_TXD_O[0] 是互斥的,对吗? 但是 PCIE1_TX1_N 是 Y18,PFE_MAC1_TXD_O 是 T23。 有什么问题吗? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 是的,您也可以从TAB:Misc with pin control中找到Y18的对应信息,这也是我们提到的文档的一部分(Row144)。来自我的) 顺祝商祺! 陈银 回复:S32G引脚排列 你好,陈音, 您说的是 773 行,对吗? Y18 怎么样?我在哪里可以找到它? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 不确定您是否指的是函数 PFE_MAC0_TXD_O[0]?文档中似乎也有描述。 点击Tab:IO信号表,第771行,PJ_00/U19/PFE_MAC0_TXD_O[0],请问这是您要找的具体信息吗? 顺祝商祺! 陈银 回复:S32G引脚排列 你好,陈音, 谢谢你的信息。 它很有帮助但似乎还不完整。 例如,引脚 U19 的功能应该是 PFE_MAC0_TXD0。 但是我在哪个文档中可以找到这些信息? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的提问。 您可以打开您的S32G3 RM,然后单击附件,如下面的快照所示:(从Adobe Reader 2024.001捕获,使用不同工具时可能会有所不同) 然后您可能会发现附加了几个 xlsx 文件,S32G3_IOMUX 文件可能是您正在寻找的文件之一。 希望有帮助 顺祝商祺! 陈银
View full article
JN-5189 WDT窗口看门狗使用详解 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 介绍如何在 JN5189 中使用窗口式寻呼机定时器的用户指南。文档介绍了如何在JN5189中使用WDT窗口看门狗。 智慧城市
View full article
Video - Efika MX Smartbook Android Flash <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 投稿者 mgrunditz on 2010年10月22日 全般
View full article
MIMXRT1180-EVKのボードデザインファイルの提供状況 Hello, MIMXRT1180-EVKの基板設計ファイルを共有することは可能ですか?ユーザーマニュアル(UM12021)には、残念ながら機能しないリンクがあります(資料「MIMXRT1180-EVK-DESIGNFILES」は存在しません)。もちろん、リンクを修正することも私を助けます。 ありがとうございました。 敬具 碧玉 Re:MIMXRT1180-EVKのボード設計ファイルの可用性 こんにちは、発売日が確定するまで、ドキュメントはまだページで利用できません。 営業担当者に連絡することをお勧めします。 よろしくお願いいたします パベル
View full article
SMAC_1.001_15.08.2012.PEupd <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> SMAC 适用于 MC13213 和 MC13201 的 2.4 GHz 堆栈 描述 简单的MAC(飞思卡尔SMAC)实现。 组件 SMAC.PEupd Dependencies SPHY 许可 (c)版权所有飞思卡尔半导体,2012 采用处理器专家组件:Erich Styger <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> SMAC 适用于 MC13213 和 MC13201 的 2.4 GHz 堆栈 描述 简单的MAC(飞思卡尔SMAC)实现。 组件 SMAC.PEupd Dependencies SPHY 许可 (c)版权所有飞思卡尔半导体,2012 采用处理器专家组件:Erich Styger 组件交换
View full article
LX2160A上の10Gtekトランシーバーを使用したSFP +操作 Hi,  「ethtool」コマンドを使用してVLANを設定しようとしていますが、以下に示すようにオフロードステータスに問題が発生しています。ここで、インターフェイスeth1は、背後に10Gbpsトランシーバーを備えたLX2160A SFP+ポートです。オフロードステータスが正しく機能していないだけでなく、「サポートされている情報」が適切に再ルーティングされていません。これをPHYのないシナリオと見なすべきかどうかは不明です。ただし、eth1 は下の 2 番目のブロックとして双方向に機能しています。ethtoolが不完全に動作すると予想されていますか? ethtool 情報: root@localhost:~# ethtool -K eth1 rxvlan on txvlan オン rx-vlan-offload を変更できません tx-vlan-offload を変更できません デバイスの機能を変更できませんでした root@localhost:~# ethtool eth1 eth1 の設定: サポートされているポート: [ ] サポートされているリンクモード:報告されていません サポートされているポーズフレームの使用:いいえ 自動ネゴシエーションをサポート:いいえ サポートされている FEC モード: 報告されていません アドバタイズされたリンク モード: 報告されません 宣伝されているポーズフレームの使用:いいえ アドバタイズされたオートネゴシエーション: いいえ アドバタイズされた FEC モード: 報告されません スピード:10000Mb / s デュプレックス:フル ポート:ツイストペア PHヤード:0 トランシーバー:内部 オートネゴシエーション:オフ MDI-X: 不明 検出されたリンク:はい root@localhost:~# ethtool -k eth1 eth1 の機能: rx-checksumming: オン tx-checksumming: オン tx-checksum-ipv4: オン tx-checksum-ip-generic:オフ[修正済み] tx-checksum-ipv6: オン tx-checksum-fcoe-crc:オフ[修正済み] tx-checksum-sctp:オフ[修正済み] scatter-gather: オン tx-scatter-gather:オン tx-scatter-gather-fraglist: オフ [修正済み] tcp-segmentation-offload: オフ tx-tcp-segmentation: オフ [修正済み] tx-tcp-ecn-segmentation: オフ [修正済み] tx-tcp-mangleid-segmentation: オフ [修正済み] tx-tcp6-segmentation: オフ [修正済み] generic-segmentation-offload: オン generic-receive-offload: オン large-receive-offload: オフ [固定] rx-vlan-offload: オフ [修正済み] tx-vlan-offload: オフ [修正済み] NTUPLE-filters: オフ [修正済み] receive-hashing: off [固定] HighDMA:オン rx-vlan-filter: オフ [修正済み] vlan-challenged:オフ[修正済み] tx-lockless:オン[修正済み] netns-local: オフ [修正済み] tx-gso-robust: オフ [固定] tx-fcoe-segmentation: オフ [固定] tx-gre-segmentation: オフ [修正済み] tx-gre-csum-segmentation: オフ [修正済み] tx-ipxip4-segmentation: オフ [固定] tx-ipxip6-segmentation: オフ [固定] TX-udp_tnl-セグメンテーション:オフ[固定] tx-udp_tnl-csum-segmentation: オフ [修正済み] tx-gso-partial: オフ [修正済み] tx-tunnel-remcsum-segmentation: オフ [修正済み] tx-sctp-segmentation: オフ [修正済み] TX-ESP-Segmentation: オフ [固定] tx-udp-segmentation: オフ [固定] tx-gso-list: オフ [修正済み] FCOE-MTU: オフ [修正済み] tx-nocache-copy: オフ ループバック:オフ[修正済み] RX-FCS:オフ[修正済み] RX-ALL:オフ[修正済み] tx-vlan-stag-hw-insert: オフ [修正済み] rx-vlan-stag-hw-parse: オフ [修正済み] rx-vlan-stag-filter: オフ [修正済み] L2-FWD-Offload: オフ [修正済み] hw-tc-offload: オン ESP-HW-Offload: オフ [修正済み] esp-tx-csum-hw-offload: オフ [修正済み] rx-udp_tunnel-port-offload: オフ [修正済み] tls-hw-tx-offload: オフ [修正済み] tls-hw-rx-offload: オフ [修正済み] RX-GRO-HW: OFF [修正済み] tls-hw-record: オフ [修正済み] rx-gro-list: オフ macsec-hw-offload: オフ [修正済み] ifconfig & ping: root@localhost:~# ifconfig eth1 eth1: flags=4163 MTU 1500 INETの192.168.1.11ネットマスク255.255.255.0放送192.168.1.255 inet6 fe80::ac9e:13ff:feda:4258 prefixlen 64 scopeid 0x20 ether ae:9e:13:da:42:58 txqueuelen 1000 (イーサネット) RXパケット 184バイト 25480 (25.4 KB) RX エラー 0、ドロップ、0、オーバーラン、0、フレーム 0 TX パケット 13 バイト 1006 (1.0 KB) TX エラー 0、ドロップ、0 オーバーラン、0 キャリア、0、コリジョン 0 root@localhost:~# Ping 192.168.1.228 ピン192.168.1.228(192.168.1.228)56(84) バイトのデータ。 192.168.1.228 からの 64 バイト:icmp_seq=1 ttl=64 時間=0.236さん Thanskとよろしく。 Re:LX2160A上の10Gtekトランシーバーを使用したSFP +操作 NETIF_F_HW_VLAN_CTAG_RX、drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c のnetdev_initにサポートされている機能として記載されている必要があります。 NXPの最新SDKリリースで提供されているDPAA2 Linuxカーネルドライバーを確認しましたが、この機能はサポートされていません。 そのため、LX2160Aプラットフォーム上でコマンド「ethtool -K eth1 rxvlan on」を実行することは不可能です。
View full article
Android kk4.4.3_2.0.0-beta on 3.10 linux kernel on SABRASD DQ&DL board でブートロゴの数を 4 から 2 に変更する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> はじめに kk4.4.3_2.0.0-betaシステムには、最初は4つのブートロゴがあります:ubootロゴ\linuxロゴ\android initロゴ\androidアニメーション。ubootロゴを使用してLinuxロゴとandroidinitロゴをカバーし、最初の3つのロゴを1つのロゴに組み合わせる予定です。このガイドでは、オンボードsasbresd_6dq sabresd_6dlでubootUIをLinuxカーネルとandroidinitにスムーズに移行する方法を段階的に説明します。 パッチの核となるアイデア: ubootからカーネルまで表示クロックを維持する必要があります。 カーネルの起動時に、ubootロゴデータを保存するためのframbufferを壊しません。 Android Initロゴの表示を無効にする必要があります。 パッチはubootで何をしますか 1、ubootが終了した後、ビデオをシャットダウンすることはできません。パッチは関数arch_preboot_os()で削除されたコードを削除します 2、HSPクロック(IPUクロック)をLinux 3.10と同じに保ちます 以下は、sabrasd DQボードの設定です。 osc(24MHz) -> pll2(528MHz) -> mmdc_ch0(528MHz) -> ipu1_hsp_clk(264MHz) 以下は、sabrasd DLボードの設定です。 osc(24MHz) -> pll3(480MHz) -> pll3_pdf1(540MHz) -> ipu1_hsp_clk(270MHz) 3、ピクセルクロックをLinux3.10と同じに保ちます 以下は、sabrasd DQボードの設定です。 osc(24MHz) -> pll2(528MHz) -> pll2_pfd0(452.57MHz) -> ldb_di1(64.65MHz)-> ipu1_di1(64.65MHz)-> ipu1_pixel(64.65MHz) 以下は、sabrasd DLボードの設定です。 osc(24MHz) -> pll2(528MHz) -> pll2_pfd0(452.57MHz) -> ldb_di1(64.65MHz)-> ipu1_di1(64.65MHz)-> ipu1_pixel(64.65MHz) 4、PWMクロックを保持 カーネルでは、lvdsパネルを駆動するための100%デューティpwmがあります。したがって、パッチはパッドSD1_DATA3を100%デューティpwmピンに設定しました。 5、 fbbase と fbmem を bootargs に追加します FBBase は uboot ロゴの PHY Addr です。したがって、パッチは cmdline.we は linux 3.10 の予約アドレスに対して 1M にアライメントされたアドレスを割り当てる必要があります。 パッチはLinux3.10で何をしますか 1、FBBASEからのアドレスを予約します 2、システムがclk-imx6q.cでクロックを初期化するときにIPU関連のクロックを保持します パッチは、ldb_di1_clk、ipu1_di1_clk、ipu1_clk、pwm1_clkを有効にします。pll2 および pll3 関連のクロックをディスエーブルにしないでください。このクロックは、IPU クロックのソースである可能性があります。 レジスタでldb_di1_clk、ipu1_di1_clkなどを有効にしますが、clk_prepare_enable()という関数を使用する必要があります。システムはユーザー数が0であるため、一部のクロックを閉じる可能性があるため(clk_prepare_enable()を使用すると、それとその親ユーザー数は1を追加します) 3、内容に応じてパネルを点灯させるCABCを無効にします。 dtsファイルのcabc_enableを変更します。 4、フレームバッファが登録された後、プローブ内のグローバルアルファとカラーキーの設定を移動します。フレームバッファが使用するレジスタIPU割り込みを、IPU hspクロックがイネーブルになるまで遅延させます。グローバルアルファとカラーキーの設定とレジスタIPU割り込みにより、hspクロックが無効になる場合があります。 Android Init ロゴの表示を無効にする Android Init のロゴはテキスト「android_」です。前の3つのロゴが同じロゴに見えるように、表示するには無効にする必要があります。パッチ 92-system_coreはこの問題を解決します。 パッチの環境: ハードウェア: SABRASD DQ&DL ソフトウェア:kk4.4.3_2.0.0-beta(linux3.10) パッチの使用方法: $ cd my_android/kernel_imx/ $パッチ-p1 < ./92-kernel_v2 $ cd my_android/bootable/bootloader/uboot-imx/ $パッチ-p1 < ./92-uboot_v2 $ cd my_android/システム/コア $パッチ-p1 < 92-system_core 注記: 1、この機能をsabraSD dq&dlボードに使用したい場合は、このパッチでOKです。このパッチを使用した後、sxなどの他のボードに変更したい場合、カーネルのロゴペンギンが表示されないという問題に遭遇する可能性があります。 このファイルは次のように変更できます。 arch/arm/configs/imx_v7_android_defconfig                 CONFIG_LOGO=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y #CONFIG_MX6_CLK_FOR_BOOTUI_TRANS=y #CONFIG_MX6_CLK_FOR_BOOTUI_TRANS_LVDS_IPU1_DI1=y 日時:SABRASD DQ&DLボード上の3.10 linuxカーネル上のAndroid kk4.4.3_2.0.0-betaのブートロゴの数を4から2に変更する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> すみません これは機能しますか? このパッチを適用しました。 ubootで「ipuv3_fb_shutdown()」を削除した後 カーネルで起動できません。 何か見落としていませんか?
View full article
QN908x FreeRTOS BLE 抽象化レイヤースタックを使用して、タスクとキューを作成します。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   はじめに このドキュメントでは、FreeRTOS の 2 つの機能、つまりタスクの作成と、アプリケーションの汎用機能をトリガーする方法としてのキューの使用に焦点を当てています。NXPのQN908x用SDK抽象化レイヤーは、FreeRTOSの使用と制御機能をより簡単にする方法をお客様に提供することを目的としています。 ハードウェア要件: QN9080DK ソフトウェア要件: MCUXpresso IDE v11.1.0またはそれより新しい QN908XCDK SDK with BLE stack and examples (SDK Builder からダウンロードできます) このドキュメントは、SDK のワイヤレス UART の例に基づいています。 必要な変数と定義の設定 QN9080 の SDK に含まれている wireless_uart の例の FreeRTOS バージョンをインポートします。 注: デバッグコンソールとして UART を選択してください。 2.QN9080 ボードのデフォルト ロールを変更するには、 PROJECT_FILE_NAME > ソース > wireless_uart.c > BleApp_Config() で mGapRole 変数の定義を gGapCentral_c から gGapPeripheral_c に変更する必要があります。 //wireless_uart.c //static void BleApp_Config(void) { /* By default, always start node as GAP central */ //mGapRole = gGapCentral_c; mGapRole = gGapPeripheral_c; (void)Serial_Print(gAppSerMgrIf, "\n\rWireless UART starting as GAP Peripheral, press the role switch to change it.\n\r", gAllowToBlock_d); mAdvState.advOn = TRUE; mScanningOn = FALSE; //...}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 3.フレームワークの osNumberOfMessageQs のマクロ値 osNumberOfMessageQs PROJECT_FILE_NAME >> OSAbstracion > Interface > fsl_os_abstraction_config.h を 0 >値に変更することが重要です。  //fsl_os_abstraction_config.h #ifndef osNumberOfMutexes #define osNumberOfMutexes 5 #endif #ifndef osNumberOfMessageQs #define osNumberOfMessageQs 1 #endif #ifndef osNumberOfMessages #define osNumberOfMessages 10 #endif‍‍‍‍‍‍‍‍‍ //...‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 次に、タスクの実装を開始するには、ファイルを編集する必要があります: PROJECT_FILE_NAME >フレームワーク > OSAbstracion > Source > fsl_os_abstraction_free_rtos.c.        まず、メインタスク関数のプロトタイプを作成し、次に「OSA_TASK_DEFINE」定義を使用してタスクを定義します。構文は次のとおりです。 この機能はスレッド管理の一部であり、ユーザーが新しいスレッドの作成を定義し、優先度とスタック要件を制御するのに役立ちます。関数定義では、次のパラメータが使用されます。 name: Sは、タスクとして使用される関数の名前である必要があります priority: スケジューラは、このパラメーターを使用して、関数にマイナーまたはメジャーの優先度を付与します。 instances: このパラメーターは、メモリを最適な方法で管理するために、インスタンスの数を制限する制御を提供します。 stackSz : このパラメーターにはデフォルト値があり、抽象化レイヤーによって次のように定義されます: gMainThreadStackSize_c 1024 バイト。 useFloat : このパラメータはスレッド定義構造の一部であり、ブール値であり、スレッドが浮動小数点を使用するかどうかを定義します。 //fsl_os_abstraction_free_rtos.c /*! ********************************************************************************* ************************************************************************************* * Private functions ************************************************************************************* ********************************************************************************** */ OSA_TASK_DEFINE(startup_task, gMainThreadPriority_c, 1, gMainThreadStackSize_c, 0) ; void vfnTaskPWM(void* param); //New Task Definition OSA_TASK_DEFINE(vfnTaskPWM, 1, 1, 500, FALSE ); osaTaskId_t gAppTestTask1Id = 0; // TestTask1 Id osaTaskId_t pwmTask_queue = 0; //get defines from wireless_uart int main (void) { /* Initialize MCU clock */ hardware_init(); OSA_TaskCreate(OSA_TASK(startup_task), NULL); //Task and Queue creation. gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL); //Task Creation pwmTask_queue = OSA_MsgQCreate(1); //Scheduler starting vTaskStartScheduler(); return 0; } //..‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 4. 関数: OSA_TaskCreate は、次のように osaTaskId_t 変数を作成するために必要な taskID を返します: osaTaskId_t gAppTestTask1Id = 0; また、使用する FreeRTOS キューの別の osaTaskId_t 変数も返します。 osaTaskId_t pwmTask_queue = 0.‍‍‍‍‍‍‍ 5. main関数内で、startup_taskが作成されるのと同じ方法でタスクを作成します。 gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL);‍‍‍‍‍‍‍ 6.また、同じタイプの変数を使用し、OSA_MsgQCreate() 関数を使用して新しいキューを作成するためにキューを作成する必要があります。 pwmTask_queue = OSA_MsgQCreate(1);‍‍‍‍‍‍‍ 7. このステートメントの後、スケジューラーは開始する必要があります: vTaskStartScheduler(); 8. wireless_uart.cでキュー用に extern 変数として作成された FILE pwmTask_queueを追加する必要があります。 //wireless_uart.c static uint8_t gAppSerMgrIf; static uint16_t mAppUartBufferSize = mAppUartBufferSize_c; static volatile bool_t mAppUartNewLine = FALSE; static volatile bool_t mAppDapaPending = FALSE; extern osaMsgQId_t pwmTask_queue; /************************************************************************************ ************************************************************************************* * Private functions prototypes ************************************************************************************* ************************************************************************************/ /* Gatt and Att callbacks */ static void BleApp_AdvertisingCallback(gapAdvertisingEvent_t *pAdvertisingEvent);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ アプリケーションコードでのタスクとキューの実装 この例では、 OSA_MsgQPut() を使用して、中央の周辺機器から受信したメッセージをキューに配置するように実装しました。 //wireles_uart.c static void BleApp_ReceivedUartStream(deviceId_t peerDeviceId, uint8_t *pStream, uint16_t streamLength) { static deviceId_t previousDeviceId = gInvalidDeviceId_c; char additionalInfoBuff[10] = { '\r', '\n', '[', '0', '0', '-', 'M', ']', ':', ' '}; uint8_t *pBuffer = NULL; uint32_t messageHeaderSize = 0; if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { streamLength += (uint32_t)sizeof(additionalInfoBuff); } /* Allocate buffer for asynchronous write */ pBuffer = MEM_BufferAlloc(streamLength); if (pBuffer != NULL) { /* if this is a message from a previous device, print device ID */ if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { messageHeaderSize = sizeof(additionalInfoBuff); if (mAppUartNewLine) { mAppUartNewLine = FALSE; } additionalInfoBuff[3] = '0' + (peerDeviceId / 10U); additionalInfoBuff[4] = '0' + (peerDeviceId % 10U); if (gGapCentral_c != maPeerInformation[peerDeviceId].gapRole) { additionalInfoBuff[6] = 'S'; } FLib_MemCpy(pBuffer, additionalInfoBuff, sizeof(additionalInfoBuff)); } FLib_MemCpy(pBuffer + messageHeaderSize, pStream, (uint32_t)streamLength - messageHeaderSize); /**** Adding a message into a Queue ****/ OSA_MsgQPut(pwmTask_queue, (void*)&pBuffer); /**************************************/ (void)Serial_AsyncWrite(gAppSerMgrIf, pBuffer, streamLength, Uart_TxCallBack, pBuffer); } /* update the previous device ID */ previousDeviceId = peerDeviceId; }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ この関数は、プロジェクトの main() 関数の前に作成された外部キュー変数を指します。また、 BleApp_ReceivedUartStream()で受信したメッセージのバッファポインタを指し、これらのパラメータはOSA_MsgQGet() 関数を使用してアクセスできます。 osaStatus_t OSA_MsgQGet(osaMsgQId_t msgQId, void *pMessage, uint32_t millisec)‍‍ この関数は、メッセージキューの先頭からメッセージを取得し、この関数のパラメータは次のとおりです。 msgQId : キュー関数の識別子です。 pMessage : OSA_MsgQPut() から送信された同じメッセージへのポインタです。 millisec : メッセージを待つミリ秒数です。 作成されたタスクの内部: vfnTaskPWM() には、メッセージがキューにあるかどうかを確認する無限の while ループがあり、これは os_abstraction 関数を使用して実現されます。 タスクの実装の残りの部分は、別の C ファイルにあります。外部キュー変数は、タスク関数プロトタイプに加えて、このファイルで定義されています。 /*pwmApplication.c*/ /*Global Variables*/ static uint8_t gAppSerMgrIf; extern osaMsgQId_t pwmTask_queue; /*Function Prototypes*/ void signalConfigValues(int red, int green, int blue); void getValuesRGB(uint8_t* msgString); int getInt(char *stringInteger, int size); /****Task Definition****/ void vfnTaskPWM(void* param); /* * Task to configure the PWM pins and start the timer * */ void vfnTaskPWM(void* param) { uint8_t* msgString; char msgString1[20] = { '\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0'}; while(1) { /* * If there is a new message on queue the value will return a 0 according to the OSA_MsgQGet function * to compare the incoming message * */ while((OSA_MsgQGet(pwmTask_queue,(void*)&msgString,10)) == 0){ //shift-up the pointer value to get the payload message if(*msgString == '\r'){ while(*msgString != 32){ msgString++; } msgString++; } FLib_MemCpy(msgString1,msgString,20); if(FLib_MemCmp(msgString1, "OFF", 4)){ (void)Serial_Print(gAppSerMgrIf,"\n\r OFF: ", gAllowToBlock_d); //configure the PWM new function signalConfigValues(0,0,0) and StartTimers(CTMRA,CTMRB) signalConfigValues(0,0,0); } else{ //a function to convert values from a string to integers getValuesRGB(msgString); } } } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
View full article
8 位微控制器的 USB CDC 项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好,   我想为飞思卡尔社区贡献一个简单的项目,在这个项目中我通过虚拟 COM(CDC)开发了定制的 USB 通信。 该项目基于 8 位微控制器 - 特别是 MC9S08JS 系列 - 在 CodeWarrior Development Studio 10.3 上运行。 我附加了一个包含两个内部文件的 zip 文件。其中一个是完整的CodeWarrior项目,另一个是USB CDC驱动程序。 文件运行正常,显然它们是完全安全的。用户只需添加自己的例程即可通过端点功能发送和接收数据。   我真的希望它可以帮助某人以更简单、更快捷的方式构建 USB CDC 项目。   顺祝商祺! Mauricio. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好,   我想为飞思卡尔社区贡献一个简单的项目,在这个项目中我通过虚拟 COM(CDC)开发了定制的 USB 通信。 该项目基于 8 位微控制器 - 特别是 MC9S08JS 系列 - 在 CodeWarrior Development Studio 10.3 上运行。 我附加了一个包含两个内部文件的 zip 文件。其中一个是完整的CodeWarrior项目,另一个是USB CDC驱动程序。 文件运行正常,显然它们是完全安全的。用户只需添加自己的例程即可通过端点功能发送和接收数据。   我真的希望它可以帮助某人以更简单、更快捷的方式构建 USB CDC 项目。   顺祝商祺! Mauricio. 概述 回复:8 位微控制器的 USB CDC 项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Mauricio, 很高兴您发布了MC9S08JS 的 USB CDC 项目。 我在MC9S08JS16 上成功运行了它,并且能够接收数据。但是,在将数据发送回主机时遇到了一些问题。基本上,它只能正常工作一次,而接收数据仍然正常。 我做错了什么? 这是我的代码的一部分: ...主循环: 为了(;;) {      Check_USBBus_Status(); 如果(CheckEndPointOUT(EP2)) { 端点输出(EP2); 如果(EP2_Buffer[0] == 'X')           { Led_PutVal(ledRed); EP3_Buffer[0] = 'A'; 端点_IN(EP3,1);           }           else Led_PutVal(ledOff);      } } 我确信我可以正确接收字节,因为我可以通过发送“X”字母来打开 LED,并通过发送其他内容来关闭它。 第一次发送“X”后,它会正确地响应“A”,但那是唯一的一个。然后可以打开/关闭 LED,但不再向主机发送回数据。 你能幫我嗎? 提前谢谢! 顺祝商祺! Michal
View full article
使用 QN908x FreeRTOS BLE 抽象层堆栈创建任务和队列。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   简介 在本文档中,我们重点介绍 FreeRTOS 的两个功能的使用:创建任务和使用队列作为触发应用程序中的通用功能的方式。NXP 针对 QN908x 的 SDK 抽象层旨在为客户提供更简单的 FreeRTOS 使用和控制功能方式。 硬件要求: QN9080DK 软件要求: MCUXpresso IDE v11.1.0或更新版本 带有 BLE 堆栈和示例的 QN908XCDK SDK(可从 SDK Builder 下载) 本文档基于 SDK 中的无线 UART 示例。 设置所需的变量和定义 导入 QN9080 的 SDK 中包含的 wireless_uart 示例的 FreeRTOS 版本。 注意:请务必选择 UART 作为调试控制台。 2.为了更改 QN9080 板的默认角色,需要更改 PROJECT_FILE_NAME > source > wireless_uart.c > BleApp_Config() 中的 mGapRole 变量的定义,从 gGapCentral_c 更改为 gGapPeripheral_c 。 //wireless_uart.c //static void BleApp_Config(void) { /* By default, always start node as GAP central */ //mGapRole = gGapCentral_c; mGapRole = gGapPeripheral_c; (void)Serial_Print(gAppSerMgrIf, "\n\rWireless UART starting as GAP Peripheral, press the role switch to change it.\n\r", gAllowToBlock_d); mAdvState.advOn = TRUE; mScanningOn = FALSE; //...}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 3.将 PROJECT_FILE_NAME > framework > OSAbstracion > Interface > fsl_os_abstraction_config.h 中的osNumberOfMessageQs的宏值更改为值 > 0 非常重要。 //fsl_os_abstraction_config.h #ifndef osNumberOfMutexes #define osNumberOfMutexes 5 #endif #ifndef osNumberOfMessageQs #define osNumberOfMessageQs 1 #endif #ifndef osNumberOfMessages #define osNumberOfMessages 10 #endif‍‍‍‍‍‍‍‍‍ //...‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 然后,要开始任务实施,需要编辑文件:PROJECT_FILE_NAME > framework > OSAbstracion > Source > fsl_os_abstraction_free_rtos.c 。 首先,我们创建主任务函数的原型,然后使用“OSA_TASK_DEFINE”定义来定义任务。语法如下: 该函数是线程管理的一部分,它帮助用户定义新线程的创建,控制优先级和堆栈要求。函数定义中使用了以下参数。 name :应该是用作我们任务的函数的名称 优先级:调度程序将使用此参数为我们的函数授予次要或主要优先级。 实例:此参数使我们能够限制实例的数量,以便以最优的方式管理内存。 stackSz :该参数有默认值,由抽象层定义为:gMainThreadStackSize_c 为1024字节。 useFloat :此参数是线程定义结构的一部分,是一个布尔值,它定义线程是否使用浮点数。 //fsl_os_abstraction_free_rtos.c /*! ********************************************************************************* ************************************************************************************* * Private functions ************************************************************************************* ********************************************************************************** */ OSA_TASK_DEFINE(startup_task, gMainThreadPriority_c, 1, gMainThreadStackSize_c, 0) ; void vfnTaskPWM(void* param); //New Task Definition OSA_TASK_DEFINE(vfnTaskPWM, 1, 1, 500, FALSE ); osaTaskId_t gAppTestTask1Id = 0; // TestTask1 Id osaTaskId_t pwmTask_queue = 0; //get defines from wireless_uart int main (void) { /* Initialize MCU clock */ hardware_init(); OSA_TaskCreate(OSA_TASK(startup_task), NULL); //Task and Queue creation. gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL); //Task Creation pwmTask_queue = OSA_MsgQCreate(1); //Scheduler starting vTaskStartScheduler(); return 0; } //..‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 4. 函数:OSA_TaskCreate 返回一个taskID ,需要创建一个 osaTaskId_t 变量,如下所示: osaTaskId_t gAppTestTask1Id = 0;以及我们将要使用的 FreeRTOS 队列的另一个osaTaskId_t变量: osaTaskId_t pwmTask_queue = 0.‍‍‍‍‍‍‍ 5. 在主函数中,我们将以与创建 startup_task 相同的方式创建我们的任务: gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL);‍‍‍‍‍‍‍ 6.我们还需要使用相同类型的变量创建队列,并使用 OSA_MsgQCreate() 函数创建一个新的队列: pwmTask_queue = OSA_MsgQCreate(1);‍‍‍‍‍‍‍ 7. 执行完这些语句后,调度程序应该启动: vTaskStartScheduler(); 8.在wireless_uart.c中文件需要添加pwmTask_queue ,它是作为外部变量为队列创建的。 //wireless_uart.c static uint8_t gAppSerMgrIf; static uint16_t mAppUartBufferSize = mAppUartBufferSize_c; static volatile bool_t mAppUartNewLine = FALSE; static volatile bool_t mAppDapaPending = FALSE; extern osaMsgQId_t pwmTask_queue; /************************************************************************************ ************************************************************************************* * Private functions prototypes ************************************************************************************* ************************************************************************************/ /* Gatt and Att callbacks */ static void BleApp_AdvertisingCallback(gapAdvertisingEvent_t *pAdvertisingEvent);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 应用程序代码中的任务和队列实现 在此示例中,我们实现了使用OSA_MsgQPut()将从中央外围设备接收的消息放入队列中: //wireles_uart.c static void BleApp_ReceivedUartStream(deviceId_t peerDeviceId, uint8_t *pStream, uint16_t streamLength) { static deviceId_t previousDeviceId = gInvalidDeviceId_c; char additionalInfoBuff[10] = { '\r', '\n', '[', '0', '0', '-', 'M', ']', ':', ' '}; uint8_t *pBuffer = NULL; uint32_t messageHeaderSize = 0; if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { streamLength += (uint32_t)sizeof(additionalInfoBuff); } /* Allocate buffer for asynchronous write */ pBuffer = MEM_BufferAlloc(streamLength); if (pBuffer != NULL) { /* if this is a message from a previous device, print device ID */ if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { messageHeaderSize = sizeof(additionalInfoBuff); if (mAppUartNewLine) { mAppUartNewLine = FALSE; } additionalInfoBuff[3] = '0' + (peerDeviceId / 10U); additionalInfoBuff[4] = '0' + (peerDeviceId % 10U); if (gGapCentral_c != maPeerInformation[peerDeviceId].gapRole) { additionalInfoBuff[6] = 'S'; } FLib_MemCpy(pBuffer, additionalInfoBuff, sizeof(additionalInfoBuff)); } FLib_MemCpy(pBuffer + messageHeaderSize, pStream, (uint32_t)streamLength - messageHeaderSize); /**** Adding a message into a Queue ****/ OSA_MsgQPut(pwmTask_queue, (void*)&pBuffer); /**************************************/ (void)Serial_AsyncWrite(gAppSerMgrIf, pBuffer, streamLength, Uart_TxCallBack, pBuffer); } /* update the previous device ID */ previousDeviceId = peerDeviceId; }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 该函数指向项目的main()函数之前创建的外部队列变量。还指向BleApp_ReceivedUartStream()中接收到的消息的缓冲区指针,可以使用OSA_MsgQGet()函数访问这些参数。 osaStatus_t OSA_MsgQGet(osaMsgQId_t msgQId, void *pMessage, uint32_t millisec)‍‍ 该函数从消息队列的头部获取消息,该函数的参数如下: msgQId :是队列函数的标识符。 pMessage :是指向从OSA_MsgQPut() 发送的相同消息的指针; millisec :等待消息的毫秒数。 在创建的任务: vfnTaskPWM()中有一个无限 while 循环检查消息是否在队列中,这是通过使用os_abstraction函数来实现的: 任务实现的其余部分位于不同的 C 文件中。除了任务函数原型之外,此文件中还定义了外部队列变量: /*pwmApplication.c*/ /*Global Variables*/ static uint8_t gAppSerMgrIf; extern osaMsgQId_t pwmTask_queue; /*Function Prototypes*/ void signalConfigValues(int red, int green, int blue); void getValuesRGB(uint8_t* msgString); int getInt(char *stringInteger, int size); /****Task Definition****/ void vfnTaskPWM(void* param); /* * Task to configure the PWM pins and start the timer * */ void vfnTaskPWM(void* param) { uint8_t* msgString; char msgString1[20] = { '\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0'}; while(1) { /* * If there is a new message on queue the value will return a 0 according to the OSA_MsgQGet function * to compare the incoming message * */ while((OSA_MsgQGet(pwmTask_queue,(void*)&msgString,10)) == 0){ //shift-up the pointer value to get the payload message if(*msgString == '\r'){ while(*msgString != 32){ msgString++; } msgString++; } FLib_MemCpy(msgString1,msgString,20); if(FLib_MemCmp(msgString1, "OFF", 4)){ (void)Serial_Print(gAppSerMgrIf,"\n\r OFF: ", gAllowToBlock_d); //configure the PWM new function signalConfigValues(0,0,0) and StartTimers(CTMRA,CTMRB) signalConfigValues(0,0,0); } else{ //a function to convert values from a string to integers getValuesRGB(msgString); } } } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
View full article
p2041ボードのPCIeに問題があります。(VxWorksの) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私はp2041rdbボラドを持っています。(P2041RDB-PBの) vxWorks BSPはWindRiberのサイトから入手しました。 target.refファイルを読み込みました。次に、bootrom とカーネルをコンパイルしました。 私はTffs、SATAをすることができます。 でも、私はPcieができません。 シェルログ -> **************************************************************************************************************************************** >vxBusShow 登録バスの種類: MII_Bus @ 0x002eb1ec PCI_Bus @ 0x002eae5c PLB_Bus @ 0x002eae78 登録済みデバイスドライバ: ppcIntCtlr バスPLB_Bus、funcs @ 0x002e92b8の0x002e92c4 m85xxTimerDev at 0x002eada8 on bus PLB_Bus, funcs @ 0x002ead8c バスPLB_Bus、funcs @ 0x002eb2e0の0x002eb2f8でfslSata バスPLB_Bus、funcs @ 0x002e9f1cの0x002e9f28でfslDma Epicの0x002ea0bc on Bus PLB_Bus、Funcs @ 0x002ea068 DTSECバスPLB_Bus、funcs @ 0x002eb000の0x002eb0d0で ns16550 at 0x002ea4a8 on bus PLB_Bus, funcs @ 0x002ea3d8 バスPCI_Bus、funcs @ 0x002ea3d8の0x002ea460でns16550 バスPLB_Bus、funcs @ 0x002eb274の0x002eb2a0でdtsecMdio GenericPhy at 0x002eb234 on bus MII_Bus, funcs @ 0x002eb228 0x002eb1a4バスPCI_Bus、funcs @ 0x002eb148のmiiBus バスPLB_Bus、funcs @ 0x002eb148の0x002eb164でmiiBus m85xxPci バスPLB_Bus、funcs @ 0x002e9e2cの0x002e9e38 m85xxCCSR 0x002ea134 on bus PLB_Bus, funcs @ 0x002ea128 QorIQFmanバスPLB_Bus、funcs @ 0x002ea254の0x002ea270で バスPLB_Busの0x002ea214でのQorIQBman、funcs @ 0x002ea1f8 バスPLB_Bus、funcs @ 0x002ea19cの0x002ea1b8でfslGpio QorIQQmanバスPLB_Bus、funcs @ 0x002ea32cの0x002ea350で バスPLB_Bus、funcs @ 0x002e9e78の0x002e9edcでのQorIQPciEx QorIQ 0x002ea2ecのバスPLB_Bus、funcs @ 0x002ea2b0 plbCtlr at 0x002eaea0 on bus PLB_Bus, funcs @ 0x002eae94 バスとデバイス: PLB_Bus @ 0x002fe368 ブリッジ@ 0x002eaee0 デバイスインスタンス: busInfo 0x00000000 PLB_Bus @ 0x002ff328 の ppcIntCtlr ユニット 0 PLB_Bus @ 0x002ff428 の epic ユニット 0 と busInfo 0x00000000 ns16550 ユニット 0 オン PLB_Bus @ 0x002ff628 バス情報付き 0x00000000 ns16550 ユニット 1 オン PLB_Bus @ 0x002ff828 バス情報付き 0x00000000 ns16550 ユニット 2 on PLB_Bus @ 0x002ffa28 with busInfo 0x00000000 ns16550 ユニット 3 on PLB_Bus @ 0x002ffc28 with busInfo 0x00000000 busInfo 0x00000000 PLB_Bus @ 0x002ffe28 の fslGpio ユニット 0 QorIQLawユニット0 on PLB_Bus @ 0x002fff28 with busInfo 0x0 QorIQBmanユニット0 on the PLB_Bus @ 0x00300028 with busInfo 0x00000000 QorIQQmanユニット0 on PLB_Bus @ 0x00300128 with busInfo 0x00000000 QorIQFmanユニット0 on PLB_Bus @ 0x00300228 with busInfo 0x00000000 QorIQPciExユニット1 on PLB_Bus @ 0x0030d328 with busInfo 0x00000000 PLB_Bus @ 0x0030d628 の dtsec ユニット 0 と busInfo 0x0 PLB_Bus @ 0x0030d728 の DTSEC ユニット 1 と busInfo 0x0 PLB_Bus @ 0x0030d828 の DTSEC ユニット 2 と busInfo 0x0 PLB_Bus @ 0x0030d928 の dtsec ユニット 3 と busInfo 0x0 PLB_Bus @ 0x0030da28 の DTSEC ユニット 4 と busInfo 0x0 PLB_Bus @ 0x0030db28 の dtsecMdio ユニット 0 と busInfo 0x00000000 m85xxTimerDevユニット0 PLB_Bus @ 0x0030dc28 busInfo 0x00000000 PLB_Bus @ 0x0030dd28上のfslSataユニット0とbusInfo 0x00000000 PLB_Bus @ 0x0030de28 の fslSata ユニット 1 と busInfo 0x00000000 PLB_Bus @ 0x0030df28 の fslDma ユニット 0 と busInfo 0x00000000 PLB_Bus @ 0x0030e028 の fslDma ユニット 1 と busInfo 0x00000000 PLB_Bus @ 0x0030e128上のmiiBusユニット0とbusInfo 0x002fefa8 miiBusユニット1 on PLB_Bus @ 0x00312328 with busInfo 0x002fef68 PLB_Bus @ 0x00312528 の miiBus ユニット 2 と busInfo 0x002fefe8 miiBusユニット3 on PLB_Bus @ 0x00312728 with busInfo 0x002ff028 miiBusユニット4 on PLB_Bus @ 0x00312928 with busInfo 0x002ff068 孤立したデバイス: MII_Bus @ 0x002fefa8 ブリッジ付き @ 0x0030e128 デバイスインスタンス: busInfo 0x00000000 を使用した MII_Bus @ 0x0030e228 の genericPhy ユニット 0 孤立したデバイス: MII_Bus @ 0x002fef68 with bridge @ 0x00312328 デバイスインスタンス: busInfo 0x00000000 を使用した MII_Bus @ 0x00312428 の genericPhy ユニット 1 孤立したデバイス: MII_Bus @ 0x002fefe8 with bridge @ 0x00312528 デバイスインスタンス: busInfo 0x00000000 を使用した MII_Bus @ 0x00312628 上の genericPhy ユニット 2 孤立したデバイス: MII_Bus @ 0x002ff028 with bridge @ 0x00312728 デバイスインスタンス: busInfo 0x00000000 の MII_Bus @ 0x00312828 の genericPhy ユニット 3 孤立したデバイス: MII_Bus @ 0x002ff068 橋 @ 0x00312928 デバイスインスタンス: busInfo 0x00000000 MII_Bus @ 0x00312a28 の genericPhy ユニット 4 孤立したデバイス: 値 = 1 = 0x1 -> pciDeviceShow 値 = -1 = 0xffffffff **************************************************************************************************************************************** 私はrcw_5g_1500mhz.bin(RR_PH_0x19)のrcwファイルを使用しました Re:p2041ボードのPCIeに問題があります。(VxWorksの) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> WindRiverのvxworks OSを使用しているPCIスロットの1つと、p2041rdbに付属するデフォルトのLinuxでも同様の問題が発生しています。 私の目標は、p2041rdb の両方の PCI スロットを使用することです。SDK に付属のデフォルトの RCW を使用すると、VxWorks と Linux の両方を使用して PCI スロット 1 に PCI カードを表示できます。しかし、PCIスロット2にはPCIカードは検出されません。 少し調べてみると、デフォルトのSRDS_PRTCLは0x19に設定されており、PCIe2でのみ多重化されることがわかりました。0x0A (PCIe2 を Bank1 レーン EFGH に配置し、PCIe3 を Bank2 レーン ABCD に配置する) や 0x16 (PCIe2 を Bank1 Laned EF に配置し、PCIe3 を Bank1 ランド D に配置する) などの他の SRDS_PRTCL 値を有効にする RCW を使用しようとしました。それにもかかわらず、Linux の 'lspci' または vxWorks の 'vxBusShow' を使用して PCI スロット 2 に PCI カードが表示されません。 コ・ヒョンギョン:どのPCIスロットを使用しているか確認していただけますか?PCI Slot1は機能しますか? 誰かが2番目のPCIスロットを機能させることができましたか?2 番目の PCI スロットを有効にするために不足しているものはありますか?
View full article
i.MX 8M Plus NPU ウォームアップ時間 i.MX 8M Plusは、強力なクアッドコアArm® Cortex-A53®アプリケーションです 最大1.8GHzで動作するプロセッサと統合されたニューラルプロセッシングユニット (NPU)最大2.3 TOPSを提供します。マシンを備えた最初の i.MX プロセッサとして 学習アクセラレータである i.MX 8M Plusプロセッサは、大幅に高い エッジでのML推論のパフォーマンス。 NPUと i.MX 8M PlusのCPUパフォーマンスを比較すると、NPUでは推論時間がはるかに長いと認識されています。これは、ML アクセラレータが全体的な初期化手順の実行により多くの時間を費やすという事実によるものです。 この初期化フェーズは ウォームアップ と呼ばれ、アプリケーションの開始時に一度だけ必要です。このステップの後、推論は、専用の NPU で期待されるとおりに真に高速化された方法で実行されます。 ウォームアップ時間は通常、最初の推論実行にのみ影響します。ただし、ML モデルのタイプによっては、最初の数回の推論実行で目立つ場合があります。ウォームアップ時間を何と見なすかを決定するために、いくつかの予備テストを行う必要があります。ウォームアップ フェーズが適切に区切られると、後続の推論実行を純粋な推論と見なし、推論フェーズの平均を計算するために使用できます。 現在、後続のアプリケーション実行のウォームアップ時間は、キャッシュ メカニズムを使用して短縮できます。この機能がシステム全体のパフォーマンスに与える影響を測定して、アプリケーションがこのメカニズムを使用することでメリットを得るかどうかを決定する必要があります。 初期ウォームアップ時間を改善し、キャッシュメカニズムを使用せずに初期化を高速化する作業が進行中ですので、関連するアップデートについては今後のリリースを確認してください。 ウォームアップ時間が全体的なパフォーマンスに与える影響を明確にするための専用のアプリケーションノートを利用できます: AN12964。理論的な側面をカバーし、複数のモデルを順番に実行する場合の性能を評価するための出発点として使用するサンプルコードも提供します。 i.MX 8M Plus の NPU と CPU パフォーマンスを比較すると、推論時間は 8M Plus ではるかに長いと認識されています。 NPUです。これは、ML アクセラレータが全体的な初期化手順の実行により多くの時間を費やすという事実によるものです。この初期化 フェーズは ウォームアップ と呼ばれ、アプリケーションの開始時に一度だけ必要です。この手順の推論が実行されると、 専用のNPUに期待されるように、真に加速された方法で。 このドキュメントの目的は、ウォームアップ時間が全体的なパフォーマンスに与える影響を明確にすることです。 i.MX 8
View full article
NXP SDKに基づく i.MX RTによる高速RS-485アプリケーションの実装 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi: 産業用アプリケーションでは、高RS485バスには、より高いリアルタイムパフォーマンスと、より高いスループットが必要です。 通常、NXP MCUxpresso SDKでは、UART、DMA周辺機器の使用方法を示すための基本的なサンプルコードを提供しますが、RS485は提供しません。 十分なドライバーAPIがそのようなアプリケーションをサポートできますが。しかし、初心者や高速プロトタイプの要件では、短時間で構築するのは難しいです。 このデザインは、RS485 アプリケーションで DMA を使用する方法と、UART の「スマート」機能を使用して高スループットを実装する方法を示します。 インダストリアル スマートシティ
View full article
CodeWarrior用イーサネットTAPプローブ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> CodeWarriorイーサネットTAPプローブは、多数のプロセッサとマイクロコントローラの開発とデバッグを支援するツールです。   イーサネットTAPプローブは、高度なエミュレーション技術を使用して、ターゲットシステムの制御と可視性を提供します。ホスト デバッガーと組み合わせると、ターゲット システムの状態を対話形式で制御および調査できるため、デバッグ プロセスが高速化されます。   イーサネットTAPプローブには、次の機能があります。 • PowerPC™ プロセッサ、StarCore プロセッサ、ColdFire® プロセッサ、56800 ハイブリッド コントローラ (プロセッサおよびマイクロコントローラー)、ARM® プロセッサ、RCF ベースバンド コントローラーのシステムをサポートします。(すべての製品は フリースケール のWebページを参照しています! •すべてのCPUコア速度をサポートします。 • ターゲット内で実行されているソフトウェアを制御およびデバッグでき、ターゲットシステムの動作への侵入を最小限に抑えます。 • キャッシュ、ROM、RAM、フラッシュメモリ内のコードをデバッグできます。 • 高いパフォーマンスを提供します。 – スプリット セカンド シングル ステップ実行。 – ホストからターゲット システムへの毎分 12 MB を超えるダウンロード速度が可能   ...そして、もっとたくさんあります!今すぐアップデートしてください!!       全般
View full article
S32K312 は dflash を書き込めません こんにちは!s32k312のDFlashにデータを保存したいです。アドレス0x10000000~0x1000FFFFにデータを書き込むことはできても、0x10010000にデータを書き込もうとするとうまくいきません。 以下は私の書き込みコードです: write 0x1000E000write 0x1000E000 write 0x10010000 not workedwrite 0x10010000機能していません0x10010000後にアドレスを書き込むのを避けるための制限がありますか? Re:s32k312はdflashを書き込むことができません Hi @Vandarkholme, これが問題になるはずです。 RTD 4.0.0 で修正済み よろしくお願いします。 Daniel Re:s32k312はdflashを書き込むことができません こんにちは! @danielmartynek、返信ありがとうございます!「S32K3XX RTD AUTOSAR R21-11 Ver 3.0.0」 RTD what I use and installedRTDを使用しており、インストール済みのもの Re:s32k312はdflashを書き込むことができません Hi @Vandarkholme, どのRTDバージョンを使用していますか? ありがとうございます Daniel
View full article
mscale_ddr_tool_v3.31_setup.exe 无法与 iMX8M Plus EVK 配合使用 我下载了 iMX8M Plus 的 ddr 工具(mscale_ddr_tool_v3.31_setup.exe.zip),并从脚本文件夹和我自己的文件夹中下载了脚本到 iMX8M Plus EVK。下载后,没有任何反应,如下所示。“校准”和“压力测试”也处于非活动状态。谁能告诉我哪里出了问题?谢谢。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus 回复:mscale_ddr_tool_v3.31_setup.exe 无法与 iMX8M Plus EVK 配合使用 Hello, 我无法重现该问题,在我这边它运行良好,似乎您的程序中存在一些不同之处。 请遵循工具中包含的指南。 DDR 工具需要访问 Windows 注册表,用户必须以管理员模式运行它。 配置 i.MX 目标板以串行下载模式/制造模式启动并启动电路板。 将 UART 电缆从主机连接到 MX8MSCALE 调试 UART。 将主机的 USB 电缆连接到 MX8MSCALE 目标板上的 USB OTG 端口。 以管理员模式启动 MSCALE_DDR_Tool.exe。 按下调试 UART 区域中的搜索按钮,然后选择连接到 MX8 Cortex A-Core 调试 UART 的正确 UART 端口并按下连接按钮。 加载DDR初始化脚本并根据主板的DDR内存选择正确的下载选项。 按下下载按钮并等待目标板准备就绪。 根据您的屏幕截图,您的电路板在串行下载模式下未被检测到。 顺祝商祺!
View full article
bldc motor 是否有任何参考代码或源代码可用于控制 BLDC 电机,如果有,请提供下载 BLDC 电机源代码的链接 Re: bldc motor Hello, 我们的网站上有一整个部分专门介绍 BLDC: https://www.nxp.com/applications/industrial/aerospace/brushless-dc-motor-bldc-control:BRUSHLESS-DC-MOTORS 您将在文档部分找到应用说明以及示例 SW: 顺祝商祺! Peter
View full article
KL25-USB大容量存储设备主机引导加载程序 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi,   附加的USB 大容量存储设备主机引导加载程序代码已移植到KL25 / KL26 。   参考:AN4368 USB大容量存储设备主机引导加载程序   谢谢和问候, 斯瓦米纳坦
View full article
谈论图像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> $ ~/dylan/sources$ find -name *image*.bb ./meta-fsl-demos/recipes-fsl/images/fsl-image-gui-sdk.bb ./meta-fsl-demos/recipes-fsl/images/fsl-image-test.bb ./meta-fsl-demos/recipes-fsl/images/fsl-image-gui.bb ./meta-fsl-demos/recipes-qt/images/qt-in-use-image.bb ./meta-fsl-demos/recipes-qt/images/qte-in-use-image.bb ./meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb ./meta-openembedded/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb ./meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_6.7.5.bb ./meta-openembedded/meta-oe/recipes-多媒体/libsdl-image/libsdl-image_1.2.12.bb ./poky/meta-hob/recipes-core/images/hob-image.bb ./poky/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb ./poky/meta/recipes-devtools/mkelfimage/mkelfimage_svn.bb ./poky/meta/recipes-sato/images/core-image-sato-dev.bb ./poky/meta/recipes-sato/images/core-image-sato.bb ./poky/meta/recipes-sato/images/core-image-sato-sdk.bb ./poky/meta/recipes-qt/images/qt4e-demo-image.bb ./poky/meta/recipes-core/images/core-image-minimal.bb ./poky/meta/recipes-core/images/core-image-base.bb ./poky/meta/recipes-core/images/core-image-minimal-dev.bb ./poky/meta/recipes-core/images/core-image-minimal-initramfs.bb ./poky/meta/recipes-core/images/build-appliance-image.bb ./poky/meta/recipes-core/images/core-image-minimal-mtdutils.bb ./poky/meta/recipes-extended/images/core-image-lsb-sdk.bb ./poky/meta/recipes-extended/images/core-image-basic.bb ./poky/meta/recipes-extended/images/core-image-lsb-dev.bb ./poky/meta/recipes-extended/images/core-image-lsb.bb ./poky/meta/recipes-graphics/images/core-image-directfb.bb ./poky/meta/recipes-graphics/images/core-image-x11.bb ./poky/meta/recipes-graphics/images/core-image-clutter.bb ./poky/meta/recipes-graphics/xcb/xcb-util-image_0.3.9.bb ./poky/meta/recipes-bsp/u-boot/u-boot-mkimage_2013.01.01.bb ./poky/meta/recipes-bsp/u-boot/u-boot-mkimage_2011.06.bb ./poky/meta/recipes-bsp/u-boot/u-boot-mkimage_2011.03.bb ./poky/meta/recipes-rt/images/core-image-rt-sdk.bb ./poky/meta/recipes-rt/images/core-image-rt.bb 这些都是可用的图像。请注意,仅 poky 和 meta-fsl-arm 提供图像。正如您可能想象的那样,可以包含其他几个图层,并且任何新图层都可以提供新的图像。 如果逐行查看,您会发现其中一些文件不是图像,例如u-boot-mkimage_2011.06.bb ,但您收到了消息。 Yocto 项目(和 meta-fsl-demos)提供了一些“预烘焙”图像。在我看来,这些图像不适用于您的产品。它们是示例和快速起点。 当你想吃馅饼时,你可以去超市买一个冷冻巧克力馅饼。但是,当您要制作苹果咸焦糖配黑巧克力肉桂馅的馅饼时,您需要决定馅饼的每一块。基底是什么,使用哪种苹果。焦糖上加了多少盐。这是您的产品、您的馅饼,而不是冷冻的标准馅饼。 我知道这个比喻有点愚蠢。但重要的是要理解 Yocto Project 或 meta-fsl-demos 提供的“预烘焙”图像不应该成为产品图像!您可以(也许应该)根据其中一些图像来创建图像,但它们对您的产品来说还不够好。 我强烈建议您拥有自己的图像文件。 我使用的预烘焙图像是 core-image-minimal 我使用 镜像名称 我使用它来 正式描述 core-image-minimal 测试机支持;uboot支持/升级;内核支持/升级 A small image just capable of allowing a device to boot. core-image-base 当我需要添加诸如 ssh/dropbear 或 evtest 或 usb utils 之类的东西时。我总是在 local.conf 上配置它来添加所需的包。 A console-only image that fully supports the target device hardware. 核心图像-x11 当我需要测试 GPU 加速的 X11 时,或者我需要使用 X11 进行任何测试时。 A very basic X11 image with a terminal 核心图像directftb 当我调试 directfb GPU 支持时 An image that uses DirectFB instead of X11. 核心图像 Weston 当我调试 Wayland GPU 支持时 A very basic Wayland image with a terminal fsl-image-test 当我需要使用和不使用 gstreamer 来测试 VPU 时。 - fsl-image-gui 当我需要 QT 或想要一起构建一切时。尽管我更喜欢较小的图像。 - 元工具链 当我修改它时,在我的计算机上安装交叉编译器来手动构建 u-boot 和内核 Meta package for building a installable toolchain 所有这些图像都不包含 -dev 包或本机构建。如果您想要它,您必须配置您的local.conf。 尽管如此,您可以找到提供头文件或本机编译器的特殊图像。 带有-dev后缀的图像包含所有包的头文件(和开发文件)。例如: core-image-minimal-dev ( A small image just capable of allowing a device to boot and is suitable for development work. ) 带有-sdk后缀的图像包含本机构建工具。例如core-image-sato-sdk ( Image with Sato support that includes everything within core-image-sato plus meta-toolchain, development headers and libraries to form a standalone SDK. ) *所有正式描述均从 poky 源代码( poky - Poky 构建工具和元数据)复制而来 请返回Yocto Training - 主页 Yocto Project 回复:谈论图像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Daiane, 非常感谢您的帮助。 我发现ssh服务器没有启用,并且root密码被禁用。 以下文档描述了 ssh 服务器:     http://www.yoctoproject.org/docs/1.6.1/mega-manual/mega-manual.html 包括这些 SSH 服务器允许您使用标准 ssh 和 scp 命令。然而,核心映像最小 QEMU 映像不包含 SSH 服务器。 编辑配方中的 IMAGE_FEATURES 变量或使用 local.conf 文件中的 EXTRA_IMAGE_FEATURES,以便它将您正在使用的图像配置为包含 ssh-server-dropbear 或 ssh-server-openssh。 因此我们在 local.conf 文件中添加 EXTRA_IMAGE_FEATURES。     BB_NUMBER_THREADS ?= " ${@oe.utils.cpu_count()} " PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}" 机器??='imx6qsabrelite' DISTRO ?= 'poky' PACKAGE_CLASSES ?= "package_ipk" EXTRA_IMAGE_FEATURES =“调试调整ssh服务器openssh ” USER_CLASSES ?= “buildstats image-mklibs image-prelink” PATCHRESOLVE = "noop" BB_DISKMON_DIRS = "\     STOPTASKS,${TMPDIR},1G,100K \     STOPTASKS,${DL_DIR},1G,100K \     STOPTASKS,${SSTATE_DIR},1G,100K \     ABORT,${TMPDIR},100M,1K \     ABORT,${DL_DIR},100M,1K \     ABORT,${SSTATE_DIR},100M,1K" PACKAGECONFIG_pn-qemu-native = "sdl" PACKAGECONFIG_pn-nativesdk-qemu = "sdl" ASSUME_PROVIDED += “libsdl-native” CONF_VERSION = "1" BB_NUMBER_THREADS = '6' PARALLEL_MAKE = '-j 6' 我们测试结果是可以的。 回复:谈论图像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我不知道core-image-lsb-dev 的访问字,在我使用的图像中它是“root”或空 为了远程登录主板,您必须知道 IP 地址并在主板内部安装/配置 telnet 服务器。但没有什么特别的,任何互联网教程都可以帮助您。 回复:谈论图像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Daiane, 我按照以下步骤编译 core-image-lsb-dev 并获取正确的图像和 rootfs,但是当我将图像和 rootfs 刷入 imx6q sabrelite 板时,我发现我无法登录并通过 telenet 连接到该板。 ife@ife-virtual-machine:~/fsl-community-bsp/build$bitbake core-image-lsb-dev Loading cache: 100% |#####################################################################| ETA:  00:00:00 从依赖缓存中加载了 1737 个条目。 注意:正在解决任何缺失的任务队列依赖项 注意:jpeg 有多个提供程序可用(jpeg、libjpeg-turbo) 注意:考虑定义一个 PREFERRED_PROVIDER 条目来匹配 jpeg 注意:jpeg-native 有多个提供程序可用(jpeg-native、libjpeg-turbo-native) 注意:考虑定义一个 PREFERRED_PROVIDER 条目来匹配 jpeg-native Build配置: BB_VERSION = "1.20.0" BUILD_SYS =“i686-linux” NATIVELSBSTRING =“Ubuntu-12.04” TARGET_SYS        = "arm-poky-linux-gnueabi" 机器 = “imx6qsabrelite” DISTRO            = "poky" 发行版本 = "1.5.3" TUNE_FEATURES =“armv7a vfp neon callconvention-hard cortexa9” TARGET_FPU = "vfp-neon" meta             meta-yocto        = "9-12-test:6d0a1893d1e2df20b62296ec2cc80924cbab8e90" meta-oe           = "9-12-test:ee173678383683e972c7d4d6f0ef5790bfa50274" meta-fsl-arm      = "9-12-test:5fdb620c09df11e70434092f675c891e0ba84108" meta-fsl-arm-extra = "9-12-test:375f89b70655be2a17bbde36de6adb4e4a5a6975" meta-fsl-demos    = "9-12-test:5a12677ad000a926d23c444266722a778ea228a7" meta-test         = " : " 注意:准备运行队列 注意:执行 SetScene 任务 注意:执行 RunQueue 任务 注意:任务摘要:尝试了 5572 项任务,其中 5517 项不需要重新运行,并且全部成功。 ife@ife-virtual-machine:~/fsl-community-bsp/build$ ife@ife-virtual-machine:~/fsl-community-bsp/build$ 通过 uart 连接: imx6qsabrelite登录: Poky(Yocto 项目参考发行版)1.5.3 imx6qsabrelite /dev/ttymxc1 imx6qsabrelite登录: 通过telnet连接: 远程系统拒绝连接。 我想知道如何登录和远程登录主板,非常感谢。 回复:谈论图像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 此外,Pratik,请查看 meta-fsl-demos 上提供的源代码。我们在那里有一些“自定义”图像,您可以将其作为示例。 回复:谈论图像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Pratik, 我在 Yocto 中发现的最好的文档来源之一实际上是查看源代码(真的)。查看 recipes-*/images/* 文件,了解如何创建自己的文件。一般来说,您可以指示:功能(IMAGE_FEATURES)、包(IMAGE_INSTALL)和包组(也可以通过 IMAGE_INSTALL)。功能映射到一组软件包,而软件包组用单个标签包装一组软件包。 回复:谈论图像 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Daiane, 我已经关注了您的 Yocto 文档。太棒了。它对我帮助很大。请详细说明如何制作自定义图像。 我只想要该图像中 Chromium 浏览器的依赖包和库。目前,我将所需的包包含在 IMAGE_INSTALL 下的 core-image-x11.bb 文件中。它运行良好。 提前感谢! Pratik
View full article
eIQを用いたMNISTデータセットにおける手書き数字認識 このデモについて 技術紹介と謝辞 TensorFlow Lite Caffee Frameworkを使用したCMSIS-NN ビデオ ハードウェアのセットアップ 詳細情報 転移学習 便利なリンク このデモについて このデモでは、手書きの数字認識に適用されるニューラルネットワーク(NN)の使用法を示しており、NNモデルは i.MX RT1060 MCU上で動作します。このデモの主な目的は、グラフィカル・ユーザー・インターフェースを管理する i.MX RT機能を示すとともに、NNモデルを適用して手書きの数字を認識し、パスワードが正しいか間違っているかを判断することです。デモは、 4.3インチLCDパネル に4桁のパスワードを設定してテストされ、ユーザーはデバイスのロックを解除するために正しいパスワードを入力する必要があります。パスワードを入力すると、NNが認識した数字が画面に表示されます。「クリア」ボタンは、ユーザーがデバイスのロックを解除するために新しいパスワードを試すために以前の番号を消去します。 技術紹介と謝辞 このデモは、モデル作成エンジンと推論エンジンの 2 つの異なるアプローチ ( TensorFlow Lite と Caffe Framework を使用した CMSIS-NN ) を使用して利用できます。   TensorFlow Lite このアプリケーションノート AN12603では、 ディープラーニングによる組み込みシステム上の手書きの数字認識について説明します。数字の認識は、60,000 枚の手書きグレースケール画像と 10,000 個のテスト例を含む MINST データセットでトレーニングされた TensorFlow Lite モデルによって実行されます。このアプリケーションノートでは、Tensorflow Liteを使用してアプリケーションを実現し、Embedded Wizardを使用してGUIを構築するためのすべてのステップについて詳しく説明します。   Caffee Frameworkを使用したCMSIS-NN このアプリケーションノート AN12781 では、 Caffe Frameworkで作成されたディープニューラルネットワークの使用方法を探っており、このフレームワークではモデルを作成し、それをCMSIS-NN関数に変換して、ソースファイルとして i.MX RTプラットフォームにエクスポートすることができます。このモデルは、MNIST データセットを使用した数字認識のトレーニングも行われます。このドキュメントでは、モデルを作成、トレーニング、デプロイする手順について説明します。最後のステップでは、モデルはCMSIS-NN関数とウェイトを使用してCソースファイルをエクスポートし、i.MX RT1060にエクスポートします プロジェクト。 ビデオ (マイビデオで視聴)   ハードウェアのセットアップ 推奨製品 i.MX RT1060 評価キット |NXPの  4.3インチ液晶パネル RK043FN02H-CT |NXPの    詳細情報 NXP ® eIQ ™ ソフトウェア環境では、NXP MCU、i.MX RTクロスオーバーMCU、および i.MX ファミリSoCでMLアルゴリズムを使用できます。eIQソフトウェアには、推論エンジン、ニューラルネットワークコンパイラ、最適化されたライブラリが含まれています。 さらに、量子化やプルーニングなどの手法を使用してモデルを最適化できるAN12781、Caffeを使用して新しいモデルを作成し、量子化して浮動小数点データを簡略化することで最適化の可能性を探ります。32ビット浮動小数点データを8ビットの固定小数点形式に減らすことで、メモリ割り当てが削減され、処理能力が低下しました。   転移学習 転移学習により、機械学習モデルは 過去の経験を適用して、新しい問題を解決するための学習を迅速かつ正確に行うことができます。この手法は、ディープラーニングで非常に重要になっています。AN12892 TensorFlow で転移学習を実行する方法と、AN12603 からアプリケーションのパフォーマンスを向上させることを目的としたユースケースの例について説明します。    便利なリンク リンク  AN12603 AN12603ソフトウェア AN12781 AN12781ソフトウェア AN12892 AN12892ソフトウェア TensorFlow Lite の eIQ™ |NXPの  カフェ |ディープラーニングフレームワーク  組み込みウィザード |GUI開発の簡素化  コンテナとは? |アプリのコンテナ化 |港湾労働者  インダストリアル スマートホーム
View full article