Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
We are studying a replacement product of sensor Hi we are searching for a pin to pin replacement product, need some professional advice. Could you share some technical service contact window by email. Ted! Battery Sensors Re: We are studying a replacement product of sensor This is MCU not the sensor part. Re: We are studying a replacement product of sensor What kind of product need pin to pin replacement?
View full article
基于 CAN 的唤醒收发器 TJA1465 你好 我正在使用 TJA1465 CAN SIC 收发器与部分网络连接,以实现基于 CAN 的唤醒。 我已将其配置为 500kbs 比特率和 ID 0x18ff21b1,以便使用 SPI 部分联网进行 CAN 唤醒。但收发器也会唤醒其他比特率,这些比特率未在部分网络数据速率和滤波器配置寄存器(地址 031h)中配置。 除配置外,为什么 transreciever 还会唤醒比特率? 以下是示例代码 static void tja1465_configure_can_wakeup_ext_dlc0(void) { uint8_t mode_stat,sys_stat; printf("CAN Wakeup Config Enter \n" ); tja1465_read(REG_MODE_STATUS,&mode_stat); printf("Mode Status (0x070) = 0x%02X (%s)\n",mode_stat, mode_str(mode_stat)); tja1465_write(0x031, 0x14); /* WUF ID = 0x18FF21B1 */*0x18FF0180* MASK 0x0000304D*/ tja1465_write(0x020,0xB1); tja1465_write(0x021,0x21); tja1465_write(0x022,0xFF); tja1465_write(0x023,0x18); /* WUF ID 屏蔽(匹配完整的 29 位 ID) */ tja1465_write(0x024,0x00); tja1465_write(0x025,0x00); tja1465_write(0x026,0x00); tja1465_write(0x027,0x00); tja1465_write(0x028, 0x05); tja1465_write(0x029, 0x00); tja1465_write(0x02A, 0x00); tja1465_write(0x02B, 0x00); tja1465_write(0x02C, 0x00); tja1465_write(0x02D, 0x00); tja1465_write(0x02E, 0x00); tja1465_write(0x02F, 0x00); tja1465_write(0x030, 0xC8); tja1465_write(0x011, 0x00); tja1465_write( 0x060, 0xFF); tja1465_write( 0x061, 0xFF); tja1465_write( 0x062, 0x04); tja1465_write(0x032, 0x03); uint8_t pn_status_reg; tja1465_read(0x073,&pn_status_reg); tja1465_read(0x071,&sys_stat); printf("PN Status (0x073) = 0x%02X (CPNS:%s),CPNERRS :0x%02X\n", pn_status_reg, (pn_status_reg& 0x20) ?"OK":"Error",(pn_status_reg& 0x40)); printf("System Status(0x071) = 0x%02X\n", sys_stat); tja1465_write(REG_MODE_CTRL, MODE_SLEEP); usleep(3000); tja1465_read(REG_MODE_STATUS,&mode_stat); printf("Mode Status (0x070) = 0x%02X (%s)\n", mode_stat, mode_str(mode_stat)); tja1465_read(REG_SYS_STATUS,&sys_stat); printf("System Status(0x071) = 0x%02X\n", sys_stat); printf("CAN Wakeup Config Exit \n" ); } Re: CAN based WakeUp Transrecevier TJA1465 你好,维韦卡南达 日安 我将进行测试以找出错误,一旦有了答案,我会尽快给您回复。 祝你愉快,好运连连。 Re: CAN based WakeUp Transrecevier TJA1465 你好,维韦卡南达 您能解释一下下面关于 "其他比特率 "的绿色句子是什么意思吗? 但收发器也会唤醒其他比特率,这些比特率未在部分网络数据速率和滤波器配置寄存器(地址 031h)中配置。 如果确实是 CAN FD 帧,那么唤醒后请检查 PNFDER 是否 =1。如果是,请尝试将下面的黄线改为:tja1465_write(0x032, 0x07)。这将设置 PNECC = 1,并且 CAN FD 帧不会再增加错误计数器,PNFDER 应保持 0 并且设备无法唤醒。 应用笔记(AN14388,可在我们的页面上下载)显示了 PN 配置的 SPI 序列示例,供您参考(第 4.2 节,第 23-24 页)。请看一看。 希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。 祝你愉快,好运连连。
View full article
s32g DDRの変更 こんにちは、NXPの専門家 私の開発ボードで使用されているチップは S32G274A と bsp38 です。現在、DDRを元の4GBから2GBに変更したいと考えています。次の図に示すように、S32G メモリ構成およびテスト マニュアルに従って S32DS を介して DDR を構成し、検証して ATF ソース コードをエクスポートしました。 ZHANGBOWEN_0-1770004963054.png 次に、「S32G RDB2 Linux ボードレベル開発キット ATF カスタマイズ」マニュアルと「S32G RDB2 Linux ボードレベル開発キット Uboot カスタマイズ」の DDR 変更セクションを参照して、対応する ddr ファイルを置き換えました。今はいくつかの現象が起きています。 (1)/ホーム/ZBW/workspace/s32g/Arm -trusted- ファームウェア -NXP/FDTS/s32g2 dtsi を変更していない場合、メモリノードの内容は以下のように維持されますが、uboot は正常に起動できますが、カーネルを起動するとエラーが発生し、次の図にエラーメッセージが表示されます。 ZHANGBOWEN_1-1770005329238.png エラーログ: => boot switch to partitions #0, OK mmc0(part 0) is current device 18864640 bytes read in 234 ms (76.9 MiB/s) Booting from mmc ... 56397 bytes read in 10 ms (5.4 MiB/s) ## Flattened Device Tree blob at 83000000 Booting using the fdt blob at 0x83000000 Using Device Tree in place at 0000000083000000, end 0000000083010c4c fixup: pfe0 set to 00:01:be:be:ef:11 fixup: pfe0: Update fixed-link speed to 1000Mbps fixup: pfe1 set to 00:01:be:be:ef:22 fixup: pfe2 set to 00:01:be:be:ef:33 Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.15.119-rt65+gd6fac1c66 (oe-user@oe-host) (aarch64-fsl-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Thu Oct 30 12:05:44 CST 2025 [ 0.000000] Machine model: GRCE DOCAP-BAS [ 0.000000] earlycon: linflex0 at MMIO 0x00000000401c8000 (options '115200n8') [ 0.000000] printk: bootconsole [linflex0] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000083200000, size 3 MiB [ 0.000000] OF: reserved mem: initialized node pfebufs@83200000, compatible id shared-dma-pool [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal [mem 0x0000000100000000-0x00000008ffffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000831fffff] [ 0.000000] node 0: [mem 0x0000000083200000-0x00000000835dffff] [ 0.000000] node 0: [mem 0x00000000835e0000-0x0000000083ffffff] [ 0.000000] node 0: [mem 0x0000000084000000-0x00000000843fffff] [ 0.000000] node 0: [mem 0x0000000084400000-0x0000000084ffffff] [ 0.000000] node 0: [mem 0x0000000085000000-0x0000000085000fff] [ 0.000000] node 0: [mem 0x0000000085001000-0x00000000bfffffff] [ 0.000000] node 0: [mem 0x00000000c0000000-0x00000000c07fffff] [ 0.000000] node 0: [mem 0x00000000c0800000-0x00000000cfffffff] [ 0.000000] node 0: [mem 0x00000000d0001000-0x00000000efffffff] [ 0.000000] node 0: [mem 0x0000000880000000-0x00000008ffffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffffff] [ 0.000000] On node 0, zone DMA: 1 pages in unavailable ranges [ 0.000000] cma: Reserved 256 MiB at 0x00000000e0000000 [ 0.000000] psci: probing for conduit method from DT. (2)デバイスツリーを修正してメモリノードのmemory@880000000をコメントアウトし、U-bootを再コンパイルして焼き込むと、NOTICE: Reset status: Power-On Resetの1行だけが表示されます。 Re: s32g DDR change こんにちは、 @chenyin_h ECCを有効にしました。設定の一部を次の図に示します。 ZHANGBOWEN_0-1770098956280.png Re: s32g DDR change こんにちは、 @ZHANGBOWEN ご投稿ありがとうございます。 DDR ツールの設定中に ECC を有効にしたかどうかを教えていただけますか? BR チェイン 回复: s32g DDR change 補足情報:DDR TOOL構成図、検証成功 ZHANGBOWEN_0-1770016757261.png U-Bootに入ることができる最初の状況では、U-Bootのコマンドラインでmemのサイズを手動で設定しました。 setenv mmcargs 'run finduuid;setenv bootargs console=${console},${baudrate} mem=2G root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} earlycon nohz=off coherent_pool=64M' この現象は矛盾している 注意: リセット状態: パワーオンリセット お知らせ: BL2: v2.5(リリース):bsp38.0-2.5-dirty 通知: BL2: 構築日時: 2026年2月2日 06:47:45 お知らせ: BL2: BL31 を起動しています U-Boot 2020.04-00006-g2560e070-ダーティ(2026年2月2日 - 14:47:43 +0800) SoC: NXP S32G274A rev.2.0 CPU: ARM Cortex-A53 r0p4(最大1000MHz) モデル: NXP S32G274A-RDB2 DRAM: 3.8 GiB MMC: FSL_SDHC: 0 SPIフラッシュから環境をロード中... SF: ページサイズ256バイト、消去サイズ64 KiB、合計64 MiBのmx25uw51245gを検出しました わかりました PCIe0 を RootComplex として構成する PCIe0: リンクアップ!X1、Gen3 デバイス 'pcie@44100000': seq 1 は 'pci_0:0.0' によって使用されています PCIe1 を RootComplex として構成する PCIe1: リンクアップに失敗しました PCI: 自動構成バー 20 に失敗しました PCI: 自動構成バー 24 に失敗しました BusDevFun VendorId DeviceId デバイスクラスサブクラス ______________________________________________________________________ pcie@40400000 ルートコンプレックス | `-- 00:00.00 0x1957 0x4002 ブリッジデバイス 0x04 | `-- 01:00.000x1e4b 0x1202 マスストレージコントローラ 0x08 入力: serial@401c8000 出力: serial@401c8000 エラー: serial@401c8000 ボードリビジョン: RDB2/GLDBOX リビジョン D ネット: EQOS phy: rgmii @ 1 警告: eth_eqos (eth0) はランダムな MAC アドレスを使用しています - 12:ec:d2:dd:91:c8 eth0: eth_eqos emac0_xpcs の XPCS の速度を取得できませんでした PFE: emac0: sgmii emac1: none emac2: rgmii SF: ページサイズ 256 バイト、消去サイズ 64 KiB、合計 64 MiB の mx25uw51245g を検出しました ## アドレス 0xefdc6a78 に ELF イメージがありません PFEngファームウェアファイル ' @0x03000000: ' の読み込みに失敗しました: -22 セルラーモジュールの電源オン 自動起動を停止するには任意のキーを押してください: 0 => => printenv mmc mmcargs mmcboot mmcdev mmcpart mmcroot mmcrootfstype => printenv mmcargs mmcargs=run finduuid;setenv bootargs console= ${console} , ${baudrate} root=PARTUUID= ${uuid} rw rootfstype= ${mmcrootfstype} Earlycon nohz=off coherent_pool=64M => bdinfo アーキテクチャ番号 = 0x00000000000000000 ブートパラメータ = 0x0000000080000100 DRAMバンク = 0x00000000000000000 -> 開始 = 0x0000000080000000 -> サイズ = 0x0000000070000000 DRAMバンク = 0x00000000000000001 -> 開始 = 0x0000000880000000 -> サイズ = 0x0000000080000000 ボーレート = 115200 bps TLBアドレス = 0x00000000efff0000 再配置アドレス = 0x00000000efff0000 再配置オフ = 0x00000000000000000 irq_sp = 0x00000000efdc6b70 sp 開始 = 0x00000000efdc6b70 初期のmalloc使用量: 193d0 / 20000 fdt_blob = 0x00000000ffa97000 => setenv mmcargs 'run finduuid;setenv bootargs console= ${console} , ${baudrate} mem=2G root=PARTUUID= ${uuid} rw rootfstype= ${mmcrootfstype} earlycon nohz=off coherent_pool=64M' => ブート パーティション #0 に切り替えます。OK mmc0(パート0)は現在のデバイスです 18864640バイトを234ミリ秒で読み取りました(76.9 MiB/秒) mmc から起動しています... 10 ミリ秒で 56397 バイトを読み取りました (5.4 MiB/秒) ## 83000000 のフラット化されたデバイス ツリー blob 0x83000000のfdt blobを使用して起動する 0000000083000000、終了 0000000083010c4c にあるデバイスツリーを使用しています 修正: pfe0 を 00:01:be:be:ef:11 に設定 修正: pfe0: 固定リンク速度を1000Mbpsに更新 修正: pfe1 を 00:01:be:be:ef:22 に設定 修正: pfe2 を 00:01:be:be:ef:33 カーネルを起動中… [ 0.000000] 物理CPU 0x0000000000 [0x410fd034]でLinuxを起動しています [ 0.000000] Linux バージョン 5.15.119-rt65+gd6fac1c66 (oe-user@oe-host) (aarch64-fsl-linux-gcc (GCC) 11.3.0、GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT 2025年10月30日(木) 12:05:44 CST [ 0.000000] マシン モデル: GRCE DOCAP-BAS [ 0.000000] メモリは2048MBに制限されています [ 0.000000] earlycon: linflex0 at MMIO 0x00000000401c8000 (オプション '115200n8') [ 0.000000] printk: bootconsole [linflex0] が有効 [ 0.000000] efi: UEFI が見つかりません。 [ 0.000000] 予約メモリ: 0x0000000083200000 に DMA メモリプールを作成しました。サイズは 3 MiB です。 [ 0.000000] OF: 予約済みメモリ: 初期化されたノード pfebufs@83200000、互換性のある ID 共有 DMA プール [ 0.000000] ゾーン範囲: [ 0.000000] DMA [メモリ 0x0000000080000000-0x00000000ffffffff] [ 0.000000] DMA32 空 [ 0.000000] 正常 [メモリ 0x0000000100000000-0x000000088fffffff] [ 0.000000] 各ノードの移動可能ゾーンの開始 [ 0.000000] 初期メモリノード範囲 [ 0.000000] ノード 0: [メモリ 0x0000000080000000-0x00000000831fffff] [ 0.000000] ノード 0: [メモリ 0x0000000083200000-0x00000000835dffff] [ 0.000000] ノード 0: [メモリ 0x00000000835e0000-0x0000000083ffffff] [ 0.000000] ノード 0: [メモリ 0x0000000084000000-0x00000000843ffffff] [ 0.000000] ノード 0: [メモリ 0x0000000084400000-0x0000000084ffffff] [ 0.000000] ノード 0: [メモリ 0x0000000085000000-0x0000000085000fff] [ 0.000000] ノード 0: [メモリ 0x0000000085001000-0x00000000bfffffff] [ 0.000000] ノード 0: [メモリ 0x00000000c0000000-0x00000000c07fffff] [ 0.000000] ノード 0: [メモリ 0x00000000c0800000-0x00000000cfffffff] [ 0.000000] ノード 0: [メモリ 0x00000000d0001000-0x00000000efffffff] [ 0.000000] ノード 0: [メモリ 0x0000000880000000-0x000000088ffffffff] [ 0.000000] 初期化メモリ セットアップ ノード 0 [メモリ 0x0000000080000000-0x000000088ffffffff] [ 0.000000] ノード0のゾーンDMA: 使用できない範囲に1ページあります [ 0.000000] cma: 0x00000000e0000000 に 256 MiB が予約されています [ 0.000000] psci: DT からコンジット 方法をプローブしています。 [ 0.000000] psci: ファームウェアで PSCIv1.1 が検出されました。 [ 0.000000] psci: 標準PSCI v0.2関数IDを使用 [ 0.000000] psci: MIGRATE_INFO_TYPE はサポートされていません。 [ 0.000000] psci: SMC呼び出し規約 v1.2 [ 0.000000] percpu: 組み込み 27ページ/CPU s71000 r8192 d31400 u110592 [ 0.000000] pcpu割り当て: s71000 r8192 d31400 u110592 割り当て=27*4096 [ 0.000000] pcpu割り当て: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] SError CPU0 の割り込み、コード 0x00000000bf000002 -- SError [ 0.000000] CPU: 0 PID: 0 通信: スワッパー 汚染されていない 5.15.119-rt65+gd6fac1c66 #1 [ 0.000000] ハードウェア名: GRCE DOCAP-BAS (DT) [ 0.000000] pstate: 400000c5 (nZcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 0.000000] pc : __next_mem_range_rev+0xd8/0x1fc [ 0.000000] lr : __next_mem_range_rev+0x90/0x1fc [ 0.000000] sp : ffffffc0090c3ab0 [ 0.000000] x29: ffffffc0090c3ab0 x28: 0000000000001000 x27: ffffffc00913e158 [ 0.000000] x26: 000000000000001c x25: ffffffc00913e130 x24: 00000000000000000 [ 0.000000] x23: ffffffc0090c3b70 x22: ffffffc0090c3b78 x21: 0000000000000000 [ 0.000000] x20: ffffffc0090c3b80 x19: ffffffc00913e158 x18: ffffffffffffffff [ 0.000000] x17: 000000000000002c x16: 0000000000001b000 x15: 00000000000000000 [ 0.000000] x14: 0000000000000018 x13: 0000000000000000b x12: 00000000ffffffff [ 0.000000] x11: 000000000000002c x10: 000000088fbb20a8 x9: ffffffc00921f818 [ 0.000000] x8 : 000000000000001c x7 : 0000000880000000 x6 : 0000000890000000 [ 0.000000] x5 : 000000000000002c x4 : 0000000000000001c x3 : 00000000000000000 [ 0.000000] x2 : 0000000000000000 x1 : ffffffc00921ea80 x0 : 0000000000000000 [ 0.000000] カーネルパニック - 同期していません: [ 0.000000] 非同期SError割り込み [ 0.000000] CPU: 0 PID: 0 通信: スワッパー 汚染されていない 5.15.119-rt65+gd6fac1c66 #1 [ 0.000000] ハードウェア名: GRCE DOCAP-BAS (DT) [ 0.000000] 通話トレース: [ 0.000000] ダンプバックトレース+0x0/0x1b0 [ 0.000000] show_stack+0x18/0x24 [ 0.000000] ダンプスタックレベル+0x68/0x84 [ 0.000000] ダンプスタック+0x18/0x34 [ 0.000000] パニック+0xb8/0x378 [ 0.000000] add_taint+0x0/0xc0 [ 0.000000] arm64_serror_panic+0x64/0x74 [ 0.000000] do_serror+0x58/0x60 [ 0.000000] el1h_64_error_handler+0x30/0x50 [ 0.000000] el1h_64_error+0x78/0x7c [ 0.000000] __next_mem_range_rev+0xd8/0x1fc [ 0.000000] memblock_find_in_range_node+0x228/0x240 [ 0.000000] memblock_alloc_range_nid+0xac/0x14c [ 0.000000] memblock_alloc_internal+0x80/0xe0 [ 0.000000] memblock_alloc_try_nid+0xb8/0xe4 [ 0.000000] pcpu_alloc_first_chunk+0x13c/0x250 [ 0.000000] pcpu_setup_first_chunk+0x7d8/0x8c0 [ 0.000000] pcpu_embed_first_chunk+0x6c4/0x774 [ 0.000000] セットアップ_per_cpu_areas+0x3c/0xc4 [ 0.000000] スタート_カーネル+0x194/0x6bc [ 0.000000] __primary_switched+0xa0/0xa8 [ 0.000000] 10秒後に再起動します。 注意: リセット状態: 破壊的リセット (RUN) お知らせ: BL2: v2.5(リリース):bsp38.0-2.5-dirty Re: s32g DDR change こんにちは、 @ZHANGBOWEN ご返信ありがとうございます。 DDR ECC を有効にすると、DDR 容量の最後の 1/8 が ECC チェックサム値の保存に使用されます。したがって、ECC 対応 DDR を正常に動作させるには、いくつかの変更が必要になる場合があります。 1. s32g_platform_def.h を通じて ATF 構成を更新します。次のように。 #BL33_BASE (S32G_DDR0_END - (256 * SIZE_1M) - S32G_BL33_IMAGE_SIZE - \ を定義します サイズ_1M + 1) 2. BSP UM に従って menuconfig を呼び出し、U-Boot の次の特定の構成を設定します。 CONFIG_SYS_TEXT_BASE=0xefaa0000 CONFIG_SYS_DATA_BASE=0xefa00000 3. 2番目のメモリマッピングをコメントアウトします。 次に、TFA/uboot を再構築してテストします。 BR チェイン Re: s32g DDR change こんにちは@chenyin_h ご返信ありがとうございます。 ご指導のとおり、 (1)については、 ZHANGBOWEN_1-1770117024567.png (2)について ZHANGBOWEN_0-1770116949209.png (3)について ZHANGBOWEN_2-1770117066092.png 正しく理解して修正できましたか? その後、TFA/ubootを再構築してテストしましたが、結果はNOTICE: Reset status: Power-On Resetの1行だけが表示されます。 Re: s32g DDR change こんにちは、 @ZHANGBOWEN ご返信ありがとうございます。 1 & 2: DDR ECC の機能はメモリ エラーを検出して修正することであり、通常は信頼性の高いシステムに使用されます。ECC を使用するかどうかは、実際のシステム要件によって異なります。 3. 申し訳ありませんが、あなたのケースには正式なパッチがありません。RDB のデフォルト設定は 4G なので、経験から役立つかもしれないヒントをいくつか提供しました。あなたの問題の確認を続けさせてください。 BR チェイン Re: s32g DDR change こんにちは、 @chenyin_h テストしたところ、ECC を無効にすると、システムが正常に起動して実行されることがわかりました。 そこで、(1) ECC が必要かどうか、(2) ECC を有効にしない場合はどのような影響があるかを知りたいです。 (3)ECCが有効になっている場合、どのように適応的に変更すればよいでしょうか? Re: s32g DDR change こんにちは、 @chenyin_h ご返信ありがとうございます。 ECC を有効にしたい場合、システムを正常に起動させる他の方法はありますか? Re: s32g DDR change こんにちは、 @ZHANGBOWEN ご返信ありがとうございます。 DDR ツールで使用したパラメータを再度確認し、さらに以下の変更を提案します。 u-boot menuconfig -> General setup で、「DRAM バンクの数」を「 1 」に設定します。 次に、画像を再構築してもう一度試します。 BR チェイン Re: s32g DDR change こんにちは、 @chenyin_h ご指導に従って、以下の変更を行いました 1. s32g_platform_def.h を通じて ATF 構成を更新します。次のように。 #BL33_BASE (S32G_DDR0_END - (256 * SIZE_1M) - S32G_BL33_IMAGE_SIZE - \ を定義します サイズ_1M + 1) 2. BSP UM に従って menuconfig を呼び出し、U-Boot の次の特定の構成を設定します。 CONFIG_SYS_TEXT_BASE=0xefaa0000 CONFIG_SYS_DATA_BASE=0xefa00000 3. 2番目のメモリマッピングをコメントアウトします。 4. u-boot menuconfig -> General setup で、「DRAM バンクの数」を「 1 」に設定します。 その後、ubootを再構築しましたが、結果は1行だけ 注意: リセットステータス: パワーオンリセットが表示されます Re: s32g DDR change こんにちは、 @ZHANGBOWEN ご返信ありがとうございます。 TFA にデバッグ オプションを追加し (ビルディング中に「DEBUG=1」を追加)、さらにデバッグを行うためにより多くの情報を共有するために再構築していただけますか? BR チェイン
View full article
现场导向控制:ADC 采样延迟 你好 我正在研究 MBDT AN 13902 的示例设计。该电机算法的工作频率为 10kHz,因此 ADC 和 PWM 是同步的。 AN13767 与没有 MBDT 的软件相同。在本应用笔记中,我们可以看到 ADC 样本是在 " " FOC 计算过程中直接处理的 "。因此,在相同的 100 微秒时间内。   JeremyC_1-1770042316284.png 我在同一个ADC输入上添加了一个比较器,当信号高于其中间值时触发GPIO。并看到理论触发信号(物理信号)和输出 GPIO 信号之间有 224µs 的延迟,因此循环时间超过 2 次。(我们知道 GPIO 可以在 100µs 内多次上升和下降,因此其上升时间几乎可以忽略不计。) JeremyC_3-1770042712982.png 由于输入 ADC 信号与 ADC 信号不同步,因此实际延迟时间为 224µs 至 324µs 不等。但请记住,224 微秒才是真正的延迟。 你知道为什么会这样吗? 顺祝商祺! 热雷米 Re: Field oriented control : ADC sample delay 您好, 从描述中,我不太清楚您的测量是如何进行的,使用了哪些信号。 根据 AN13767 及其项目设置,BCTU 清单包含 4 个项目,2 个并行转换是在 ADC0/ADC1 上完成的。这是由 emiOS0 ch4 标志触发的,位于 ch4 输出信号的下降沿。bctu_FIFO1_WatermarkNotification 将在这 4 次转换完成并将结果存储到 FIFO1 之后调用。因此,你可以在这个通知中添加一些GPIO设置/切换,并根据emiOS0 ch4的输出来衡量这个值。这应该在 100us 期限内,通知延迟要少得多。 BR, Petr
View full article
Kinara ARA-SDK ライセンス こんにちは、NXPチーム(そしてAra-2 / Kinaraツールに詳しい皆さん) 私は、Ara-2 (Kinara) コンピューティング モジュールのモデルをコンパイルするための正しいライセンス/アクセス パスを理解しようとしています。特に、Kinara が NXP に買収され、NXP の公開資料に NXP のソフトウェア エコシステムへの SDK の統合について記載されている現在では、この理解が重要になっています。 私の設定/目標 ハードウェア: Geniatech Ara-2 コンピューティング モジュール SDK: Geniatech 提供の Kinara Ara-2 SDK r1.3 使用例: 個人、非営利(研究/調査/テスト) モデルターゲット: Qwen/Qwen2.5-7B-Instruct (GPTQ Int4) これまでのところうまくいったこと モード 1 フローを完了して、モデルを ONNX に変換できます。 結局、次のようになります。 model.onnx (小さなグラフファイル) 同じディレクトリ内の model.onnx.data (大きな外部テンソル データ / 重み)。 失敗するもの モード 2 (デプロイ可能な .dvm を生成するコンパイル段階)SDKs のビルド ツールからのライセンス チェックアウト/検証エラーで失敗します。 私の知る限り、これは.dvmの生成をブロックしますONNX エクスポートが成功した場合でも。 私が行き詰まっているところ Kinara ライセンス キーを持っていません。 Geniatech のドキュメントによると、SDK ライセンス キーの取得は Kinara 経由で行う必要があるとのことです。 Kinaraのカスタマーサポートポータルでは、一般的な個人メールドメイン(例:gmail.com)を使用した登録を拒否しているようです。SO、そこでリクエストを送信することはできません。 ここで質問する理由(NXP/Kinara統合の混乱) NXP の公開資料によると、Kinara の SDK とモデル ツールは NXP のエコシステム (eIQ を含む) に統合されつつあり、Ara-2 は現在、関連する「Ara ソフトウェア開発キット」のダウンロードとともに NXP 製品として提供されています。 しかし、実際にはそれは明らかではありません。 開発者はコンパイルのためにライセンスキーを取得する必要があり、 「Ara SDK / eIQ 統合」パスが現在サポートされているルートであるかどうか。 質問 ONNX → .dvm をコンパイルするにはライセンスキーが必要ですか?Ara-2 SDK ツールチェーン (r1.3 / ARA-SDK) を個人的/非商用目的でも使用できますか? はいの場合、個人/愛好家ユーザーが評価/開発者アクセスを取得するための公式プロセスは何ですか(特に企業の電子メールドメインがない場合)? 既存の NXP アカウントがある場合、Ara-2 ユーザーはどこで次の情報を取得すればよいですか。 「公式」Ara SDKバイナリ/ツールチェーン(コンパイラ)、および/または コンパイルに必要なライセンス メカニズムですか? コンパイルにライセンスキーが必要で、それが簡単に入手できない場合、コンパイル済みの.dvmファイルはありますか?モデルパッケージ(例:Qwen 7B/Qwen2.5用)7B) NXP/Kinara/パートナーが Ara-2 ユーザーが実行できるように提供していますか? NXP/Kinara の担当者が、意図されているパス (NXP ポータルと従来の Kinara ポータルの比較、およびライセンスが現在どのように処理されているか) を明確にしていただければ、非常に助かります。 Re: Kinara ARA-SDK Licensing 私も同じ質問があります!デバイスとドライバを入手しました。しかし、SDK はなく、ライセンスもないと思われます (必要な場合)。デバイスは、Lenovo ThinkCentre Ultra neo コンピューター内に静かに置かれているだけで、何も動作していません。Lenovo は、NPU としての Windows 11 への統合を完了しませんでした。少なくともいくつかのモデルを実行したり学習したりするために使用したいと思います。今では、私の PC 内で完全に未使用のシリコン片になっています。もっと多くの人がこのテクノロジを使い始めれば、そのテクノロジの普及に役立つと思います。 Re: Kinara ARA-SDK Licensing @kratafila私も、Geniatech 経由で Linux SDK バンドルを入手するまでは、基本的に未使用のシリコンでした。正直に言うと、モデルをコンパイルして実行できないため、まだ未使用のシリコンです。 ちなみに、Geniatech (私の Kinara Ara-2 M.2 モジュールのベンダー) がこれらの SDK/ランタイム ダウンロードを私と共有してくれました。これらは Linux に重点が置かれており、ThinkCentre 内の Ara-2 ハードウェアに適用されるかどうかはわかりません (または、Windows 11 のヘルプ。Windows バイナリが含まれていますが、Linux ソフトウェアの方が成功しました)。ただし、Linux でテストしたり、デバイスが動作することを確認できる場合は、役立つ可能性があります。 1) ドライバ/ランタイム + サンプル .dvmモデル (Geniatech「顧客対応」バンドル): hxxps://mega[.]nz/file/nJcF0K5a#W-Ote-fp59hXoq4T0GGsaQmwGTRphWz0JATowyWjQpg 2) Geniatech が最初に送信した「モデル コンパイル」フォルダー (注: これだけではコンパイラ バイナリは含まれていません)。 hxxps://mega[.]nz/file/KoclFQrJ#ifNOX7w2Y1qgLM6rnm7xPnUprwZZqhuRvelFG5p0MJQ 3) Geniatechが後日提供したAra-2 SDKのフルtarball(これは実際のツールチェーン/コンパイラを含むはずのもの、例:dvrun): hxxps://file[.]geniatech[.]com/down-eng/BSP/kinara_SDK_20251120[.]tar[.]bz2 上記のいずれかを試して進展があった場合(SDK をインストールしてデバイスが認識されるだけでも)、こちらに投稿してください。これは、私たちのためだけではなく、複数のコミュニティ間で「公式」な作業パスや SDK/ライセンスの実際の入手先、および追加モデルのコンパイルと実行方法について、より広範な混乱があるように思われるためです。
View full article
FlexCAN3 stuck in freeze mode after initialization Hi all, I'm currently developing a driver for the FlexCAN3 module with FD functionalities. I've just run into a problem where the module doesn't exit freeze mode at the end of my init function. My init code follows the guide in 45.5.1 pretty closely, with some modifications to some of the bit settings and also doesn't enable any interrupts. Upon negating the MCR[FRZ] and MCR[HALT], it polls MCR[FRZACK] but gets stuck in the while loop forever because the bit never negates to 0. Interestingly, I also notice that the debugger can't read any of the RXIMR registers (up to the max number mailbox) as they are highlighted in red, with no numbers displayed. Here are my register settings; settings not listed here have default values: MCR[IRMQ] = 1, MCR[AEN] = 1, MCR[FDEN] = 1, MCR[MAXMB] = 23 CTRL1[LPB] = 1 CTRL2[TASD] = 24, CTRL2[MRP] = 1, CTRL2[ISOCANFDEN] = 1 RXMGMASK[MG] = 0 CBT[BTF] = 1 FDCTRL[TDCEN] = 1 The CBT and FDCBT regs are configured according to the input frequency, which I've checked and made sure their bit fields have the right values. Here are my pin configs: LamK_2-1769564802833.png And here is what I'm seeing: LamK_0-1769564648102.png LamK_1-1769564755696.png I also haven't connected a twisted pair of CAN cables to the connector yet, not sure if that's relevant to the issue. I'll also share my files here in case it helps to dig through my code. This is my entry into embedded software so my coding might be unorthodox, in a manner of speaking. Lmk if I'm missing anything. I'd appreciate it if anyone could help me. Thank you, Lam i.MXRT 106x Re: FlexCAN3 stuck in freeze mode after initialization Hi @LamK , Thank you so much for your interest in our products and for using our community. 1:which exact i.MX RT device are you using (for example, RT1050/RT1060/RT1170), and is this specifically FlexCAN3 ? 2: When you hit a breakpoint or single‑step with MCR[FRZ]=1, FlexCAN may stay in Freeze. Then FRZACK never clears, even after HALT/FRZ are cleared. Try running the code without stopping the debugger to see if it exits Freeze. Snipaste_2026-04-08_17-28-13.png Best Regards May Liu Re: FlexCAN3 stuck in freeze mode after initialization Hi again @mayliu1 , Thank you for responding. Fortunately, I've figured it out a while back after digging through the HAL. I simply forgot to enable the serial bus, which explained why it wasn't exiting freeze mode because the prescaler wasn't running, even though I was still able to see the registers. I can freely enter and exit the freeze mode anytime I want now. LamK_1-1776046950593.png And to answer your first question anyway, it is an RT1060X and yes it is FlexCAN3. I've been developing my own drivers instead of using the HAL so I've encountered quite an amount of problems, a few of which you have helped me with so thank you again. Best Regards, Lam 
View full article
PCF85134HL 软件帮助 我在PCF85134HLLCD 驱动 IC 的软件驱动程序实施方面需要帮助。 是否有适用于此设备的参考模板或示例驱动程序? 如果没有,请澄清以下几点。 我使用的是 atmega2560 在初始化之前,LCD 驱动程序保持默认状态,即1:4 多路复用、1/3 偏置和显示禁用,在此期间,所有 COM 和 SEG 引脚都保持在VLCD 位置。一旦启用显示功能,我想确认COM 和 SEG 引脚是否应随时间而变化,而不是保持恒定电压。 就我而言,在启用 LCD 之后: COM1、COM2 和 COM4 保持约1 V 电压 COM3 保持在约3 V 所有 SEG 引脚保持0 V 我使用示波器和万用表对这些电平进行了验证,电压不会随时间变化。 您能否确认这种行为是否在预料之中,或者在启用 LCD 时 COM 和 SEG 引脚是否应该显示不同的(时变)波形? 如能得到您的指导,将不胜感激。感谢您的支持。 pcf85134hl@ software @pcf85134hl @pcf85134 @lcddriver Re: PCF85134HL software help 你好,韦伊、 您的 OSC = VSS 连接对于使用内部振荡器是正确的。在此模式下,CLK 成为设备向外界呈现的输出(因此可用于为其他级联 LCD 驱动器计时)。 您的 "COM3 问题会在更改多路复用模式时发生转移 "这一事实是一个很好的线索。这表明正在应用多路复用的 MODE-SET 位,但背板波形生成仍未激活,通常是因为 E=0(显示禁用)或 CLK 上的 100k 至 GND 有效加载/抑制了时钟。 BRs, Tomas Re: PCF85134HL software help 感谢托马斯的回复。 您提到时钟是强制性的。在我的情况下,我使用的是数据表中的内部时钟。 Screenshot 2026-01-23 145821.png 我已将 OSC 引脚连接到 VSS,C LK 引脚通过 100 k 电阻器连接到地 (VSS),当我检查示波器中的 CLK 引脚时,我能看见 clk 脉冲。但是,数据手册中没有明确提到将 CLK 引脚连接到地,因此,如果您能说明这种配置是否正确,或者我应该将其连接到哪个引脚,我将不胜感激。 关于你提出的问题: VLCD 和 VDD 均连接至 3 V OSC 引脚连接至 VSS 如果需要任何补充信息,请告诉我。 此外,我还尝试更改多路复用设置,但在所有配置中,COM 引脚都保持静态直流电平;不过,根据所选的多路复用配置,在 COM3 上观察到的问题会转移到相应的 COM 线路上。SEG 引脚也保持静态,没有表现出任何时变行为。 PCF85134HL @TomasVaverka @software @pcf85134 Re: PCF85134HL software help 你好,韦伊、 不幸的是,我们没有 PCF85134HL 的官方参考驱动程序。该设备也处于 EoL 状态,因此我目前只能提供有限的支持。   关于波形:初始化后,当使用有效时钟启用显示功能时,COM (BPx) 和 SEG (Sx) 引脚都会根据所选的多路复用/偏置输出随时间变化的交流波形,它们不应保持固定的直流电平。开机时,设备默认禁用显示器并强制将所有 COM/SEG 转换为 VLCD,您必须发送模式设置(E=1)并写入显示内存。另请注意,时钟是必须的。没有它,液晶显示屏就会冻结在直流状态。   您的测量结果表明显示屏仍处于禁用状态、时钟未运行、VLCD 不存在或 I²C 命令序列未完成。请确认:(1) VLCD 和 VDD 均已连接(根据数据手册),(2) OSC 引脚绑扎正确且存在时钟,(3) 发送 E=1 的 MODE-SET,然后发送 DEVICE-SELECT、LOAD-DATA-POINTER 和数据,以及 (4) 地址引脚与命令匹配。对于范围检查,应测量 SEG 至 BP(交流耦合),而不是节点至接地。   BRs, Tomas  
View full article
MCXA153 i2c 超时 尊敬的各位, 我目前正在开发一个基于 MCXA153VLH 微处理器的项目,它使用 I2C 外设。 以你的 “lpi2c_interrupt_b2b_transfer_master” 示例为参考,我成功地读取和写入 24C02 EEPROM。 我现在想实施一种超时机制,以防止在通信线路出现问题时进程停滞或挂起。能否提供在 LPI2C 驱动程序框架内实施此类控制的指南或最佳实践? 非常感谢你们的帮助与合作。 顺祝商祺! 嵌入式组件 Re: MCXA153 i2c timeout 你好@_Ferrari_ 您可以在 I2C 驱动程序的 LPI2C_MasterTransferNonBlocking() 功能中插入 MSR->PLTF 检查逻辑,以检测引脚低电平超时条件。 Alice_Yang_1-1769423981030.png 谢谢! BR 爱丽丝
View full article
[不正使用] 記事作成者: @jeremyzhou / ナレッジベース: imxrt@tkb / 報告者: iwbenzq iwbenzq は、 @jeremyzhou が投稿した記事 「マイクロコントローラ使用の認識モデル」を 以下の理由で報告しました。 理由:嫌がらせ 詳細: アシビルはどこで買えますか? 割引プロスカーを購入する 購入ニモトップビザ処方箋なし プロスカーをオンラインで最安値で購入 分割処方箋なしのプロスカー 購入プロスカーのブログ プロスカーの購入方法 プロスカー オンライン購入 j233w 購入アシビルクリームの最安値 ゾビラックスとアシビルをバーモント州で入手 購入アシビル トピーカ 次のニモトップはどこで買える? カナダオンライン薬局のアシビルクリーム 低いプロスカーの服用量と注文 一般アシビル ヘルペス フェデックス イリノイ ジェネリックインターネットアラスカのアシビル プロスカー翌日配送で購入 購入アシプリン-ジピリダモール 最安値 JCB メイドストーン プロスカー ピザの速達配達 購入アシビルを合法的にオンラインで購入 ジピリダモールの注文方法 ジェネリックプロスカーブランド zv0rz nimotopコスト アトランタでプロスカーを購入 プロスカー実際には世界中のタラ 次にジピリダモールを注文する場所 どこでアシビルを購入できますか? https://dev.worldwar1luton.com/forum-topic/dipyridamole-asiprin-saturday-delivery-overnight-delivery "> 一般アシプリン-ジピリダモールOTC 欲しいアシビルを購入する ニモトップを購入したい 次のプロスカーを購入する場所 ギリシャでアシビル200mgの医薬品を購入 安いジピリダモール女性 安いアシビルオンライン薬翌日配送 ニモトップハワイで処方箋なしで30mgを入手 25125 アシプリン-ジピリダモール固定剤のコスト 購入アシビル オンライン 処方箋なし CANニモトップを購入しました 購入プロスカーオン 注文ジピリダモール血栓 送料無料 記事リンク: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/Recognition-model-for-microcontroller-use/ta-p/1103364 記事の著者: @jeremyzhou |メールアドレス 報告者: iwbenzq |メールレポーター 報告された記事には 8 件のコメントがあります。
View full article
适用于 ARM 版本 2.2 的 S32DS 许可证过期 Activation Code:889D-108E-F21F-A430 官网更新失败!该如何操作? 回复: S32DS for ARM Version 2.2 许可证过期 搞定了。官网得切成 英文 网址。
View full article
由于 RCW 损坏,自定义 LS1046 仍处于 RESET 状态 您好, 我有一款基于 LS1046ARDB 的定制板。它没有在 EMMC 中配置 RCW,因此无法启动。我试图在 CodeWarrior studio 中运行初始化脚本,并将 USE_SAFE_RCW 设置为 true。我有正确的 DDR 初始化设置,因为这个板以前已经运行过了。但我在 “连接诊断” 选项卡中仍然收到 " 内存访问失败 "。 Rinke_0-1735760492675.png 下面是连接服务器的日志 Rinke_1-1735760532300.png 我有一个单独的项目,其中包含 RCW 配置。当我用 " 写入 RESET 配置字 " 进行测试时,测试通过了。这真的会写给董事会什么吗? Rinke_2-1735760614580.png 我不确定我具体需要从这个 RCW 项目中得到什么。但是到目前为止,由于RCW坏了,板在RESET时就挂起了。我怎样才能让板上有一个正常运行的 RCW 来让它退出 RESET 然后启动它? 谢谢您! Re: Custom LS1046 Stays in reset due to broken RCW 你找到解决办法了吗?我也遇到了同样的问题,希望得到帮助。 Re: Custom LS1046 Stays in reset due to broken RCW 对于硬代码模式,如果 RCW 不正确,一般只与硬件有关,那么使用开关如何? 信号如何? CWTAP? Re: Custom LS1046 Stays in reset due to broken RCW 您好, 感谢您的快速回复! 我已经按照本教程操作,并将 USE_SAFE_RCW 设置为 true。但是随后它仍然处于RESET状态。我不知道该怎么办。 Re: Custom LS1046 Stays in reset due to broken RCW 知道了 请将 RCW 设置为 "硬编码 "模式进行第一次闪光,然后 "硬编码 "将为空 RCW 提供可用的 RCW。 请按照 C:\Freescale\CW4NET_v2020.06\CW_ARMv8\ARMv8\Help\PDF\ARMv8_Targeting_Manual 8.6 董事会恢复 本主题介绍在 闪存空白或映像损坏时使用适用于 QorIQ LS 系列 — Arm V8 ISA 的 CodeWarrior 开发工作室进行板恢复所需的步骤 。 或者使用 "硬代码 "的开关。 有什么不同吗? Re: Custom LS1046 Stays in reset due to broken RCW 感谢您的建议。 我正在尝试学习如何开一个新的板。由于我还没有新主板,我正在尝试使用现有的主板。因此,从正常运行的 QSPI 启动然后刷新 EMMC 无助于我理解启动过程... 我想闪存一个空的 EMMC,其中有一个损坏/无 RCW。你有这方面的说明吗?或者只是关于如何打开新/新鲜/空白板的一般说明?没有 SD 卡。 Re: Custom LS1046 Stays in reset due to broken RCW 当你能从 QSPI 启动时,你可以使用 uboot 来刷新 eMMC, LSDK21.08第 119 页、 将 LSDK 复合固件映像编程到 LS1046ARDB 的 SD 卡上. 建议修改 LSDK eMMC 源代码 RCW https://github.com/nxp-qoriq/rcw/blob/LSDK-21.08/ls1046ardb/RR_FFSSPPPH_1133_5559/rcw_1800_emmcboot.rcw 如果 RCW 不正确,则 CodeWarrior TAP 无法成功连接,你也无法使用它来调试 RCW。 当 RCW 不正确时,只有调试信号才能识别 LS1046A 的状态。 请测试与 PORESET 相关的信号,请参阅 LS1046A 参考手册第 211 页图 4-1。上电复位序列 修改金色的 RCW 将比生成一个原始的 RCW 更好。 Re: Custom LS1046 Stays in reset due to broken RCW 我想连接 TAP 来修复 RCW 然后通过闪存工具刷新 EMMC。 我正在使用 CodeWarrior 开发工作室开发 QorIQ LS 系列 Arm V8 ISA 版本 11.5.12 Buildid 221209 如果由于 RCW 错误我无法连接 TAP。如何修复 RCW 错误?我需要连接 TAP 来修复 RCW 错误对吗?如果没有,您能说明如何修复损坏的 RCW 吗? Re: Custom LS1046 Stays in reset due to broken RCW 您是想使用 RCW 还是连接 CWTAP? 您使用的 SW 版本是什么? 如果你因为 RCW 而无法从 eMMC 启动,那可能是由于 RCW 错误而无法连接 CWTAP。 Re: Custom LS1046 Stays in reset due to broken RCW 这是我的初始化文件。也许你能看一看,发现什么重大错误? 我不确定是否应在该节中写出 RCW 全文。但我测试了两种方法,并没有什么不同。但其评论已被删除。 Re: Custom LS1046 Stays in reset due to broken RCW 嗨,琼、 感谢您的回答!我知道硬件本身完全正常。我的板上有一个拨码开关可以从 EMMC 或 QSPI 中选择启动。(唯一的拨码开关或任何与 RCW 相关的东西)QSPI 仍处于完全运行状态,主板启动正常。但是,在学习启动过程中,我已经清除了EMMC并将开关设置为EMMC,以学习如何启动板。我找到了AN12081,正在尝试使用闪存工具闪存 EMMC。我的假设是,我的初始化文件还不正确。但我不知道是什么原因。 当我使用我的初始化文件将交换机设置为从正常运行的 QSPI 启动时,它将正确通过连接诊断,我可以使用闪存器。但是,当我将拨码开关设置为 EMMC 时,主板会保持 RESET 状态。还有其他小窍门吗? Re: Custom LS1046 Stays in reset due to broken RCW 如果设置了 USE_SAFE_RCW= TRUE,在"reset_to_debug" 后却出现错误,则问题可能与硬件有关。 请测试与 PORESET 相关的信号,请参阅 LS1046A 参考手册第 211 页图 4-1。上电复位序列 还有 LS1046ARDB 应用笔记中使用 CodeWarrior 的有用的 AN、AN12081、 RAM 启动 这将有助于调试 LS1046A。 https://community.nxp.com/t5/Layerscape-Knowledge-Base/Bring-up-the-LS1046A/ta-p/1575023 记录如何从 eMMC 启动 启用板载 eMMC 从 RCW 源文件编译固件 将固件编程到目标板(LS1046ARDB) 有些资料来源可能比较陈旧,但您可以遵循这些步骤。 无论如何,请测试信号以找出根本原因,这将有助于客户 LS1046A 主板可靠地运行。 如有任何讨论,请随时告诉我。 谢谢!
View full article
Need working RTD version for S32 DS 3.6.4 with sample CAN application for S32K344 Hello,  We just received multiple EVBs: https://www.nxp.com/design/design-center/development-boards-and-designs/MR-CANHUBK344 We want to test out each board for working CAN interfaces. For this purpose please point to working CAN example projects and RTD version which have been tested. I am not interested in loopback examples, but full CAN example which demonstrate RX and TX on the given board. Thanks! Re: Need working RTD version for S32 DS 3.6.4 with sample CAN application for S32K344 Hi, there is direct "IEEE1722 demo app" demo example for this board available from its web page. But it was designed in S32DS3.4 and RTD2.0.0. You can simple refer to it. Most probably this will need to be ported, if you want to use latest S32DS, not sure of the RTD version you have. There was some successful port to S32DS3.5 and RTD300; https://community.nxp.com/t5/S32K/Porting-MR-CANHUBK344-IEEE1722-to-work-with-newer-S32DS-3-5-and/td-p/1775199  Simple CAN demo for FlexCAN0 is posted on https://community.nxp.com/t5/S32K-Knowledge-Base/RTD600-MCAL-amp-IP-S32K3X4EVB-T172-FlexCAN-Example-Interrupt/ta-p/2142069 This should work on MR-CANHUBK344 as well, only check/modify the pin used for CAN0 EN/STB_N pins. BR, Petr
View full article
S32K3xx RTD 6.0.0 Slicing-by-8S32K3xx RTD 6.0.0 のライセンス こんにちは、チームの皆さん S32K3xx RTD 6.0.0 の SCR には次の内容が含まれています: 1. RTD が配布されるパッケージ (exe、.zip) にはそのようなライセンスはありません。 SCR からヘッダー ファイルを開くと、次の内容が含まれています。 2. 矛盾があります。2項ですか、3項ですか? 3. BSD 2 条項ライセンスも RTD では配布されていないか、見つけられませんでした。 S32K3xx RTD 7.0.0 SW32K3_S32M27x_RTD_R23-11_7.0.0_D2511_SBOM.json ここで SBOM はヘッダー ファイルと一致します。 4. しかし、この場合も、ライセンスはパッケージに含まれていません。 それについてコメントしていただけますか? ありがとうございました。 BR、ダニエル RTD Re: S32K3xx RTD 6.0.0 License of Slicing-by-8S32K3xx RTD 6.0.0 こんにちは@danielmartynek このお問い合わせについて、あなたと RTD の信頼できるアドバイザーにメールを送信しました。 CESS の新しいプロセスに従って、このチケットでどのお客様をサポートしているのか教えていただけますか? Re: S32K3xx RTD 6.0.0 License of Slicing-by-8S32K3xx RTD 6.0.0 こんにちは、 @cuongnguyenphu さん、 この質問は、当部門内の内部ソフトウェア配布手順から発生したものであり、お客様からの報告はありませんでした。 調べていただきありがとうございます。 ダニエル
View full article
S32K3xx FreeRTOS SMP Here is a FreeRTOS SMP demo based on S32K389 EVB.  Key Features: 1. FreeRTOS SMP is running on the S32K389 with all cores active. 2. DTCM is used as the task stack. 3. The hardware semaphore (SEMA42) is enabled in FreeRTOS. 4. XRDC is enabled so that each core has a unique core ID for semaphore operations. 5. CAN0 runs on Core0, and CAN4 runs on Core2. 6. LPUART11 is used to print debug information. All cores can output their own messages via LPUART11. 7. Three LEDs are controlled by the three cores.
View full article
i.MX RT1060 API 的 LPSPI_MasterTransferEDMA 不支持 24bit 帧大小? 我正在尝试使用 LPSPI 通过 DMA 写入 24 位帧。应用并不重要,但在我的例子中,应用是将数据从内存发送到外部 DAC。我想让它与 DMA 一起工作,因为我最终将使用 TCD 链接列表和 PIT 来连续更新 DAC,而不需要 CPU 开销。这是外部 ADC 和 DAC 的常见应用。16 位 DAC/ADC 具有 24 位帧要求也很常见(顶字节用于命令,低字节用于数据)。我不想使用 uint8_t 数据并将传输分成 3 个字节,我想使用 uint32_t 数据并以 24 位帧大小发送,最上面的字节要忽略。 现在来看看 LPSPI 和 DMA 配置。 1.imxRT1060 SDK 的 API LPSPI_MasterInit 函数的 lpspi_master_config_t 结构允许我将 比特每帧 设置为 24。在不使用 DMA 的情况下进行标准传输时,这不成问题。 2.但是,在使用 DMA 和 API 的 LPSPI_MasterTransferEDMA 函数时,eDMA 硬件是否无法处理或支持 24 位帧大小?在 LPSPI_MasterTransferEDMALite 中,DMA 传输宽度在 edma_transfer_config_t 结构中设置。具体来说,srcTransferSize 和 destTransferSize 字段是根据 bytesEachRead 和 bytesLastWrite 值配置的,这些值来自 SPI 帧大小(bytesPerFrame),方法是:....。 /* LPSPI_MasterTransferPrepareEDMALite */ uint32_t bytesPerFrame = ((base->TCR & LPSPI_TCR_FRAMESZ_MASK) >> LPSPI_TCR_FRAMESZ_SHIFT) / 8U + 1U; if (bytesPerFrame <= 4U) { handle->bytesEachWrite = (uint8_t)bytesPerFrame; // for 24bit frames = 3 handle->bytesEachRead = (uint8_t)bytesPerFrame; // .... handle->bytesLastRead = (uint8_t)bytesPerFrame; // .... } /* now back in LPSPI_MasterTransferEDMALite */ switch (handle->bytesEachRead) //bytes each transfer { case (1U): transferConfigRx.srcTransferSize = kEDMA_TransferSize1Bytes; transferConfigRx.minorLoopBytes = 1; if (handle->isByteSwap) { addrOffset = 3; } break; case (2U): transferConfigRx.srcTransferSize = kEDMA_TransferSize2Bytes; transferConfigRx.minorLoopBytes = 2; if (handle->isByteSwap) { addrOffset = 2; } break; case (4U): transferConfigRx.srcTransferSize = kEDMA_TransferSize4Bytes; transferConfigRx.minorLoopBytes = 4; break; default: transferConfigRx.srcTransferSize = kEDMA_TransferSize1Bytes; transferConfigRx.minorLoopBytes = 1; assert(false); break; } 我们得到的是默认大小写和一个错误,因为没有处理 3 字节的大小写。EDMA 硬件是否支持 3 字节传输?基本上,我想使用uint32_t数据和帧作为3字节并通过DMA传输,忽略最重要的字节。有可能吗? Re: i.MX RT1060 API's LPSPI_MasterTransferEDMA does not support 24bit framesize? 你好@azone、 非常感谢您关注我们的产品并使用我们的社区。 请查看以下链接,其中描述了 eDMA 支持 1、2、4、8、16、32、64 字节的传输大小,它不支持 24 位(3 字节)的传输大小。 MCUXpresso SDK API 参考手册:EDMA:增强型直接存储器存取 (eDMA) 控制器驱动程序 mayliu1_0-1768271744223.png 顺祝商祺! MayLiu Re: i.MX RT1060 API's LPSPI_MasterTransferEDMA does not support 24bit framesize? 好的,谢谢你的确认,这样我就不用浪费时间去尝试让它工作了!因此,真正唯一的方法是使用所有内容都设置为 uint8_t 数据,然后使用 klpspi_masterpcsContinuous 作为三个字节发送。这没关系,因为我们对所有其他外设都是这样做的,但是对于16位DAC的实现,这增加了不必要的开销。谢谢。
View full article
LPC5536 的新修订版 1B 触发信号硬故障 您好, 我们最近收到了采用 LPC5536 更新芯片修订版 1B 的新 PCB。然而,当我们在 SDK 函数 FLASH_IsFlashAreaReadable() 中使用相同固件时,却遇到了硬故障。我附上了一张屏幕截图,该屏幕截图捕获了系统出现硬故障之前的步骤。我们目前使用的是 SDK 25.03.00 版和 MCUXpresso IDE v24.12 版。 如果您对解决这一问题有任何见解或建议,我们将不胜感激。谢谢!   Re: New Revision 1B of LPC5536 Triggers Hard Fault 你好,@无人知晓、 除了勘误表 LPC553x 第 5.1 章"ROM.1" 中提到的勘误(与修订版 1B 直接相关)外,我没有发现修订版之间有任何变化。您能否验证您的 FLASH_init 函数是否执行了勘误表中指出的功能? BR Habib Re: New Revision 1B of LPC5536 Triggers Hard Fault 你好,@无人知晓、 能否详细解释一下您执行勘误修正所使用的方法? BR Habib Re: New Revision 1B of LPC5536 Triggers Hard Fault 你好 非常感谢你们的快速回复。我们尝试根据勘误表实施变通方法。但这无济于事。我猜 API 位置地址 0x13028c41U对于 1B 版是错误的。 Re: New Revision 1B of LPC5536 Triggers Hard Fault 你好,@无人知晓、 我知道您正在使用我们 SDK 中的 FLASH_Init 函数,而且正如您所提到的,您目前使用的是 SDK 版本 25.03。能否验证该功能是否正确执行?具体来说,就是这句话: /* 1B 需要调用 ffr_init。0A 也可以。*/ return BOOTLOADER_API_TREE_POINTER->flashDriver->ffr_init(config); 另一方面,在改用新的 LPC 版本时,您是否修改了硬件设计的任何部分? BR Habib Re: New Revision 1B of LPC5536 Triggers Hard Fault 您好, 好的,我看到应用程序接口已经完成了修复。是的,它被调用了,而且所有其他功能似乎都能正常工作。只是FLASH_IsFlashAreaReadable()无法正常工作。 现在我们采用这种变通办法: bool flashRead (uint32_t addr, uint8_t *flashData, uint32_t size){ status_t status; if(SYSCON->DIEID == 0){ status = FLASH_IsFlashAreaReadable(&flashConfig, addr, size); if(status != kStatus_FLASH_Success){ return false; } } status = FLASH_Read(&flashConfig, addr, flashData, size); return (status == kStatus_FLASH_Success); } Re: New Revision 1B of LPC5536 Triggers Hard Fault 你好,@无人知晓、 我发现这篇帖子似乎也有同样的问题,解决方法是不使用函数"FLASH_IsFlashAreaReadable" ,而是使用 FLASH_Read() HAL API 调用,如果状态返回错误,这意味着可能是 FLASH 区域隐藏了。这与您在解决方法中使用的流程相同。 请允许我向内部团队询问有关此问题的更多信息,但目前您的解决方法可以奏效。 BR Habib
View full article
KW45B41Z83AFPA 定制板 — wireless_uart 中的多核 (rpmSg) 初始化失败示例 你好,团队、 我设计了一款基于 KW45B41Z83AFPA(6 × 6 mm 封装)的定制板。在这个自定义板上,我成功验证了UART、GPIO和CAN,它们都按预期运行。但是,我无法让 wireless_uart SDK 示例正常工作。 遵循的步骤 将 kw45b41zevk_wireless_uart_bm SDK 示例导入 MCUXpresso。 在 .cproject 中将设备部件号从 KW45B41Z83AFTA 修改为 KW45B41Z83AFPA锉刀 使用 ConfigTools 更新引脚配置。 允许 MCUXpresso 自动重新生成代码。 删除了所有错误。 使用 MCUXpresso IDE LinkServer 探针调试应用程序。 观察到的问题 应用程序卡在 PLATFORM_InitMulticore() 函数中。 对 hal_rpmsgmcmGrinit () 的调用返回一个非零值,从而触发信号断言。 因此,NBU-CM33 多核初始化无法完成。 我在 UART、GPIO 和 CAN SDK 示例中遵循了相同的迁移程序,这些应用程序可以在自定义板上正常运行。 更多信息 我使用 MCUXpresso 安全配置工具生成了自定义 NBU 映像。 我成功下载了一次 NBU 固件。 按照 AN14003 应用笔记创建了 .sb锉刀 尽管如此,无线示例仍因同样的多核/RPMsg 初始化问题而失败。 问题 我为不同的软件包迁移 SDK 示例所遵循的过程是否正确? 为什么对 NBU 进行编程后,多核(RPMsg/NBU)初始化仍然失败? 新的 KW45 MCU 是否带有预编程的 NBU 固件,还是默认情况下是空白的? 是否可以在 KW45 设备上重新编程或覆盖 NBU 固件? 如果你能指导如何正确地在定制 KW45 板上启用无线功能,我将不胜感激。 感谢您的支持。 Re: KW45B41Z83AFPA Custom Board – Multicore (RPMsg) Initialization Failure in wireless_uart Example 你好,希望你一切都好。 在 KW45 出厂芯片中,熔丝中的密钥为空。对于自定义板,您需要编写密钥并根据密钥为 NBU 生成映像。 对于 KW45B41Z-EVK 板,恩智浦在熔丝中提供默认密钥。但是,对于出厂时收到的KW45芯片,默认情况下,熔丝中的SBKDK和rotKTH密钥为空。因此,写下这两个密钥来熔丝是必不可少的。否则,sb3 更新就会失败。 你能确认你是否能够生成自定义密钥和签名图像吗?你烧了熔丝吗?如果熔丝被烧毁,你能否确认是否使用了默认 KW45B41Z-EVK 密钥(SBKDK 和 rotKTH)(包含在 AN14003 第 5.2.1 章中)?还是你为板使用了自定义生成的密钥? 有关如何生成 rotKTH 和 SB3KDK 密钥以及如何将其用于安全启动的更多详细信息,请参阅适用于 KW45 和 K32W 的 AN13838 安全启动 值得一提的是,这些文件中提供的烧毁熔丝的方法是无法逆转的。在 KW45 上编程为熔丝的按键无法再更改。因此,建议谨慎修改熔丝。 致以最诚挚的问候, Ana Sofia。 Re: KW45B41Z83AFPA Custom Board – Multicore (RPMsg) Initialization Failure in wireless_uart Example 你好 Team,你 能确认一下你是否能够生成自定义密钥和签名图像吗? > > 我不太确定。但是我在 PKI 管理中创建了密钥,从 版本镜像创建了镜像,并且能够从 Write Image 写入。无法在之前或之后从 “制造工具” 菜单中写入任何内容。 请在下面找到随附的日志文件。 你烧了熔丝吗? > > 我想是的。请在下面找到随附的日志文件。 如果熔丝被烧毁,你能否确认是否使用了默认 KW45B41Z-EVK 密钥(SBKDK 和 rotKTH)(包含在 AN14003 第 5.2.1 章中)?还是你为板使用了自定义生成的密钥? >> 我创建了自定义生成的密钥。 ### Burn RoTKTH fuses ## # blhost-t 5000-p COM36,57600-j — fuse-program 0x1F{{66F09EB905D2284D3C7AC7B02D002D889D229C50FC57532EE518E9E2E2C1CE73}} ### Burn SB3_KDK fuses ## # b lhost-t 5000-p COM36,57600-j — fuse- program 0x 20{{E8764D3DCA61AB8ECE4BADD4FA4F14AFA71D46B31C6737CD081444A97EA9CAFB}} 我有几个问题:1. 如果不烧熔丝和/或 NBU 固件下载到芯片上,我就不能使用新控制器吗? 2。我的程序迁移软件包的代码是否正确?我的程序迁移软件包的代码是否正确? 3.为什么我没法写 .sb3使用 "制造工具"菜单查看文件。 Re: KW45B41Z83AFPA Custom Board – Multicore (RPMsg) Initialization Failure in wireless_uart Example 你好@kiranshingote、 当出厂时收到的 KW45 芯片时,SBKDK 和 rotKTH 的熔丝是空的(空的)。必须首先生成密钥,并且必须使用这些特定密钥烧毁相应的熔丝。否则 SB3 更新将失败,BLE 示例应用程序将无法成功运行。 有关安全启动过程的摘要脚本,请参阅以下链接:https://github.com/nxp-appcodehub/dm-kw45-secure-boot-scripts 您在使用制造工具时是否收到任何错误日志消息?您能否按照以下步骤尝试使用使用您的自定义密钥生成的自定义 SB 文件更新 NBU 固件:处理器特定工作流程 — 安全配置工具 25.12 关于 .cproject在 MCUXpresso 中进行修改,不需要修改软件包。不过,如果需要,.cproject文件可以手动编辑,以匹配您的特定零件编号。 致以最诚挚的问候, Ana Sofia。 Re: KW45B41Z83AFPA Custom Board – Multicore (RPMsg) Initialization Failure in wireless_uart Example 嗨,团队、 我没有拆开 ISP(NBU 和熔丝编程)的 UART1 引脚(PC2 和 PC3)。由于封装尺寸非常小,将电线焊接到 UART1 引脚非常困难。 此外,6×6 mm封装的固件开发具有一定的挑战性,因为该SDK是专门为7×7 mm封装设计的。即使在 .cproject 中更改了软件包的详细信息文件时,我发现时钟配置文件中存在多个错误和不必要的更改。我也无法在项目设置中找到任何可以直接更改控制器或软件包的选项。基于此,我决定继续使用7×7毫米的封装并制造新的印刷电路板。 同时,我将审查你分享的烧毁熔丝和编程NBU的程序。 你能否还分享任何专门解释如何更改软件包和修改相应代码和项目设置的文档或链接?
View full article
MCXN547VNLTの電源オンリセットの問題 MCXN547VNLT をベースにした専用ボードをデバッグしています。 MCU の電源投入シーケンス中に、SRS レジスタに「kCMC_PORReset」フラグが表示されません。 SO、MCU リセット信号を調べたところ、ピンに 2 つのリセットがあることがわかりました (添付のオシログラムを参照してください。青い信号はピン リセットで、黄色い信号は VCC です)。 他にも同様の問題に遭遇し、解決した人はいますか? この問題により、アプリケーションで MCU の最初の電源投入を検出できなくなります。 ボード設計 ブートROM|ブート|フラッシュ Re: MCXN547VNLT power on reset problem ご協力ありがとうございます。 私たちのデザインでは、VDD_P2、VDD_P4、VDD_ANA、および VDD_BAT ピンが VDD に接続されています。VDD_P3 は浮いた状態のままです (ポート P3 は使用されません)。 VDD_CORE は VDD よりかなり遅れて上昇します (添付のオシログラムを参照: チャネル 2 = MCU_RESET_B ピン、チャネル 1 = VDD、チャネル 3 = VDD_CORE)。 リセット ピンには、100nf の静電容量と 10K の抵抗があります (100 オームの抵抗器 R193 とスイッチ SW1 は存在しません)。 Re: MCXN547VNLT power on reset problem こんにちは@placさん、 問題がハードウェアに関連しているかどうかを正確に判断するために、設計がデータシートの 2.5 章に記載されている必要なシーケンスに従っていることをご確認ください。 UG10092: MCXNx4x ハードウェア設計ガイド | NXP Semiconductorsの「HMI インターフェイス」セクションに記載されている 100 nF のコンデンサが適切に含まれているかどうかを確認してください。 BR ハビブ Re: MCXN547VNLT power on reset problem こんにちは@placさん、 MCU_RESET_B がこのように動作する理由は、リセット中に、MCU が初期化を完了するまで RESET_b が低く駆動され、その時点で RESET_b ピンが解放されるためです。RESET_b ピンが外部でアサートされると、RESET_b 入力がハイにプルされるまで MCU はリセット状態のままになります。RM の「ソースをリセット」と呼ばれる章 38.3.5.1 で説明されているとおりです。 より良いサポートを提供するために、以下の情報をご提供いただけますでしょうか? - CMC レジスタを読み取るために使用しているコードとそれが返す値。 - 以前はSRS[POR]ビットを観察できましたか?もしそうなら、ソフトウェアまたはハードウェアで行った変更を共有していただけますか? BR ハビブ Re: MCXN547VNLT power on reset problem こんにちは、 RESET_b ピンは、RC ネットワークによって VDD が適用される場合を除き、外部から制御されません。前回の返信で提供したオシログラムを見ると、RESET_b ピンが ROM コードによって強制的にローに設定されていることがわかります。 CMPA 領域パラメータを無効にしてテストを実行しました。これを実行するには、BOOT_CFG [HEADER] レジスタをクリアします。これを行うと、ダブルリセットがなくなり、SRS[POR]ビットが1に設定されていることがわかります。 SO、CMPA リージョン構成が正しくないということでしょうか?この問題に対する説明はありますか? ありがとう。 Re: MCXN547VNLT power on reset problem セキュリティ リファレンス マニュアルを読んでみたところ、CMPA[FLASH_REMAP_SIZE] フィールドがゼロに設定されていないことに気付きました。このフィールドをゼロに設定すると、この二重リセットは発生しなくなります。理由を説明していただけますか?SRM文書の8.3.1.1.1章では答えは明確ではありません。ブートフロー。 Re: MCXN547VNLT power on reset problem こんにちは@placさん、 CMPA は特定のブート動作を制御するように設計されており、誤った構成によりブート フロー中に予期しないリセットが発生する可能性があります。観察された問題は、MCU が異なる方法でリセットされる原因となったブート シーケンスのエラーに関連している可能性があります。 これを防ぐには、CMPA を独自の構成で上書きすることができます (既に上書きされていると思います)。詳しい情報については、『セキュリティ リファレンス・マニュアル』の第 8.5 章「顧客製造/工場プログラマブル領域 (CMPA)」を参照してください。 BR ハビブ
View full article
Virtualization Solutions in Freescale Linux SDK(1) – ハイパーバイザ(topaz) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 仮想化ソリューションは、1つのシステム上で複数のオペレーティングシステムを実行できるようにする抽象化レイヤーを提供するハードウェアおよびソフトウェアテクノロジーです。Freescale Linux SDKには、KVM/QEMU、Hypervisor(Topaz)、Linux Containerの3種類の仮想化ソリューションが用意されています。このドキュメントでは、Freescale Hypervisor(Topaz)技術について紹介します。 1 Freescle Hypervisor の概要 フリースケール・ハイパーバイザは、マルチコア・システムの効率的かつ安全なパーティショニングを可能にするソフトウェア・レイヤです。 ハイパーバイザーは静的パーティショニング(教師ありAMP)に重点を置いており、システムのCPU、メモリ、およびI/Oデバイスを論理パーティションに分割できます。これらのパーティションは互いに分離されており、再構成とシステムの再起動まで構成は固定されます。これまでのところ、ハイパーバイザーは e500mc/e5500/e6500 プラットフォームでサポートされています。 1.1 ハイパーバイザーの起動シーケンス ハイパーバイザーは、u-boot などの ePAPR 準拠のブートプログラムで起動する必要があります。U-boot は、ハイパーバイザー プログラム イメージをメモリに読み込み、ハードウェア デバイス ツリーを構成し、/chosen ノードの bootargs プロパティを設定してハイパーバイザー構成ツリーのアドレスを指定してメモリに読み込みます。その後、u-bootはブートCPU上のハイパーバイザーイメージに制御を転送します。 ハイパーバイザーは各パーティションを初期化し、ゲストOSを起動します ゲストデバイスツリーを作成し、パーティションのメモリにコピーします。 load-image-table、guest-image、および linux-rootfs プロパティで指定されているように、すべてのイメージをパーティションのメモリにロードします。 仮想 CPU を初期化します そのパーティションのブート CPU 上のゲストオペレーティングシステムに制御を転送します。 1.2 ゲストの住所 パーティションで実行されているゲスト ソフトウェアは、ハイパーバイザーによって作成された物理アドレス空間を認識しますが、これはシステム ハードウェアの実際の物理アドレスに直接対応していない可能性があります。ハイパーバイザは、ゲスト物理アドレスと実際の物理アドレスとのこのマッピングを維持し、ゲストソフトウェアに対して完全に透過的です。ハードウェア TLB には、ゲスト仮想アドレスと実際の物理アドレスのマッピングが含まれています。 図1-1 ゲストの物理アドレスと実際の物理アドレス 1.3 ハイパーバイザーデバイスツリー ハイパーバイザー構成ツリーには、すべてのハイパーバイザー構成パラメーターとパーティション定義情報が含まれています。この設定ツリーに基づいて、ハイパーバイザーは各パーティションの ePAPR 準拠のゲスト デバイス ツリーを動的に作成します。ゲスト デバイス ツリーには、パーティションで使用可能なリソース (CPU、メモリ、I/O デバイス、その他の仮想リソースなど) が記述されます。 図 1-2 ハイパーバイザ設定ツリー 以下は、ハイパーバイザーデバイスツリーでのパーティション定義に関する簡単な例です。パーティションには、2 つの CPU、1 つのメモリ領域、および UART I/O デバイスが含まれています。 // =============================================== // Partition 1 // =============================================== パート1 { compatible = "パーティション";        cpus = <2 2>;        guest-image = <0 0xe8200000 0  0 0  0x200000>;        linux-rootfs = <0 0xe9000000 0  0 0x01300000 0 0x02800000>; dtb-window = <0 0x01000000 0 0x10000>;       gpma { compatible = "ゲスト-phys-mem-area";                                   phys-mem = <&pma1>; ゲスト addr = <0 0>;      };      Serial2 : serial2 { デバイス = "/soc/serial@11d500"; }; }; cpus プロパティは、パーティションに physical#2 (cpu 2-3) から始まる 2 つの CPU があり、それらの cpu がパーティション内の仮想 cpu 0-1 にマップされることを指定します。vcpu(仮想CPU)は物理CPUをエミュレートし、vcpu上の命令、レジスタ、および例外の動作は、エミュレートされる物理CPUとほぼ同じです。 guest-image プロパティは、パーティションの開始時に実行されるイメージのソースアドレス、宛先アドレス、およびサイズを指定します。この例では、ロードされるゲストのプログラムイメージは、実際の物理0xe2000000に配置されています。ゲストの物理0x0にコピーされます。画像の最大サイズは 0x200000 です。 linux-rootfs プロパティは、Linux ルートファイルシステムのソース/デスティネーションとサイズを指定します。ロードするルート・ファイルシステム・イメージは、物理アドレス0xe9000000にあります。ゲストの物理0x01300000にコピーされます。画像の最大サイズは 0x02800000 です。 dtb-window は、ゲスト DTB をロードするアドレス 0x01000000 に 64KB のウィンドウを定義します。 gpma プロパティは、物理メモリ領域 pmalに対応する 1 つのゲスト物理メモリ領域を定義します。gpma のゲスト物理領域は 0x0 です。 2 .ハイパーバイザーの設定方法 Linux SDKでは、デフォルトの構成はNORフラッシュからハイパーバイザを設定するためのものですが、このドキュメントでは、ハイパーバイザーデバイスツリーを変更し、RAMからハイパーバイザーシステムを起動する方法を紹介します。 2.1 ハイパーバイザーデバイスツリーの変更 SDK 1.6 hv.dts では、RAM から起動するための 1 つの物理メモリ領域を定義するノードがあるため、すべてのイメージをこの領域内にデプロイする必要があります。   images_pma: images_pma { compatible = "phys-mem-area"; addr = <0x0 0x78000000>; RAM からのブートに使用 サイズ= <0x0 0x04000000>; // 64MB   }; ゲストイメージのアドレスを次のように変更します。 パート1 { パーティションノードであることを示します compatible = "パーティション"; ラベル = "p1-linux"; CPU #0 から #6 は、このパーティションに割り当てられます cpus = <0 6>; ゲストイメージ<0x0 0x78020000 0 0 0 0x700000> =; linux-rootfs = <0x0 0x79300000 0 0x01300000 0 0x02800000>; dtb-window = <0 0x1000000 0 0x20000>; ... ... パート2 { compatible = "パーティション"; ラベル = "p2-linux"; CPU #7 がこのパーティションに割り当てられます cpus = <7 1>; ゲストイメージ<0x0 0x78020000 0 0 0 0x700000> =; linux-rootfs = <0x0 0x79300000 0 0x01300000 0 0x02800000>; dtb-window = <0 0x1000000 0 0x20000>;              … …   } 2.2 ハイパーバイザーイメージのデプロイ u-boot プロンプトで、次のイメージをデプロイします。 =>tftp 78020000  uImage-p4080ds.bin = >TFTP 79300000 fsl-image-core-p4080ds.ext2.gz.u-boot =>tftp 78700000  hv.uImage =>tftp 0x78800000  uImage-p4080ds-usdpaa.dtb =>tftp 0x78900000 hv.dtb ここでは、u-boot環境からのhv.dtbの物理アドレスを指定します。 =>setenv bootargs config-addr=0x78900000 console= ttyS0,115200 =>bootm 0x78700000 - 0x78800000 2.3 mux_serverを使用してパーティションに接続する ターゲットボードへのmux_servreを使用して、個々のUARTストリームがホスト側で正しくデコードされていることを確認します。 mux_server -exec "bft connect P4080DS-1" 18900 18901 18902& 注:「bft connect P4080DS-1」は、UARTコンソールに接続するためのコマンドです。 デバイスが /dev/ttyS0 に接続され、マルチプレクサチャネルをエクスポートする場合、コマンドは次のようになる必要があります。 mux_server /dev/ttyS0 18900 18901 18902& ソキャット -,raw,echo=0 tcp:0:18900 ソキャット -,raw,echo=0 tcp:0:18901 socat -,raw,echo=0 tcp:0:18902 Re: Virtualization Solutions in Freescale Linux SDK(1) – ハイパーバイザー(topaz) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello Kanat Alimzhanov, 堅牢なソリューションの場合、QEMU+KVM は Topaz よりも優れていますが、パフォーマンスは低くなります。 ハイパーバイザー (Topaz) は QEMU+KVM よりも高いパフォーマンスを得ることができますが、FMAN メインパーティションに問題があると複雑になり、他のパーティションに影響を与えます。 ありがとうございます イーピン Re: Virtualization Solutions in Freescale Linux SDK(1) – ハイパーバイザー(topaz) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> また、管理パーティションで他のパーティションのイメージをロードすることもできます。 Re: Virtualization Solutions in Freescale Linux SDK(1) – ハイパーバイザー(topaz) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Topaz にはハード ディスクへのアクセスに対する独自のサポートはありませんが、Topaz を起動する前に U-Boot を使用してハード ディスクから RAM にイメージをロードできます。 Re: Virtualization Solutions in Freescale Linux SDK(1) – ハイパーバイザー(topaz) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、Yiping。 P4080DS上にデモ仮想ネットワーク インフラストラクチャを構築する必要があります。 この仕事に深く入り込む前に、あなたのアドバイスを求めます。 Freescale Hypervisor (Topaz) と QEMU+KVM のペアのどちらが優れていますか? 私は両方をSDKで見ています。私は堅牢なソリューションを好みます(ネットワークと全体的なパフォーマンス は関係ありません)。 PS:私は http://www.freescale.com/files/training/doc/dwf/AMF_ENT_T0748.pdf 両方のアプローチの「長所と短所」を感じるのに適したREADMEであることがわかりました。 Re: Virtualization Solutions in Freescale Linux SDK(1) – ハイパーバイザー(topaz) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> この有益なメモを書いてくださったYipingに感謝します。 また、RAMからハイパーバイザーシステムを起動する方法を提供しました。ハードディスクからハイパーバイザーシステム(Linuxパーティション)を起動する方法を知りたいですか? ありがとうございます Amit.
View full article
eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 此 实验室 3 解释了如何使用 e IQ ™ ML 软件开发环境 在 i.MX8 板上开始使用 OpenCV DNN 应用程序演示。 eIQ 示例应用程序 - 概述 eIQ 示例应用 - 介绍 获取在 Code Aurora 上可用的源代码: OpenCV DNN 示例 - 基于文件和 MIPI 摄像头 OpenCV推理 OpenCV为神经网络推理(DNN 模块)和经典机器学习算法(ML 模块)提供了统一的解决方案。此外,它还包含许多计算机视觉功能,可以更轻松地在短时间内构建复杂的机器学习应用程序,而无需依赖其他库。 OpenCV DNN 模型本质上是一个推理引擎。它不旨在提供任何模型训练能力。对于训练,应该使用专用的解决方案,例如机器学习框架。OpenCV 的推理引擎支持多种输入模型格式: TensorFlow、 Caffe 、 Torch/PyTorch 。 与 Arm NN 的比较 Arm NN 是一个专注于神经网络的库。它为 Arm Neon 提供加速,但目前不支持 Vivante GPU。Arm NN 不支持经典的非神经机器学习算法。 OpenCV 是一个更复杂的专注于计算机视觉的库。除了图像和视觉特定的算法之外,它还为神经网络机器学习提供支持,也为传统的非神经机器学习算法提供支持。如果您的应用程序需要神经网络推理引擎以及其他计算机视觉功能,那么 OpenCV 是最佳选择。 设置电路板 步骤 1 - 创建以下文件夹并授予其如下权限: root@imx8mmevk:# mkdir -p /opt/opencv/model root@imx8mmevk:# mkdir -p /opt/opencv/media root@imx8mmevk:# chmod 777 /opt/opencv 第 2 步——要轻松地将演示部署到主板,请使用 ifconfig 命令获取主板的 IP 地址,然后按如下方式设置 IMX_INET_ADDR 环境变量: $ export IMX_INET_ADDR= 步骤 3 - 在目标设备中,导出所需的变量: root@imx8mmevk:~# export LD_LIBRARY_PATH=/usr/local/lib root@imx8mmevk:~# export PYTHONPATH=/usr/local/lib/python3.5/site-packages/   设置主机 步骤 1-从eIQ Sample Apps下载应用程序。 第 2 步- 获取模型和数据集。以下命令行为演示创建所需的文件夹结构并检索演示所需的所有数据和模型文件: $ mkdir -p model $ wget -qN https://github.com/diegohdorta/models/raw/master/caffe/MobileNetSSD_deploy.caffemodel -P model/ $ wget -qN https://github.com/diegohdorta/models/raw/master/caffe/MobileNetSSD_deploy.prototxt -P model/   步骤 3-将构建的文件部署到主板: $ scp -r src/* 模型/媒体/根@ ${IMX_INET_ADDR} :/opt/opencv OpenCV DNN 应用程序 此应用程序基于: SSD:单次多框检测器。 Caffe SSD 实现。 1 - OpenCV DNN 示例:基于文件 文件夹结构必须等于: ├── file.py ├── camera.py ├── media └── ... ├── model │├── MobileNetSSD_deploy.caffemodel │└── MobileNetSSD_deploy.prototxt 此示例运行单张图片,但您可以传递任意数量的图片并将其保存在media/文件夹中。该应用程序尝试识别图片中的所有对象。 步骤 1 - 将新图像复制到媒体/文件夹: root@imx8mmevk:/opt/opencv/media# cp .   第 2 步- 运行示例图像: root@imx8mmevk:/opt/opencv# ./file.py 注意:如果GPU可用,示例显示: [INFO:0] 初始化 OpenCL 运行时 该演示使用Caffe模型运行推理,以识别media/文件夹内所有图像的几种类型的对象。它包括输入图像中每个识别对象的标签。处理后的图像位于media-labeled/文件夹中。查看标记前后: 步骤 3 - 使用以下行显示标记的图像: root@imx8mmevk:/opt/opencv/media-labeled# gst-launch-1.0 filesrc location= ! jpegdec ! imagefreeze ! autovideosink 2 - OpenCV DNN 示例:MIPI 摄像头 此示例与上面相同,只是它使用摄像头输入。它启用MIPI摄像头并对每个捕获的帧进行推理,然后实时显示在窗口界面中: root@imx8mmevk:/opt/opencv# ./camera.py 3 - OpenCV DNN 示例:MIPI 摄像头改进 此示例与上述示例不同,因为它应用了 GStreamer 的额外支持。GStreamer 管道利用漏桶算法的思想,使得摄像头即使该帧没有被推理线程处理(桶满时溢出),也能继续执行自己的线程(桶满时溢出)。 由于采用了这种漏桶算法,该演示具有流畅的摄像机视频,但在推理过程中会丢失一些帧。 root@imx8mmevk:/opt/opencv# ./camera_improved.py 转到eIQ 示例应用程序 - 使用 TF Lite 进行人脸识别。 i.MX 8 回复:eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, coindu , 正如vanessamaegima之前所说,我们还没有针对视频文件源的经过验证的解决方案,但我可以预见,直接在 OpenCV VideoCapture 属性上使用视频文件将返回最糟糕的结果。 因此,请尝试将视频文件应用到 GStreamer 管道,例如下面的示例: filesrc 位置=video_device.mp4 typefind=true!解码二进制!imxvideoconvert_g2d!视频/x-raw,格式=RGBA,宽度={},高度={}!videoconvert !appsink sync=false BR, 马可 回复:eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我参考了camera_improved.py demo,用video代替v4l2作为输入。视频的fps为15,即表示屏幕上显示的时间为0.067秒。但解析一帧需要0.6秒,该帧为480x272。因此物体识别框图会比视频延迟。 我想在播放视频第一帧的时候解析第10帧。但这种方法无法移动到某一帧。 回复:eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, coindu , 我们在步骤 3 中提供了性能改进的演示( 3 - OpenCV DNN 示例:改进的 MIPI 摄像头)。相同的方法尚未通过视频输入进行验证。您能否尝试一下并看看是否有帮助? marcofranchi ,仅供参考。 谢谢! Vanessa 回复:eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> hi: 我尝试用视频来测试这个例子,但是发现dnn解析一帧的时间几乎接近10帧视频的显示时间。 def dnn _parse(nn,frame,multipe=1) : height,width,color_lane=frame.shape if multipe != 1 : height = int (height*multipe) width = int (width*multipe) print "h:{}w:{}" .format(height,width) frame=opencv.resize(frame,(height,width))start_time=time.time () blob = opencv.dnn.blob FromImage(frame,0.009718,(高度,宽度) , 127.5 )nn.设置输入(blob)det=nn.forward ()结束时间=时间.时间()打印“高度{}宽度{}时间{}” .format(高度,宽度,结束时间-开始时间) 高: 136宽: 240高度136 宽度240 时间0 .264429092407高度272width480 time0 .620328903198 h: 544 w: 960 height544宽度960时间2.25029802322 那么考虑在dnn分析的时候直接分析N*k帧(k=,1,2,3...)。但是发现opencv不支持跳帧和计算视频总帧数。 #!/usr/bin/env python # -*- 编码: utf-8 -*- 将 cv2 导入 为 opencv 导入时间 如果__name__ == “ __main__ ” : cap = opencv.VideoCapture( ' car.mp4 ' ) opencv.namedWindow( “应用程序框架” ) 帧 计数 = cap.get(opencv.CAP_PROP_FRAME_COUNT) print "frame_count.{}".format(frame_count) cap.设置 ( opencv。CAP_PROP_POS_FRAMES , 200 ) ret,frame = cap.read() opencv.imshow( “ appFrame ” ,框架) opencv.waitKey( 0 ) opencv.destroyAllWindows() cap.release() (python:4431): GStreamer-CRITICAL **: gst_query_set_position: 断言‘format == g_value_get_enum (gst_structure_id_get_value (s, GST_QUARK (FORMAT)))’失败 使用 Wayland-EGL 使用“xdg-shell-v6”shell 集成 帧数-1.0 警告:h264bsdDecodeSeiParameters 无效 如何解决这个问题? 回复:eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢老兄..还有一件事,Opencv 是在 GPU 还是 CPU 上进行推理? 回复:eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,Dinesh, 转到存储库并单击“摘要”,下面将有一个克隆链接,以便您可以使用 git 工具下载存储库: $ git clone https://source.codeaurora.org/external/imxsupport/eiq_sample_apps 克隆到“eiq_sample_apps”... 远程:计数对象:87,完成。 远程:压缩对象:100% (79/79),完成。 远程:总计 87(增量 30),重用 26(增量 4) 拆开物体:100% (87/87),完成。 $ cd eiq_sample_apps/ 希望这有帮助:smileyhappy: 谢谢! 迭戈 回复:eIQ 示例应用程序 - 使用 OpenCV DNN 进行对象识别 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嘿,你好, diegodorta,如何从这里下载源代码来设置主机..
View full article