Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
S32 Debug Probe can't connect S32G274 Hi,     S32 DS for S32 V3.6.2 , and RTD V5.0.0 for S32 G2 M7 Core.     Import RTD example Project into S32 DS V3.6.2 and compiled , connect S32 Debug probe through Ethernet. before debug, I try 'Test connection' in Debug Configuration and get the infomation back successfully. But when I try Debug,  the S32-DP can't connect to the S32G274. Here is the full log of the gdb traces. 405,868 2-gdb-version 405,875 ~"GNU gdb (GDB src=ga98a3c7ad40 bld=ga98a3c7ad40 ) 15.1\n" 405,875 ~"Copyright (C) 2024 Free Software Foundation, Inc.\n" 405,875 ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is fre\ e software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitt\ ed by law." 405,875 ~"\nType \"show copying\" and \"show warranty\" for details.\n" 405,875 ~"This GDB was configured as \"--host=x86_64-w64-mingw32 --target=arm-none-eabi\".\n" 405,875 ~"Type \"show configuration\" for configuration details.\n" 405,875 ~"For bug reporting instructions, please see:\n" 405,876 ~"<https://www.gnu.org/software/gdb/bugs/>.\n" 405,876 ~"Find the GDB manual and other documentation resources online at:\n <" 405,876 ~"http://www.gnu.org/software/gdb/documentation/>.\n\n" 405,876 ~"For help, type \"help\".\n" 405,876 ~"Type \"apropos word\" to search for commands related to \"word\".\n" 405,876 2^done 405,876 (gdb) 405,876 3-environment-cd E:/Users/Lenovo/workspaceS32DS.3.6.2/test_lany/test_lany_M7_0 405,887 3^done 405,887 (gdb) 405,887 4-gdb-set breakpoint pending on 405,898 4^done 405,898 (gdb) 405,898 5-gdb-set detach-on-fork on 405,909 5^done 405,909 (gdb) 405,909 6-enable-pretty-printing 405,920 6^done 405,920 (gdb) 405,920 7-gdb-set python print-stack none 405,931 7^done 405,931 (gdb) 405,931 8-gdb-set print object on 405,942 8^done 405,942 (gdb) 405,942 9-gdb-set print sevenbit-strings on 405,952 9^done 405,952 (gdb) 405,952 10-gdb-set host-charset UTF-8 405,963 10^done 405,963 (gdb) 405,963 11-gdb-set target-charset GBK 405,973 11^done 405,973 (gdb) 405,973 12-gdb-set target-wide-charset UTF-16 405,984 12^done 405,984 (gdb) 405,984 13-gdb-set dprintf-style call 405,995 13^done 405,995 (gdb) 405,995 14source .gdbinit 406,006 &"source .gdbinit\n" 406,010 &".gdbinit: No such file or directory.\n" 406,010 14^error,msg=".gdbinit: No such file or directory." 406,010 (gdb) 406,010 15-gdb-set mi-async off 406,017 15^done 406,017 (gdb) 406,017 16-gdb-set record full stop-at-limit off 406,027 16^done 406,027 (gdb) 406,027 17-gdb-set auto-solib-add on 406,038 17^done 406,038 (gdb) 406,041 18py _IS_LOGGING_ENABLED = False 406,041 19py _REMOTE_TIMEOUT = 30 406,041 20py _CORE_NAME = "M7_0" 406,041 21py _SOC_NAME = "S32G274A" 406,041 22py _SOC_REVISION = "Rev2" 406,041 23py _GDB_SERVER_PORT = 45000 406,042 24py _JTAG_SPEED = 24000 406,042 25py _RESET_DELAY = 0 406,042 26py _PROBE_IP = "s32dbg:192.168.3.103" 406,042 27py _CCS_IP = "127.0.0.1" 406,042 28py _CCS_PORT = 41475 406,042 29source E:\NXP\S32DS.3.6.2\S32DS\tools\S32Debugger\Debugger\scripts\s32g2xx\s32g2xx_attach.\ py 406,049 &"py _IS_LOGGING_ENABLED = False\n" 406,049 18^done 406,049 (gdb) 406,049 &"py _REMOTE_TIMEOUT = 30\n" 406,049 19^done 406,049 (gdb) 406,049 &"py _CORE_NAME = \"M7_0\"\n" 406,049 20^done 406,049 (gdb) 406,049 &"py _SOC_NAME = \"S32G274A\"\n" 406,049 21^done 406,049 (gdb) 406,049 &"py _SOC_REVISION = \"Rev2\"\n" 406,050 22^done 406,050 (gdb) 406,050 &"py _GDB_SERVER_PORT = 45000\n" 406,050 23^done 406,050 (gdb) 406,050 &"py _JTAG_SPEED = 24000\n" 406,050 24^done 406,050 (gdb) 406,050 &"py _RESET_DELAY = 0\n" 406,051 25^done 406,051 (gdb) 406,051 &"py _PROBE_IP = \"s32dbg:192.168.3.103\"\n" 406,051 26^done 406,051 (gdb) 406,051 &"py _CCS_IP = \"127.0.0.1\"\n" 406,051 27^done 406,051 (gdb) 406,051 &"py _CCS_PORT = 41475\n" 406,051 28^done 406,051 (gdb) 406,051 &"source E:\\NXP\\S32DS.3.6.2\\S32DS\\tools\\S32Debugger\\Debugger\\scripts\\s32g2xx\\s32g2x\ x_attach.py\n" 406,189 =cmd-param-changed,param="pagination",value="off" 406,206 29^done 406,206 (gdb) 406,206 30py board_init() 406,216 &"py board_init()\n" 406,216 ~"... board_init() skipped.\n" 406,216 30^done 406,216 (gdb) 406,216 31py core_init() 406,227 &"py core_init()\n" 406,227 ~"Selected CORE=M7_0\n" 406,283 ~"Primary session connecting...\n" 406,310 =cmd-param-changed,param="remotetimeout",value="30" 410,319 ~"^Error:Target connection failed. Please re-check the settings." 410,319 ~"Processor: S32G2XX" 410,319 ~"Probe: S32 Debugger TAP (192.168.3.103)" 410,319 ~"[CCS: Error in part definition]" 410,319 ~"//" 410,319 ~"Additional error details:" 410,319 ~"[GTA: target access error]" 410,319 ~":GtaTaErr(1303)" 410,319 ~" File \" \", line 1, in " 410,319 ~" File \"E:\\NXP\\S32DS.3.6.2\\S32DS\\tools\\S32Debugger\\Debugger\\scripts\\s32g2xx\\s32g\ 2xx_attach.py\", line 83, in core_init" 410,319 ~" connect()" 410,319 ~" File \"E:\\NXP\\S32DS.3.6.2\\S32DS\\tools\\S32Debugger\\Debugger\\scripts\\s32g2xx\\s32g\ 2xx_attach.py\", line 54, in connect" 410,319 ~" gta_lib.establish_connection(" 410,319 ~" File \"E:\\NXP\\S32DS.3.6.2\\S32DS\\tools\\S32Debugger\\Debugger\\scripts\\s32g2xx//../u\ tils\\gta_lib.py\", line 89, in establish_connection" 410,319 ~" return connect(" 410,320 ~" File \"E:\\NXP\\S32DS.3.6.2\\S32DS\\tools\\S32Debugger\\Debugger\\scripts\\s32g2xx//../u\ tils\\errors.py\", line 275, in wrapper" 410,320 ~" v = func(*args, **kwargs)" 410,320 ~" File \"E:\\NXP\\S32DS.3.6.2\\S32DS\\tools\\S32Debugger\\Debugger\\scripts\\s32g2xx//../u\ tils\\gta_lib.py\", line 153, in connect" 410,320 ~" gdb_exec(\"monitor ctx connect\", from_tty=True, errcode=ErrorCode.ConnectError).unwra\ p()" 410,320 ~" File \"E:\\NXP\\S32DS.3.6.2\\S32DS\\tools\\S32Debugger\\Debugger\\scripts\\s32g2xx//../u\ tils\\mem_reg_utils.py\", line 65, in wrapper" 410,320 ~" result = Result(Error(value, str(error_msg)))" Re: S32 Debug Probe can't connect S32G274 hi,lany Thank you for your reply. It is recommended to check whether there are any problems with the hardware JTAG circuit. In addition, an oscilloscope can also be used to capture the debug signal and compare it with the standard ARM debug process signal. BR Joey Re: S32 Debug Probe can't connect S32G274 Hi, Joey I use customer board and have no development board. But I have an oscilloscope, is there any possibility to figure this issue out with the oscilloscope. of course, any other method is welcome. BR Lany Re: S32 Debug Probe can't connect S32G274 hi,lany Thank you for your information. Do you use the RDB2 board or customer board? The S32 Debug prober function is normal on our development board? BR Joey Re: S32 Debug Probe can't connect S32G274 Hi, Joey Thank for your reply. I tried the demo from S32G AUTOSAR 4.4 RTD. And my debugger configurature is blow. When I try the "test connection",  the infomation back like this: But still, the same failure came,  this is the traces infomation.SO, it confused me a lot. I get the Soc infomation successfully above, but here looks like connection failure.What should I do next? BR Lany Re: S32 Debug Probe can't connect S32G274 hi,lany Thank you for contacting us. I can find you use the project of test_lany_M7_0 in your log. Could you try to test the S32 debug Probe for using the RTD demo? BR Joey
查看全文
imx93 uuu example_kernel_emmcコマンドはinitramfsの起動後に停止します こんにちは、 パーティション テーブルを定義し、imx93 ベースのデバイスにいくつかのファイルをドロップするために、最新の uuu アプリケーション (windows11) と example_kernel_emmc コマンド (LF_v6.6.52-2.2.1_images_IMX93EVK zip ファイルから) を使用しています。 使用される u-boot、カーネル、および initramfs イメージ ファイルは、サンプル コマンドと同じ zip ファイルで提供され、デバイス ツリーはデバイスに合わせてカスタマイズされています。 uuu は次の時点まですべてのコマンドを実行します: FB: アクション${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr} そして永遠にそこに残ります。起動後にFBK IDが表示されない: .\uuu.exe -lsusb nxp imx チップ用の uuu (ユニバーサル アップデート ユーティリティ) -- libuuu_1.5.201-0-g727fc2b コネクテッド既知のUSBデバイス パスチップ Pro Vid Pid Bcdバージョン シリアル番号 ==================================================================== 1:1 FB: 0x1FC9 0x0152 0x0221 SO、次のようなFBKコマンドは実行されません。 # カーネルコマンドラインからMMCデバイス番号を取得する # emmc を待つ FBK: ucmd while [ ! -e /dev/mmcblk*boot0 ]; do sleep 1; echo "/dev/mmcblk*boot* が表示されるまで待機"; done; # emmc デバイス番号を検索します。プラットフォームに 2 つ以上の emmc チップがある場合は、デバイス番号を echo してください >/tmp/mmcdev FBK: ucmd dev=`ls /dev/mmcblk*boot*`; dev=($dev);開発 = ${dev[0]} ;開発 = ${dev#/dev/mmcblk} ;開発 = ${dev%boot*} ;エコー $dev > /tmp/mmcdev; # dd でMBRをクリアする FBK: ucmd mmc=`cat /tmp/mmcdev`; dd if=/dev/zero of=/dev/mmcblk ${mmc} bs=512 count=1 これは私のブートメッセージ(initramfs)です: カーネルを起動中… [ 0.000000] 物理CPU 0x0000000000 [0x412fd050] でLinuxを起動しています [ 0.000000] Linuxバージョン6.6.52-lts-next-g90192c5d29cb(oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 13.3.0、GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT 火曜日 7 月 8 日 12:00:06 UTC 2025 [ 0.000000] シード不足のためKASLRが無効になりました [ 0.000000] マシンモデル: ICOM100 GMVボード、DTSバージョン1.0 [ 0.000000] efi: UEFI が見つかりません。 [ 0.000000] 予約メモリ: 0x0000000086000000 に CMA メモリプールを作成しました。サイズは 256 MiB です。 [ 0.000000] OF: 予約済みメモリ: 初期化されたノード Linux、cma、互換ID 共有DMAプール [ 0.000000] OF: 予約済みメモリ: 0x00000000860000000..0x0000000095ffffff (262144 KiB) マップ再利用可能 Linux、cma [ 0.000000] OF: 予約済みメモリ: 0x000000002021e000..0x000000002021efff (4 KiB) nomap 再利用不可 rsc-table@2021e000 [ 0.000000] OF: 予約済みメモリ: 0x0000000096000000..0x0000000097dfffff (30720 KiB) nomap 再利用不可 optee_core@96000000 [ 0.000000] OF: 予約済みメモリ: 0x0000000097e00000..0x0000000097ffffff (2048 KiB) nomap 再利用不可 optee_shm@97e00000 [ 0.000000] OF: 予約済みメモリ: 0x00000000a4000000..0x00000000a4007fff (32 KiB) nomap 再利用不可 vdev0vring0@a4000000 [ 0.000000] OF: 予約済みメモリ: 0x00000000a4008000..0x00000000a400ffff (32 KiB) nomap 再利用不可 vdev0vring1@a4008000 [ 0.000000] OF: 予約済みメモリ: 0x00000000a4010000..0x00000000a4017fff (32 KiB) nomap 再利用不可 vdev1vring0@a4010000 [ 0.000000] OF: 予約済みメモリ: 0x00000000a4018000..0x00000000a401ffff (32 KiB) nomap 再利用不可 vdev1vring1@a4018000 [ 0.000000] 予約メモリ: 0x00000000a4020000 に DMA メモリプールを作成しました。サイズは 1 MiB です。 [ 0.000000] OF: 予約済みメモリ: 初期化されたノード vdevbuffer@a4020000、互換性のあるID shared-dma-pool [ 0.000000] OF: 予約済みメモリ: 0x00000000a4020000..0x00000000a411ffff (1024 KiB) nomap 再利用不可 vdevbuffer@a4020000 [ 0.000000] 予約メモリ: 0x00000000a4120000 に DMA メモリプールを作成しました。サイズは 1 MiB です。 [ 0.000000] OF: 予約済みメモリ: 初期化されたノード ele-reserved@a4120000、互換性のあるID shared-dma-pool [ 0.000000] OF: 予約済みメモリ: 0x00000000a4120000..0x00000000a421ffff (1024 KiB) nomap 再利用不可 ele-reserved@a4120000 [ 0.000000] 予約メモリ: 0x00000000a8000000 に CMA メモリプールを作成しました。サイズは 128 MiB です。 [ 0.000000] OF: 予約済みメモリ: 初期化されたノード ethosu_region@A8000000、互換性のある ID 共有 DMA プール [ 0.000000] OF: 予約済みメモリ: 0x00000000a8000000..0x00000000affffffff (131072 KiB) マップ再利用可能 ethosu_region@A8000000 [ 0.000000] NUMA: NUMA構成が見つかりません [ 0.000000] NUMA: [mem 0x0000000080000000-0x00000000dffffffff] でノードを偽装しています [ 0.000000] NUMA: NODE_DATA [メモリ 0xdfcde6c0-0xdfce0fff] [ 0.000000] ゾーン範囲: [ 0.000000] DMA [メモリ 0x0000000080000000-0x00000000dfffffff] [ 0.000000] DMA32 空 [ 0.000000] 通常の空 [ 0.000000] 各ノードの移動可能ゾーンの開始 [ 0.000000] 初期メモリノード範囲 [ 0.000000] ノード 0: [メモリ 0x0000000080000000-0x0000000095ffffff] [ 0.000000] ノード 0: [メモリ 0x0000000098000000-0x00000000a3ffffff] [ 0.000000] ノード 0: [メモリ 0x00000000a4000000-0x00000000a421ffff] [ 0.000000] ノード 0: [メモリ 0x00000000a4220000-0x00000000dffffffff] [ 0.000000] 初期化メモリ セットアップ ノード 0 [メモリ 0x0000000080000000-0x00000000dffffffff] [ 0.000000] ノード0のゾーンDMA: 使用できない範囲に8192ページ [ 0.000000] psci: DT からコンジット 方法をプローブしています。 [ 0.000000] psci: ファームウェアで PSCIv1.1 が検出されました。 [ 0.000000] psci: 標準PSCI v0.2関数IDを使用 [ 0.000000] psci: 信頼できるOSの移行は不要です [ 0.000000] psci: SMC呼び出し規約 v1.4 [ 0.000000] percpu: 組み込み 22ページ/CPU s50920 r8192 d31000 u90112 [ 0.000000] CPU0 で VIPT I キャッシュを検出しました [ 0.000000] CPU機能: 検出: GICシステムレジスタCPUインターフェース [ 0.000000] CPU機能: 検出: 仮想化ホスト拡張 [ 0.000000] CPU機能: 検出: Qualcommエラッタ1009、またはARMエラッタ1286807、2441009 [ 0.000000] CPU機能: 検出: ARMエラッタ1165522、1319367、または1530923 [ 0.000000] 代替案: ブート代替案を適用しています [ 0.000000] カーネルコマンドライン: console=ttyLP0,115200 earlycon,115200 rdinit=/linuxrc clk_ignore_unused [ 0.000000] Dentryキャッシュハッシュテーブルエントリ: 262144 (順序: 9、2097152バイト、線形) [ 0.000000] inodeキャッシュハッシュテーブルエントリ: 131072 (順序: 8、1048576バイト、線形) [ 0.000000] ノード0のフォールバック順序: 0 [ 0.000000] 1 つのゾーンリストを構築し、モビリティ グループ化をオンにしました。総ページ数: 378880 [ 0.000000] ポリシーゾーン: DMA [ 0.000000] メモリ自動初期化: スタック:すべて(ゼロ)、ヒープ割り当て:オフ、ヒープ解放:オフ [ 0.000000] ソフトウェア IO TLB: 領域番号 1。 [ 0.000000] ソフトウェア IO TLB: マップされた [mem 0x00000000da100000-0x00000000de100000] (64MB) [ 0.000000] メモリ: 999188K/1540096K 使用可能 (カーネルコード 21120K、rwdata 1646K、rodata 7816K、init 4032K、bss 643K、予約済み 147692K、cma 予約済み 393216K) [ 0.000000] SLUB: HWalign=64、Order=0-3、MinObjects=0、CPUs=1、Nodes=1 [ 0.000000] rcu: プリエンプティブ階層型 RCU 実装。 [ 0.000000] rcu: RCU イベント情報 トレースが有効です。 [ 0.000000] rcu: RCU は CPU を NR_CPUS=256 から nr_cpu_ids=1 に制限しています。 [ 0.000000] タスク RCU のトランポリン バリアントが有効になりました。 [ 0.000000] タスク RCU のトレース バリアントが有効になりました。 [ 0.000000] rcu: RCU が計算したスケジューラ登録遅延の値は 25 jiffies です。 [ 0.000000] rcu: rcu_fanout_leaf=16、nr_cpu_ids=1 のジオメトリを調整しています [ 0.000000] NR_IRQS: 64、nr_irqs: 64、事前割り当てられたIRQ: 0 [ 0.000000] GICv3: GIC: 分割EOI/非アクティブ化モードの使用 [ 0.000000] GICv3: 960 SPI が実装されました [ 0.000000] GICv3: 0 拡張SPIが実装されました [ 0.000000] ルートIRQハンドラー: gic_handle_irq [ 0.000000] GICv3: GICv3 機能: 16 PPI [ 0.000000] GICv3: CPU0: 再配布業者 0 領域 0:0x0000000048040000 が見つかりました [ 0.000000] rcu: srcu_init: 競合に基づいて srcu_struct のサイズを設定します。 [ 0.000000] arch_timer: cp15 タイマーが 24.00MHz (phys) で動作しています。 [ 0.000000] クロックソース: arch_sys_counter: マスク: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns [ 0.000000] sched_clock: 24MHzで56ビット、分解能41ns、4398046511097nsごとにラップ [ 0.000311] コンソール: カラーダミーデバイス 80x25 [ 0.000372] 遅延ループのキャリブレーション(スキップ)、タイマー周波数を使用して計算された値.. 48.00 BogoMIPS(lpj=96000) [ 0.000381] pid_max: デフォルト: 32768 最小値: 301 [ 0.000431] LSM: lsm=capability,integrity を初期化しています [ 0.000507] マウントキャッシュハッシュテーブルエントリ: 4096 (順序: 3、32768 バイト、線形) [ 0.000517] マウントポイントキャッシュハッシュテーブルエントリ: 4096 (順序: 3、32768 バイト、線形) [ 0.001203] cacheinfo: CPU 0 のキャッシュ階層を検出できません [ 0.001723] RCU タスク: shift を 0 に、lim を 1 に設定します。rcu_task_cb_adjust=1。 [ 0.001783] RCU タスク トレース: shift を 0、lim を 1 に設定 rcu_task_cb_adjust=1。 [ 0.001938] rcu: 階層型 SRCU 実装。 [ 0.001941] rcu: 最大位相遅延インスタンス数は 1000 です。 [ 0.002653] EFI サービスは利用できません。 [ 0.002732] smp: セカンダリ CPU を起動しています... [ 0.002754] smp: 1ノード、1CPUを起動しました [ 0.002758] SMP: 合計 1 個のプロセッサがアクティブ化されました。 [ 0.002762] CPU機能: 検出: 32ビットEL0サポート [ 0.002765] CPU機能: 検出: 32ビットEL1サポート [ 0.002769] CPU機能: 検出: PoUへのデータキャッシュのクリーンはI/Dコヒーレンスに必要ありません [ 0.002773] CPU featL▒▒▒ が検出されました: 共通翻訳ではなくプライベート翻訳です [ 0.002775] CPU機能: 検出: CRC32命令 [ 0.002782] CPUフィード 256 KiB GFP▒FERNEL|GFP_DMA プール(アトミック割り当て用) [ 0.020831] DMA: アトミック割り当て用に 256 KiB GFP_KERNEL|GFP_DMA32 プールを事前割り当て [ 0.020885] 監査: netlink サブシステムの初期化 (無効) [ 0.021046] 監査: タイプ=2000 監査(0.016:1):状態=初期化済み 監査有効=0 解像度=1 [ 0.021459] thermal_sys: サーマルガバナーを 'step_wise' に登録しました [ 0.021463] thermal_sys: サーマルガバナー 'power_allocator' を登録しました [ 0.021494] cpuidle: ガバナーメニューの使用 [ 0.021671] hw-breakpoint: 6 つのブレークポイント レジスタと 4 つのウォッチポイント レジスタが見つかりました。 [ 0.021700] ASIDアロケータが65536エントリで初期化されました [ 0.022299] シリアル: AMBA PL011 UART ドライバ [ 0.022356] imx mu ドライバが登録されました。 [ 0.022368] imx rpmsg ドライバが登録されました。 [ 0.026827] imx93-pinctrl 443c0000.pinctrl:ノード /soc@0/bus@44000000/pinctrl@443c0000/usdhc3grp-gpio に fsl、pins、pins プロパティがありません [ 0.026892] imx93-pinctrl 443c0000.pinctrl:IMX pinctrl ドライバを初期化しました [ 0.032912] モジュール: PLT以外の使用範囲内のページ数は23888ページ [ 0.032922] モジュール: PLT使用範囲内の515408ページ [ 0.033526] HugeTLB: 登録されたページサイズは 1.00 GiB、事前割り当てされたページは 0 ページ [ 0.033536] HugeTLB: 0 KiB vmemmap は 1.00 GiB ページ用に解放できます [ 0.033540] HugeTLB: 登録されたページサイズは 32.0 MiB、事前割り当てされたページは 0 ページ [ 0.033542] HugeTLB: 0 KiB vmemmap は 32.0 MiB ページ用に解放できます [ 0.033545] HugeTLB: 登録されたページサイズ 2.00 MiB、事前割り当て 0 ページ [ 0.033547] HugeTLB: 0 KiB vmemmap は 2.00 MiB ページ用に解放できます [ 0.033550] HugeTLB: 登録済みページサイズ 64.0 KiB、事前割り当て 0 ページ [ 0.033552] HugeTLB: 0 KiB vmemmap は 64.0 KiB のページ用に解放できます [ 0.034889] ACPI: インタープリターが無効です。 [ 0.035812] iommu: デフォルトのドメインタイプ: 翻訳済み [ 0.035821] iommu: DMAドメインTLB無効化ポリシー: 厳密モード [ 0.036048] SCSIサブシステムが初期化されました [ 0.036331] usbcore: 新しいインターフェースドライバーusbfsを登録しました [ 0.036350] usbcore: 新しいインターフェースドライバーハブを登録しました [ 0.036378] usbcore: rePkѕɕ▒▒新しいデバイスドライバー usb [ 0.036914] mc: Linuxメディアインターフェース: v0.10 [ 0.036946] videodev: Linux ビデオキャプチャ intlinear) A▒確立されたハッシュテーブルエントリ: 16384 (順序: 5、131072 バイト、線形) [ 0.045825] TCPバインドハッシュテーブルエントリ: 16384 (順序: 7、524288バイト、線形) [ 0.046277] TCP: ハッシュテーブルが設定されました (確立 16384 バインド 16384) [ 0.046391] UDPハッシュテーブルエントリ: 1024 (順序: 3、32768バイト、線形) [ 0.046433] UDP-Liteハッシュテーブルエントリ: 1024 (順序: 3、32768バイト、線形) [ 0.046577] NET: PF_UNIX/PF_LOCALプロトコルファミリを登録しました [ 0.047005] RPC: 名前付き UNIX ソケット トランスポート モジュールを登録しました。 [ 0.047010] RPC: UDPトランスポートモジュールを登録しました。 [ 0.047013] RPC: TCPトランスポートモジュールを登録しました。 [ 0.047014] RPC: tcp-with-tls トランスポート モジュールを登録しました。 [ 0.047016] RPC: tcp NFSv4.1 バックチャネル トランスポート モジュールを登録しました。 [ 0.047825] PCI: CLS 0バイト、デフォルト64 [ 0.048002] initramfs を解凍しています... [ 0.051636] kvm [1]: IPAサイズ制限: 40ビット [ 0.051665] kvm [1]: GICv3: GICVリソースエントリがありません [ 0.051668] kvm [1]: GICv2エミュレーションを無効にする [ 0.051683] kvm [1]: GICシステムレジスタCPUインターフェースが有効 [ 0.051711] kvm [1]: vgic 割り込み IRQ9 [ 0.051732] kvm [1]: VHEモードが正常に初期化されました [ 0.052628] システムの信頼されたキーリングを初期化する [ 0.052809] ワーキングセット: timestamp_bits=42 max_order=19 bucket_order=0 [ 0.053047] squashfs: バージョン 4.0 (2009/01/31) Phillip Lougher [ 0.053269] NFS: id_resolverキータイプの登録 [ 0.053290] キータイプ id_resolver が登録されました [ 0.053292] キータイプ id_legacy が登録されました [ 0.053306] nfs4filelayout_init: NFSv4 ファイル レイアウト Dr@W▒▒登録中... [ 0.053310] nfs4flexfilelayout_init: NFSv4 Flexfile レイアウト ドライバの登録中... [ 0.053323] jffs2: v ▒[ 1.942431] initrdメモリを解放中: 12700K [ 1.948478] imx-drm ディスプレイサブシステム: 利用可能なポートがありません [ 1.960806] ループ: モジュールがロードされました [ 1.965058] メガサス: 07.725.01.00-rc1 [ 1.972902] tun: ユニバーサルTUN/TAPデバイスドライバ、1.6 [ 1.978535] thunder_xcv、ver 1.0 [ 1.981847] thunder_bgx、バージョン1.0 [ 1.985102] nicpf、バージョン1.0 [ 1.988836] hns3: Hip08 ファミリ向け Hisilicon イーサネット ネットワーク ドライバ - バージョン [ 1.996062] hns3: Copyright (c) 2017 Huawei Corporation. [ 2.001395] hclge を初期化しています [ 2.004742] e1000: Intel(R) PRO/1000 ネットワーク ドライバ [ 2.009611] e1000: Copyright (c) 1999-2006 Intel Corporation。 [ 2.015364] e1000e: Intel(R) PRO/1000 ネットワーク ドライバ [ 2.020385] e1000e: Copyright(c) 1999 - 2015 Intel Corporation。 [ 2.026314] igb: Intel(R) ギガビット イーサネット ネットワーク ドライバ [ 2.031703] igb: Copyright (c) 2007-2014 Intel Corporation。 [ 2.037285] igbvf: Intel(R) ギガビット仮想機能ネットワークドライバ [ 2.043545] igbvf: Copyright (c) 2009 - 2012 Intel Corporation。 [ 2.049553] sky2: ドライバ バージョン 1.30 [ 2.053532] usbcore: 新しいデバイス ドライバ r8152-cfgselector を登録しました [ 2.059817] usbcore: 新しいインターフェース ドライバ r8152 を登録しました [ 2.065707] VFIO - ユーザー レベルメタドライバ バージョン: 0.3 [ 2.072397] usbcore: 新しいインターフェース ドライバ uas を登録しました [ 2.077768] usbcore: 新しいインターフェース ドライバ usb-storage を登録しました [ 2.083815] usbcore: 新しいインターフェース ドライバ usbserial_generic を登録しました [ 2.090347] usbserial: USBシリアル サポート が汎用として登録されました [ 2.096353] usbcore: 新しいインターフェース ドライバ ftdi_sio を登録しました [ 2.102096] usbserial: FTDI USBシリアルデバイス用のUSBシリアル サポート が登録されました [ 2.109405] usbcore: 新しいインターフェース ドライバ usb_serial_simple を登録しました [ 2.115931] usbserial: carelink の USB シリアル サポート が登録されました [ 2.122033] usbserial: フラッシュローダーにUSBシリアル サポート を登録しました [ 2.128383] usbserial: funsoft の USB シリアル サポート が登録されました [ 2.134387] usbserial: USBシリアル サポート がGoogleに登録されました [ 2.140306] usbserial: hp4x の USB シリアル サポート が登録されました [ 2.146052] usbserial: kaufmann の USB シリアル サポート が登録されました [ 2.152153] usbserial: libtransistor に USB シリアル サポート が登録されました [ 2.158681] usbserial: moto_modem の USB シリアル サポート が登録されました [ 2.164946] usbserial: motorola_tetra の USB シリアル サポート が登録されました [ 2.171558] usbserial: Nokia の USB シリアル サポート を登録しました [ 2.177395] usbserial: novatel_gps の USB シリアル サポート が登録されました [ 2.183744] usbserial: siemens_mpi の USB シリアル サポート が登録されました [ 2.190097] usbserial: suunto の USB シリアル サポート が登録されました [ 2.196016] usbserial: vivopay の USB シリアル サポート が登録されました [ 2.202022] usbserial: zio の USB シリアル サポート が登録されました [ 2.207685] usbcore: 新しいインターフェース ドライバ usb_ehset_test を登録しました [ 2.216695] 入力: 44440000.bbnsm:pwrkeyas /devices/プラットフォーム/soc@0/44000000.bus/44440000.bbnsm/44440000.bbnsm:pwrkey/input/input0 [ 2.231892] bbnsm_rtc 44440000.bbnsm:rtc:rtc0として登録 [ 2.238230] bbnsm_rtc 44440000.bbnsm:rtc:システムクロックを1970-01-01T00:00:00 UTC (0) に設定 [ 2.247408] i2c_dev: i2c /dev エントリ ドライバ [ 2.254412] imx7ulp-wdt 42490000.ウォッチドッグ:imx93 wdtプローブ [ 2.286678] Bluetooth: HCI UART ドライバ バージョン 2.3 [ 2.291154] Bluetooth: HCI UARTプロトコルH4登録済み [ 2.296301] Bluetooth: HCI UARTプロトコル BCSP登録済み [ 2.301627] Bluetooth: HCI UARTプロトコルLL登録 [ 2.306764] Bluetooth: HCI UARTプロトコルATH3K登録済み [ 2.312169] Bluetooth: HCI UARTプロトコル 3線式(H5) 登録済み [ 2.318540] Bluetooth: HCI UARTプロトコル Broadcom登録 [ 2.324210] Bluetooth: HCI UARTプロトコルQCA登録済み [ 2.330394] sdhci: セキュアデジタルホストコントローラ インターフェース ドライバ [ 2.336617] sdhci: Copyright(c) ピエール・オスマン [ 2.341231] Synopsys Designware マルチメディアカード インターフェース ドライバ [ 2.347536] sdhci-pltfm: SDHCI プラットフォームと OF ドライバ ヘルパー [ 2.355446] ledtrig-cpu: CPUのアクティビティを示すために登録されました [ 2.362335] SMCCC: SOC_ID: ARCH_SOC_ID が実装されていないため、スキップします...。 [ 2.369126] usbcore: 新しい インターフェース ドライバusbhidを登録しました [ 2.374759] usbhid: USB HID コア ドライバ [ 2.385410] mmc0: 42850000.mmc 上の SDHCI コントローラ [42850000.mmc]ADMAを使用する [ 2.416967] hw perfevents: armv8_cortex_a55 PMU ドライバで有効化、7 つのカウンターが利用可能 [ 2.426958] cs_system_cfg: CoreSight構成マネージャが初期化されました [ 2.434432] soc_id = 37632 に一致するインデックスが見つかりません。 [ 2.434445] fsl-ocotp-fsb-s400 47510000.efuse:se-fw2デバイスの取得に失敗しました [ 2.447388] optee: コンジット方法の調査中。 [ 2.451879] optee: リビジョン 4.2 (612bc5a6) [ 2.452323] optee: 動的共有メモリが有効になっています [ 2.461667] optee: ドライバを初期化しました [ 2.468246] NET: PF_LLCプロトコルファミリを登録しました [ 2.473175] u32分類器 [ 2.475899] 入力デバイスのチェックオン [ 2.479628] アクションが設定されました [ 2.483410] NET: PF_INET6プロトコルファミリを登録しました [ 2.489032] IPv6によるセグメントルーティング [ 2.492765] IPv6を使用したIn-situ OAM(IOAM) [ 2.496792] NET: PF_PACKETプロトコルファミリを登録しました [ 2.501896] ブリッジ: arp/ip/ip6tables 経由のフィルタリングはデフォルトでは利用できなくなりました。必要な場合は、スクリプトを更新して br_netfilter をロードしてください。 [ 2.515055] Bluetooth: RFCOMM TTYレイヤーが初期化されました [ 2.520027] Bluetooth: RFCOMMソケット層が初期化されました [ 2.525203] Bluetooth: RFCOMM バージョン 1.11 [ 2.528975] Bluetooth: BNEP (イーサネットエミュレーション) バージョン 1.3 [ 2.534324] mmc0: アドレス0001の新しいHS400拡張ストロボMMCカード [ 2.541125] mmcblk0: mmc0:0001 DG4008 7.28 GiB [ 2.545633] Bluetooth: BNEPフィルター: プロトコルマルチキャスト [ 2.551904] Bluetooth: BNEPソケット層が初期化されました [ 2.556954] mmcblk0: p1 p2 [ 2.559759] Bluetooth: HIDP (ヒューマンインターフェースエミュレーション) バージョン 1.2 [ 2.566183] mmcblk0boot0: mmc0:0001 DG4008 4.00 MiB [ 2.571128] Bluetooth: HIDPソケット層が初期化されました [ 2.577141] mmcblk0boot1: mmc0:0001 DG4008 4.00 MiB [ 2.582279] 8021q: 802.1Q VLAN サポート v1.8 [ 2.587386] mmcblk0rpmb: mmc0:0001 DG4008 4.00 MiB、chardev (234:0) [ 2.593702] lib80211: IEEE802.11ドライバの共通ルーチン [ 2.599474] 9pnet: 9P2000サポートのインストール [ 2.603862] キータイプdns_resolverが登録されました [ 2.608236] NET: PF_VSOCKプロトコルファミリを登録しました [ 2.628135] 登録済みのタスク統計バージョン1 [ 2.633034] コンパイルされたX.509証明書の読み込み [ 2.653505] usb_phy_generic usbphynop1: 排他的要求ではダミー電源は許可されません [ 2.661895] usb_phy_generic usbphynop2: 排他的要求ではダミー電源は許可されません [ 2.688736] remoteproc remoteproc0: imx-rproc が利用可能です [ 2.695541] soc_id = 37632 に一致するインデックスが見つかりません。 [ 2.695557] fsl-ocotp-fsb-s400 47510000.efuse:se-fw2デバイスの取得に失敗しました [ 2.709808] i2c i2c-0: LPI2Cアダプタが登録されました [ 2.715332] nxp-pf9453 1-0032: IRQ が設定されていませんか? [ 2.720170] i2c i2c-1: LPI2Cアダプタが登録されました [ 2.724701] nxp-pf9453: 1-0032 のプローブがエラー -22 で失敗しました [ 2.731450] i2c i2c-2: LPI2Cアダプタが登録されました [ 2.738038] soc_id = 37632 に一致するインデックスが見つかりません。 [ 2.738056] fsl-ocotp-fsb-s400 47510000.efuse:se-fw2デバイスの取得に失敗しました [ 2.753586] soc_id = 37632 に一致するインデックスが見つかりません。 [ 2.753603] fsl-ocotp-fsb-s400 47510000.efuse:se-fw2デバイスの取得に失敗しました [ 2.768255] cfg80211: 規制データベース用のコンパイル済みX.509証明書をロードしています [ 2.781972] X.509証明書「sforshee: 00b28ddf47aef9cea7」をロードしました [ 2.788249] X.509証明書「wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600」をロードしました [ 2.795658] プラットフォーム規制.0:regulator.db の直接ファームウェア ロードがエラー -2 で失敗しました [ 2.804380] clk: 未使用のクロックを無効にしない [ 2.808680] ALSAデバイスリスト: [ 2.811651] サウンドカードが見つかりません。 [ 2.815391] プラットフォーム規制.0:sysfs フォールバックにフォールバック:regulatory.db [ 2.824654] 未使用のカーネルメモリを解放しています: 4032K [ 2.829511] /linuxrc を init プロセスとして実行します 新しい UDC が見つかりました: ci_hdrc.0 ci_hdrc.00 ffs.utp0 [ 2.883040] ファイルシステムが登録されました /dev/usb-utp0/ep0 で utp を実行する [ 2.902580] 記述子の読み取り uuu fastboot クライアント 1.0.0 [ビルド[ 2.907891] bcdVersion は 0x0100 で、リトルエンディアン順序で保存される必要があります。互換性のために、ユーザー空間ドライバを修正し、0x0001 を受け入れるようにする必要があります。 2024 年 11 月 8 日 16:[ 2.921188] bcdVersion は 0x0100 で、リトルエンディアン順序で保存される必要があります。互換性のために、ユーザー空間ドライバを修正し、0x0001 を受け入れるようにする必要があります。 52:01] [2.935076]で開始し、文字列を読み取ります USB 文字列を書き込む ハンドルコマンドの開始 [ 3.911389] bcdVersion は 0x0100 で、リトルエンディアン順序で保存される必要があります。互換性のために、ユーザー空間ドライバを修正し、0x0001 を受け入れるようにする必要があります。 [ 3.923927] bcdVersion は 0x0100 で、リトルエンディアン順序で保存される必要があります。互換性のために、ユーザー空間ドライバを修正し、0x0001 を受け入れるようにする必要があります。 [ 3.938384] soc_id = 37632 に一致するインデックスが見つかりません。 [ 3.938400] fsl-ocotp-fsb-s400 47510000.efuse:se-fw2デバイスの取得に失敗しました FRDM ボード (FRDM BSP ファイル付き) で試してみましたが、同じ出力が得られました。 何が起こっているのか、なぜ FBK コマンドが機能しないのか、何かアイデアはありますか? ご協力の程、よろしくお願い申し上げます。 Re: imx93 uuu example_kernel_emmc commands stop after booting initramfs USBとFASTBOOTのU-Boot構成は正常でした ついにuuuからFBK IDを取得できました。 それはカーネルデバイスツリー内の usbotg 定義のマターでした。 evk デバイス ツリーと同じように、いくつかのオプションを定義しました。 &usbotg1 { dr_mode = "otg"; hnp を無効にします。 srp を無効にします。 adp を無効にする; USB ロール スイッチ; 過電流を無効にする; Samsung、picophy-pre-emp-curr-control = <3>; Samsung、picophy-dc-vol-level-adjust = <7>; ステータス = "正常"; }; しかし、次のように定義すると、最終的に機能しました。 &usbotg1 { dr_mode = "otg"; 過電流を無効にする; ステータス = "正常"; }; 必要なオプションは、disable-over-current のみでした。最初は dr_mode = “otg” と status=“okay” のみを定義しようとしましたが、機能しなかったので、evk デバイス ツリーで定義されているすべてのオプションを含めました。 ご協力いただきありがとうございます Re: imx93 uuu example_kernel_emmc commands stop after booting initramfs こんにちは、 @Hector_Jimenez さん! uuu が FBK ID を検出しない場合は、通常、ブートローダーが USB ガジェットを適切に初期化していないか、イメージが予期されたブート モードに入っていないことを意味します。 ブートローダーの設定を確認します。カスタム イメージに正しい USB ガジェット設定 (例: fastboot または FBK モード) が含まれていることを確認します。 シリアル コンソール ログを使用する: UART 経由で接続し、ボードが正しく起動し、期待どおりのモードになっているかどうかを確認します。 Re: imx93 uuu example_kernel_emmc commands stop after booting initramfs こんにちは、 @Chavira 。 カスタマイズしたファームウェア イメージをフラッシュしてみましたが、問題なく起動しました。 FRDM ボードの使用を開始したときに、プリコンパイルされたイメージが使用されました。 その後、カスタム ボードで initramfs を起動しようとしましたが、カスタム イメージも、 LF_v6.6.52-2.2.1_images_IMX93EVK パッケージにある NxP で提供される initramfs + カーネル イメージも、uuu アプリケーションが認識して FBK コマンドを実行できる FBK ID を表示できませんでした。 RFS とカーネルを別のパーティションに展開し、冗長化するために、パーティション テーブルを作成する必要があります。 敬具 Re: imx93 uuu example_kernel_emmc commands stop after booting initramfs こんにちは、 @Chaviraさん、迅速なご回答ありがとうございます。 はい、uuu ツールを使用して、MMC 全体をフラッシュすることで、完全にカスタマイズされたイメージをフラッシュしました。 .\uuu.exe -b emmc_all .\imx-boot.\bringup-image.rootfs.wic このイメージを使用すると、デバイスは正常に起動します。 今必要なのは、カーネル (イメージと dtb) と RFS を別々のパーティションに保持し、冗長化するために、initramfs を使用してパーティション テーブルを定義することです。 カスタム initramfs を構築しましたが、NxP が提供する initramfs イメージと同じように起動し、FBK ID も FBK コマンドもありません。 デバイスがカスタマイズされたカーネルと RFS をフラッシュして正常に起動する限り、問題ないと考えます。Initramfs も正常に起動しますが、FBK ID が表示されないSO、uuu スクリプトは待機状態になります。 有効にする必要があるカーネル オプションはありますか?設定ファイルまたは menuconfig に「FASTBOOT」設定が見つかりませんでした。 敬具 ヘクター Re: imx93 uuu example_kernel_emmc commands stop after booting initramfs こんにちは、 @Hector_Jimenezさん、 NXP サポートにお問い合わせいただきありがとうございます。 FRDM-IMX93 または iMX93-EVK のプリコンパイル済みイメージをカスタム ボードにフラッシュしてみましたか? もしSOなら、それが問題の根本であるCANがあります。プリコンパイルされたイメージは、それぞれのリファレンス ボード用に特別に構築されており、カスタム ハードウェアでは正しく動作しない可能性があります。 カスタム ボードの場合、ハードウェア構成に合わせて BSP を調整することが重要です。このプロセスを支援するために、移植ガイドを使用することをお勧めします。 よろしくお願いします、 チャビラ
查看全文
複数のキーボードを無効にする方法 こんにちは、チームの皆さん 現在、LCDディスプレイ用にlvgl gui guider 1.9.1を使用して画面をビルディングしています。 画面の 1 つで、ユーザーに入力フィールドを提供する必要がある 12 個のテキストエリアを使用しています。そのため、複数のキーボードが使用されています。これらを無効にするにはどうすればよいでしょうか。すべてのテキストエリアに必要なのは 1 つのキーボードだけです。 基本的に、ユーザーは複数のフィールドにユーザー入力を行う必要があります。このために、私はテキストエリアを使用しており、キーボードのチェックマークをクリックすると、設定するためのコールバックがトリガーされます。これが私のユースCASEです。 早急に解決策を教えてください。 ありがとう、そしてよろしく。 サハナ Re: how to disable multiples keyboards こんにちは、 スクロール機能を使用するには、LVGL マニュアルを参照してください。 https://docs.lvgl.io/master/details/common-widget-features/scrolling.htm l よろしくお願いします、 志明 Re: how to disable multiples keyboards こんにちは。これについて何かありますか? CANチームはより迅速な対応で私を支援してくれますか。 ありがとう、そしてよろしく。 サハナ Re: how to disable multiples keyboards こんにちは 解決策をありがとう プロジェクトの作成中に、lvgl guider 1.9.1 を v9.2.1 を選択して使用しています。 参照がないというエラーが出ました lv_keyboard_set_cursor_manage 入力フィールドのテキスト領域を作成するために、ご提案いただいたように独自のカスタム コードを試してみましたが、現時点ではテキスト領域とキーボードが重なっているのがわかります。 これをどう克服すればいいのでしょうか。基本的には、ページをスクロール可能にして、ユーザーがスクロールして他の入力チェック フィールドを見ることができるようにしたいと思っています。これで、キーボードの重なりの問題も解決されると思います。 スクリーンショットとコードを添付します 早急に解決策を教えてください static lv_obj_t *kb; lv_obj_t *ta_best_load_ratio_val_1; lv_obj_t *ta_eco_cycle_period_val_1; lv_obj_t *ta_eco_min_module_no_val_1; lv_obj_t *ta_rect_save_stop_val_1; lv_obj_t *ta_dry_time_val_1; lv_obj_t *ta_best_load_ratio_val_2; lv_obj_t *ta_eco_cycle_period_val_2; lv_obj_t *ta_eco_min_module_no_val_2; lv_obj_t *ta_dcdc_save_stop_val_2; lv_obj_t *ta_dry_time_val_2; LV_FONT_DECLARE(lv_font_NotoSans_Regular_18); /* --- Callbacks --- */ static void ta_focus_cb(lv_event_t *e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t *ta = lv_event_get_target(e); if(code == LV_EVENT_CLICKED) { lv_keyboard_set_textarea(kb, ta); lv_obj_clear_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_scroll_to_view(ta, LV_ANIM_ON); } } static void ta_done_cb(lv_event_t *e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t *ta = lv_event_get_target(e); if(code == LV_EVENT_READY) { const char *val = lv_textarea_get_text(ta); /* TODO: commit val to your app logic here */ lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_keyboard_set_textarea(kb, NULL); printf("User entered: %s\n", val); fflush(stdout); lv_obj_scroll_to_y(lv_obj_get_parent(ta), 0, LV_ANIM_ON); } else if(code == LV_EVENT_CANCEL) { lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_keyboard_set_textarea(kb, NULL); } } static void kb_event_cb(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t * kb = lv_event_get_target(e); if(code == LV_EVENT_READY) { lv_obj_t * ta = lv_keyboard_get_textarea(kb); if(ta) { const char * txt = lv_textarea_get_text(ta); printf("Committed value: %s\n", txt); fflush(stdout); // reset bg to default lv_obj_set_style_bg_color(ta, lv_color_hex(0xD8D8D8), 0); lv_obj_clear_state(ta, LV_STATE_FOCUSED); } lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_keyboard_set_textarea(kb, NULL); } else if(code == LV_EVENT_CANCEL) { lv_obj_t * ta = lv_keyboard_get_textarea(kb); if(ta) { // reset bg to default lv_obj_set_style_bg_color(ta, lv_color_hex(0xD8D8D8), 0); } lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_keyboard_set_textarea(kb, NULL); } } static void textarea_event_cb(lv_event_t * e) { lv_obj_t * ta = lv_event_get_target(e); lv_event_code_t code = lv_event_get_code(e); if(code == LV_EVENT_CLICKED) { // User clicked / focused → mark editable lv_obj_set_style_bg_color(ta, lv_color_hex(ECO_LABEL_EDIT), 0); } else if(code == LV_EVENT_DEFOCUSED ) { // Lost focus (like clicking outside) → reset lv_obj_set_style_bg_color(ta, lv_color_hex(ECO_LABEL_DEFAULT), 0); } } static void keyboard_event_cb(lv_event_t * e) { lv_obj_t * kb = lv_event_get_target(e); lv_event_code_t code = lv_event_get_code(e); if(code == LV_EVENT_READY) { // Tick / OK button pressed lv_obj_t * ta = lv_keyboard_get_textarea(kb); if(ta) { const char * txt = lv_textarea_get_text(ta); // Simple validation: check if user entered something if(txt && strlen(txt) > 0) { printf("User entered: %s", txt); fflush(stdout); } else { printf("No input provided!"); fflush(stdout); } // Reset to default once input is taken lv_obj_set_style_bg_color(ta, lv_color_hex(ECO_LABEL_DEFAULT), 0); } } } void screen_init(lv_obj_t *parent) { lv_obj_set_scroll_dir(guider_ui.ECO_page, LV_DIR_VER); lv_obj_set_scrollbar_mode(guider_ui.ECO_page, LV_SCROLLBAR_MODE_ON); /* 1) Create one keyboard */ kb = lv_keyboard_create(parent); lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_set_size(kb, LV_PCT(100), LV_PCT(40)); lv_obj_align(kb, LV_ALIGN_BOTTOM_MID, 0, 0); // lv_obj_add_event_cb(kb, kb_event_cb, LV_EVENT_ALL, NULL); ta_best_load_ratio_val_1 = lv_textarea_create(parent); lv_obj_set_pos(ta_best_load_ratio_val_1, 279, 132); lv_obj_set_size(ta_best_load_ratio_val_1, 104, 30); lv_obj_set_style_bg_color(ta_best_load_ratio_val_1, lv_color_hex(0xE8E8E8), 0); lv_obj_set_style_text_font(ta_best_load_ratio_val_1, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_best_load_ratio_val_1, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_best_load_ratio_val_1, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_best_load_ratio_val_1, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_best_load_ratio_val_1, LV_OBJ_FLAG_SCROLLABLE); ta_eco_cycle_period_val_1 = lv_textarea_create(parent); lv_obj_set_pos(ta_eco_cycle_period_val_1, 279, 169); lv_obj_set_size(ta_eco_cycle_period_val_1, 104, 30); lv_obj_set_style_bg_color(ta_eco_cycle_period_val_1, lv_color_hex(0xD8D8D8), 0); lv_obj_set_style_text_font(ta_eco_cycle_period_val_1, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_eco_cycle_period_val_1, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_cycle_period_val_1, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_cycle_period_val_1, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_eco_cycle_period_val_1, LV_OBJ_FLAG_SCROLLABLE); ta_eco_min_module_no_val_1 = lv_textarea_create(parent); lv_obj_set_pos(ta_eco_min_module_no_val_1, 693, 95); lv_obj_set_size(ta_eco_min_module_no_val_1, 104, 30); lv_obj_set_style_bg_color(ta_eco_min_module_no_val_1, lv_color_hex(0xD8D8D8), 0); lv_obj_set_style_text_font(ta_eco_min_module_no_val_1, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_eco_min_module_no_val_1, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_min_module_no_val_1, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_min_module_no_val_1, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_eco_min_module_no_val_1, LV_OBJ_FLAG_SCROLLABLE); ta_rect_save_stop_val_1 = lv_textarea_create(parent); lv_obj_set_pos(ta_rect_save_stop_val_1, 693, 132); lv_obj_set_size(ta_rect_save_stop_val_1, 104, 30); lv_obj_set_style_bg_color(ta_rect_save_stop_val_1, lv_color_hex(0xE8E8E8), 0); lv_obj_set_style_text_font(ta_rect_save_stop_val_1, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_rect_save_stop_val_1, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_rect_save_stop_val_1, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_rect_save_stop_val_1, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_rect_save_stop_val_1, LV_OBJ_FLAG_SCROLLABLE); ta_dry_time_val_1 = lv_textarea_create(parent); lv_obj_set_pos(ta_dry_time_val_1, 693, 169); lv_obj_set_size(ta_dry_time_val_1, 104, 30); lv_obj_set_style_bg_color(ta_dry_time_val_1, lv_color_hex(0xD8D8D8), 0); lv_obj_set_style_text_font(ta_dry_time_val_1, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_dry_time_val_1, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_dry_time_val_1, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_dry_time_val_1, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_dry_time_val_1, LV_OBJ_FLAG_SCROLLABLE); ta_best_load_ratio_val_2 = lv_textarea_create(parent); lv_obj_set_pos(ta_best_load_ratio_val_2, 279, 280); lv_obj_set_size(ta_best_load_ratio_val_2, 104, 30); lv_obj_set_style_bg_color(ta_best_load_ratio_val_2, lv_color_hex(0xE8E8E8), 0); lv_obj_set_style_text_font(ta_best_load_ratio_val_2, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_best_load_ratio_val_2, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_best_load_ratio_val_2, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_best_load_ratio_val_2, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_best_load_ratio_val_2, LV_OBJ_FLAG_SCROLLABLE); ta_eco_cycle_period_val_2 = lv_textarea_create(parent); lv_obj_set_pos(ta_eco_cycle_period_val_2, 279, 317); lv_obj_set_size(ta_eco_cycle_period_val_2, 104, 30); lv_obj_set_style_bg_color(ta_eco_cycle_period_val_2, lv_color_hex(0xD8D8D8), 0); lv_obj_set_style_text_font(ta_eco_cycle_period_val_2, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_eco_cycle_period_val_2, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_cycle_period_val_2, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_cycle_period_val_2, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_eco_cycle_period_val_2, LV_OBJ_FLAG_SCROLLABLE); ta_eco_min_module_no_val_2 = lv_textarea_create(parent); lv_obj_set_pos(ta_eco_min_module_no_val_2, 693, 243); lv_obj_set_size(ta_eco_min_module_no_val_2, 104, 30); lv_obj_set_style_bg_color(ta_eco_min_module_no_val_2, lv_color_hex(0xD8D8D8), 0); lv_obj_set_style_text_font(ta_eco_min_module_no_val_2, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_eco_min_module_no_val_2, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_min_module_no_val_2, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_eco_min_module_no_val_2, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_eco_min_module_no_val_2, LV_OBJ_FLAG_SCROLLABLE); ta_dcdc_save_stop_val_2 = lv_textarea_create(parent); lv_obj_set_pos(ta_dcdc_save_stop_val_2, 693, 280); lv_obj_set_size(ta_dcdc_save_stop_val_2, 104, 30); lv_obj_set_style_bg_color(ta_dcdc_save_stop_val_2, lv_color_hex(0xE8E8E8), 0); lv_obj_set_style_text_font(ta_dcdc_save_stop_val_2, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_dcdc_save_stop_val_2, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_dcdc_save_stop_val_2, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_dcdc_save_stop_val_2, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_dcdc_save_stop_val_2, LV_OBJ_FLAG_SCROLLABLE); ta_dry_time_val_2 = lv_textarea_create(parent); lv_obj_set_pos(ta_dry_time_val_2, 693, 317); lv_obj_set_size(ta_dry_time_val_2, 104, 30); lv_obj_set_style_bg_color(ta_dry_time_val_2, lv_color_hex(0xD8D8D8), 0); lv_obj_set_style_text_font(ta_dry_time_val_2, &lv_font_NotoSans_Regular_18, 0); lv_obj_add_event_cb(ta_dry_time_val_2, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_dry_time_val_2, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta_dry_time_val_2, textarea_event_cb, LV_EVENT_ALL, NULL); // lv_obj_clear_flag(ta_dry_time_val_2, LV_OBJ_FLAG_SCROLLABLE); // lv_obj_add_event_cb(kb, keyboard_event_cb, LV_EVENT_ALL, NULL); } /* Initialize custom UI */ void custom_init(lv_ui *ui) { init_screen_timeout(); screen_init(ui->ECO_page); } Re: how to disable multiples keyboards こんにちは、 画面用に onelv_keyboard を作成し、デフォルトで非表示にして、すべてのテキスト領域で再利用します。 テキスト領域にフォーカス/クリックすると、lv_keyboard_set_textarea(kb, ta) が呼び出され、キーボードが表示されます。 ユーザーがキーボードの OK (✓) を押すと、LVGL は割り当てられたテキスト領域に LV_EVENT_READY を送信します。そのイベントを処理して値をコミットし、キーボードを非表示にします。 LVGL v8/v9では、独自のキーボードイベントハンドラを追加してもデフォルトのハンドラは削除されないため、コールバックを安全に追加できます。 #include "lvgl.h" static lv_obj_t *kb; static void ta_focus_cb(lv_event_t *e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t *ta = lv_event_get_target(e); if(code == LV_EVENT_FOCUSED || code == LV_EVENT_CLICKED) { lv_keyboard_set_textarea(kb, ta); lv_obj_clear_flag(kb, LV_OBJ_FLAG_HIDDEN); } } static void ta_done_cb(lv_event_t *e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t *ta = lv_event_get_target(e); if(code == LV_EVENT_READY) { const char *val = lv_textarea_get_text(ta); /* your commit callback here with `val` */ lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_keyboard_set_textarea(kb, NULL); } else if(code == LV_EVENT_CANCEL) { lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_keyboard_set_textarea(kb, NULL); } } void screen_init(lv_obj_t *parent) { /* 1) Create one keyboard */ kb = lv_keyboard_create(parent); lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_set_size(kb, LV_PCT(100), LV_PCT(40)); lv_keyboard_set_cursor_manage(kb, true); /* 2) Create multiple text areas (example: 2; repeat for all 12) */ lv_obj_t *ta1 = lv_textarea_create(parent); lv_obj_set_width(ta1, 200); lv_obj_set_pos(ta1, 10, 10); lv_obj_add_event_cb(ta1, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta1, ta_done_cb, LV_EVENT_ALL, NULL); lv_obj_t *ta2 = lv_textarea_create(parent); lv_obj_set_width(ta2, 200); lv_obj_set_pos(ta2, 10, 60); lv_obj_add_event_cb(ta2, ta_focus_cb, LV_EVENT_ALL, NULL); lv_obj_add_event_cb(ta2, ta_done_cb, LV_EVENT_ALL, NULL); /* ...repeat for ta3..ta12... */ よろしくお願いします、 志明
查看全文
S32GにおけるCortex-A53ロックステップの初期化の詳細な手順 こんにちは、専門家 A53コアロックステップの初期化手順は最近お客様(Boach)によって注目されており、Markusと私は5.3.8章をチェックしました。Cortex-A53/GIC500 の S32G RM のロックステップ操作について、説明が明確でなく、十分に完了していないことがわかりました。たとえば、RM セクションではレジスタのリストのみを試みており、必要な初期化の順序が指定されていません。私の知る限り、S32G BSP は Cortex-A53 ロック ステップ デモをリリースします。しかし、ユーザーマニュアルにも初期化の詳細な順序は指定されていませんでした。 Cortex-A53 ロックステップの初期化手順を明確にするための短いガイドを提供していただけますか? Linux BSP 優先度: 中 Re: The detailed order of initialization for Cortex-A53 lockstep in S32G Linux BSP ユーザーマニュアルリファレンスS32G3_LinuxBSP_43.0_User_Manual.pdf 第 6 章「ロックステップ操作」およびセクション 6.1「イネーブルメントフロー」を参照してください。このセクションでは、ロックステップ操作に必要な高レベルの手順とレジスタの同期について説明します。要点: ブート コアは M7_0 である必要があります (「ブート ターゲットとして M7 を使用してイメージをビルディングする」を参照)。M7_0 は、A53 を開始する前に A53 ロックステップを有効にする役割を担います。 A53_0 が開始され、イネーブルメントフローで説明されているように必要なレジスタがリセットされます。これは ARM Trusted Firmware (EL3) で処理されます。 Linux の場合、正しいクラスター/コアの数を反映するようにデバイス ツリーを更新する必要があります。これは、デバイス ツリー修正メカニズムを介して U-Boot で自動的に実行されます。 ロックステップ クラスターとそのコアは、Linux カーネルに渡されるデバイス ツリーから削除されるSO、手動での構成は必要ありません。システムは、M7 ソフトウェアによって設定された GPR ビットに基づいてロックステップ モードを検出します。 ソースコード参照 A53 で実行される必要なロックステップ同期手順。これは、同期する必要があるレジスタをリセットする機能です。RM で指定されているレジスタ以外にも多くのレジスタがあることに注意してください。 https://bitbucket.sw.nxp.com/projects/ALB/repos/arm-trusted-firmware/browse/plat/nxp/s32/s32cc/s32_lowlevel_common.S#108-207 この関数は、コールド ブート (BL2) およびサスペンドからの再開 (BL31) のためにできるだけ早く呼び出されます (アセンブリ コード)。 ロックステップ用の U-Boot デバイス ツリーの修正。これは、ロックステップと派生版(コア数が少ない)の両方に当てはまります。 https://bitbucket.sw.nxp.com/projects/ALB/repos/u-boot/browse/arch/arm/mach-s32/s32-cc/fdt.c#193-254
查看全文
使用 i2c 驱动器控制 7 段显示器 早上好、 我有一个问题。我正在使用 i2c pca9956btwy 驱动程序控制两个 3 位 7 段显示器。我在轮询模式下使用带有 i2c_masterTransferBlocking 功能的 i2c 外围设备。在后台,我有一种使用 systick 的调度程序,它使用一些中断作为计时器。问题是,我经常在主程序的 while(1) 内更改显示屏上的文本,因此会丢失一些中断。我的问题是:如果我在等待传输结束时使用阻塞功能保持 i2c 外设处于轮询模式,如果中断触发信号,我就不会错过了,对吗?我是否要执行中断,然后返回等待传输结束?导致中断丢失的原因是通过 12c 进行的连续传输,对吗? 感谢您的答复。 顺祝商祺! Re: Controlling 7-segment displays with i2c drivers 早上好、 谢谢您的答复、 但我通过自动递增 LED 解决了这个问题。现在,中断几乎从未丢失过。我已经实现了一种方法,可以避免向显示屏连续发送与之前状态相同的信息。不幸的是,我使用 pca9534d 驱动程序每 20 毫秒读取一次按钮状态,我不知道如何减少传输,这意味着我会丢失一些中断。我不能增加阅读时间,否则按钮就不是实时的了。也许我可以通过设置不同的中断优先级来解决这个问题? 再次感谢您。 Re: Controlling 7-segment displays with i2c drivers 你好 请参见 GRPPWM 寄存器(数据表第 7.3.4 节) https://www.nxp.com/docs/en/data-sheet/PCA9956B.pdf Re: Controlling 7-segment displays with i2c drivers 谢谢您的答复。 我使用 mcxc242 和 pca9956btwy 控制显示器。关于驱动程序,是否有一条命令可以让我依次选择每个引脚的 PWM 强度,而无需依次为每个引脚发送命令? 再次感谢您。 此致 Re: Controlling 7-segment displays with i2c drivers Hello 是的,中断仍应执行。不过,可能导致您错过其中一些信息的原因是您正在执行频繁的 I2C 传输。这可能会使 CPU 超载,并延迟中断处理,尤其是在使用阻塞调用的情况下。 顺便问一下,您使用的是哪种微控制器?
查看全文
为 MPC5777C 组合 eQADC 通道 如果我想使用 eqADC 为 4 个通道(ANA14、ANA15、ANA16 和 ANA17 引脚)实现单个 ADC 读取触发信号。但是我不必要地不想一起读取完整的 ANA 寄存器,有没有办法可以将这些通道组合在一起然后触发信号一个中断来只读取这 4 个通道而不读取其他任何内容。 用于MPC5777C眼镜蛇控制器 Re: Grouping together eQADC channels for MPC5777C 还有多种选择,例如可以使用流模式或多个 CFIFO。这取决于你。 我建议您去看看以下内容: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/Example-MPC5674F-eQADC-Streaming-Mode-CW210/ta-p/1129358 还要注意以下公告,以了解命令排序的潜在问题: https://www.nxp.com/docs/en/engineering-bulletin/EB00927.pdf Re: Grouping together eQADC channels for MPC5777C 是的,我认为排水部分对我来说很清楚,但我更关心的是触发信号部分。就像我只想触发对 4 个特定 ADC 通道的读取一样。我们怎样才能做到这一点?就像 ADC_A 大概有 40 个频道但我真的只需要触发信号 4 个通道就能节省一些时间,这可能吗?或者我需要触发所有 ADC 的读取吗? Re: Grouping together eQADC channels for MPC5777C 你可以只对这些通道使用特定的 RFIFOX,然后触发信号 DMA/中断来耗尽这个 FIFO。这对我来说似乎更容易。
查看全文
I2C 主站不工作 你好 、 我试图在 S32K324 上测试 I2C 主控器,但没有成功。 实际上,我没有将 I2C 从站连接到 I2C 主站,但在 PTD13(LPI2C_SDA)或 PTD14(LPI2C_SCL)上看不到任何转换,这两个引脚始终为高电平。 我希望看到附件中的启动条件。 项目附在这里。 敬请期待,弗朗切斯科。 Re: I2C master not working 你好,@francescovico、 在我这边确实有效 - 我已经测试了您的代码。 如果在你这边不起作用,请详细说明不起作用的原因。 确保在调用传输时设置了 DBGEN 位。 您在运行 CM7_1 时测试过吗? 是否使用外部上拉电阻? 此致, 丹尼尔 Re: I2C master not working 嗨,丹尼尔 它仍然运行不畅 . 敬请期待,弗朗切斯科。 Re: I2C master not working 你好@francescovico、 在初始化功能之后启用。 否则,初始化功能将清除该位。 此致, 丹尼尔 NXP 提供的任何支持、信息和技术(“材料”)均按“现状”提供,不附带任何明示或暗示的保证,且 NXP 在适用法律允许的最大范围内,否认与材料相关的所有直接或间接责任和损害。NXP 对任何与应用或产品设计相关的协助不承担任何责任。材料仅可用于与 NXP 产品相关联。NXP 可以不受限制地使用您对材料提供的任何反馈。 Re: I2C master not working 你好,丹尼尔、 对不起,我把: ip_lpi2c_0->mcr |= lpi2c_mcr_dbgen_mask; I2C 仍然无法工作。 附上我的项目。 敬请期待,弗朗切斯科。 Re: I2C master not working 你好,@francescovico、 当 CM7_1 停止时,MCU 进入调试模式。 为确保 LPI2C 继续运行,可设置 LPI2C_MCR 中的 DBGEN 位以允许在调试期间运行,或保持 CM7_1 运行。 BR,丹尼尔 Re: I2C master not working 你好,丹尼尔、 谢谢,我确实忘了初始化中断。 启用中断后,I2C 也不起作用。 所附项目已启用中断。 您还有其他建议吗? 此致问候 Re: I2C master not working 你好,弗朗切斯科、 我没有测试过代码,但我发现你没有启用 LPI2C 中断。 添加带有 LPI2C0_Master_Slave_IRQHandler 的 IntCtrl_Ip 驱动程序。 并在代码中初始化驱动程序。 此致, 丹尼尔
查看全文
MPC5777CのeQADCチャネルをグループ化する eQADC を使用して 4 つのチャネル (ANA14、ANA15、ANA16、ANA17 ピン) に対して単一の ADC 読み取りトリガーを実装する場合。しかし、不必要に ANA レジスタ全体をまとめて読み取りたくないので、これらのチャネルをグループ化し、単一の割り込みをトリガーして、これら 4 つのチャネルのみを読み取り、他のチャネルは読み取らないようにする方法はありますか。 これはMPC5777Cコブラコントローラ用です Re: Grouping together eQADC channels for MPC5777C ここでも複数のオプションがあり、たとえばストリーミング モードを使用したり、複数の CFIFO を使用したりすることができます。それはあなた次第です。 以下をご覧になることをお勧めします: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/Example-MPC5674F-eQADC-ストリーミングモード-CW210/ta-p/1129358 コマンドのご注文に関する潜在的な問題を理解するために、次の通知にも注意してください。 https://www.nxp.com/docs/en/engineering-bulletin/EB00927.pdf Re: Grouping together eQADC channels for MPC5777C はい、消耗する部分は私には明らかだと思いますが、引き金となる部分の方が心配です。たとえば、特定の 4 つの ADC チャネルのみの読み取りをトリガーしたいとします。どうすればそれがCANでしょうか?たとえば、ADC_A には 40 個のチャネルがありますが、時間を節約するためにトリガーする必要があるのは実際には 4 つのチャネルだけです。これは可能ですか?すべての ADC で読み取りをトリガーする必要がありますか? Re: Grouping together eQADC channels for MPC5777C これらのチャネル専用の特定の RFIFOx を使用し、DMA/割り込みをトリガーしてこの FIFO を空にすることができます。私にとってはもっと簡単な気がします。
查看全文
S32G: QSPI dummy command inquiry Hi experts, Platform: S32G Module: QSPI In the S32G RM, there is a desription as below. It seems that the dummy command should be sent twice. However, in QSPI reconfiguration bin file we provided, there is only one dummy command . In Fls RTD example, there is also only one dummy command. Do we need to strictly follow our RM to send the dummy command twice? It seems no impact about sending the dummy command only once, since no customer report any issues about it. Thanks for your professional comments in advanced. Best Regards, Leo RTD Re: S32G: QSPI dummy command inquiry Hi @LeoLiAP , As RM mentioned, QuadSPI controller need to set 2 dummy instructions: 2 and N - 2 cycles for latency. But SW team didn't see  any problem when they just used one instruction to communicate with the external memory. From my point of view, you can put this question to HW team to know more detail about it's impact. Best regards, Nhi
查看全文
Using Segger J-Link with the IMX8MPLUS EVK I currently have the IMX8M Plus EVK, along with the J-Link Plus Compact. I am trying to connect to the EVK using JTAG. I am trying to connect to either the M7 core or the A53 core. However, I keep getting the same type of errors. Either 'Supply Voltage too low', or 'TDO is constantly high'. I have tried selecting different devices to connect to the EVK using J-Link Commander. The devices I have used are 'MIMX8ML8_M7' or 'MIMX8ML8_A53_*' and then any of the available cores. The DIP switches are set to Serial Download. I am wondering if there is something specific we need to change, or do as a prerequisite to get the connection to work properly. We have found different guides, but they all seem to assume that the connection is already established.  i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus Re: Using Segger J-Link with the IMX8MPLUS EVK Hi @Manuel_Salas , I have followed that tutorial but it still does not seem to connect properly and I get the errors as I have mentioned beforw. Do you know of any parts that people often get stuck with that I might have overlooked? Thanks in advance! Re: Using Segger J-Link with the IMX8MPLUS EVK Hello @dylanrd  I hope you are doing very well. Have you tried with the AN14120? There is explained the connection and integration with VSCode. Also, you can take a look to this community post about the connection. Best regards, Salas.
查看全文
FreeRTOS Application Testing Procedure Need to validate the FreeRTOS using below source in imx93 custom board. https://mcuxpresso.nxp.com/dashboard Kindly share the application testing document for validating FreeRTOS. Re: FreeRTOS Application Testing Procedure Hello @Esakkiammal    I hope you are doing very well.   Inside of the SDK folder, you will find a folder called freertos_exmaples:   linux@machine:~/SDK_25_03_00_MCIMX93-EVK/boards/mcimx93evk/freertos_examples$ ls freertos_event freertos_generic freertos_hello freertos_mutex freertos_queue freertos_sem freertos_sem_static freertos_swtimer linux@machine:~/SDKs/SDK_25_03_00_MCIMX93-EVK/boards/mcimx93evk/freertos_examples$   You can compile any example with gcc tool from arm. In my case I am using the arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.   You can Download the tool, and then export an environment variable for compile:   $ export ARMGCC_DIR=~/cortex-m-toolchain/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi   Then, go to the project you want to compile, for example "freertos_hello". Inside of the directory, you will find another one with name "armgcc". There are the necessary scripts to compile the project:   #Inside of "armgcc" directory $ ./build_release.sh $ cd release $ ls freertos_hello.bin freertos_hello_cm33.elf     Now you can load the examples to the board.   Best regards, Salas.
查看全文
LS1028ardb fuse provisioning header not working I am trying to get the fuse provisioning header working automatically on ls1028ardb, but after I added the header to my image, my booting is stuck at ATF(BL2) and would not move on. When I browse through the input_fuse_file, this is the one that I used according to the lsdk pdf /*  * Copyright 2018 NXP  */ --------------------------------------------------- # Specify the platform. [Mandatory] # Choose Platform - LS2088/LS1088 PLATFORM=LS1088 --------------------------------------------------- # GPIO Pin to be set for raising POVDD [Optional] POVDD_GPIO= --------------------------------------------------- # One time programmable master key flags in binary form.[Mandatory] # 0000 -> Program default minimal OTPMK value # 0001 -> Program random OTPMK value # 0010 -> Program user supplied OTPMK value # 0101 -> Program random OTPMK value with pre-programmed minimal value # 0110 -> Program user supplied OTPMK value with pre-programmed minimal value # 1xxx -> Don't blow OTPMK OTPMK_FLAGS=1000 # One time programmable master key value. # [Optional dependent on flags, Mandatory in case OTPMK_FLAGS="0010" or "0110"] OTPMK_0=12345678 OTPMK_1=87654321 OTPMK_2=12345678 OTPMK_3=87654321 OTPMK_4=12345678 OTPMK_5=87654321 OTPMK_6=12345678 OTPMK_7=87654321 --------------------------------------------------- # Super root key hash [Optional] SRKH_0= SRKH_1= SRKH_2= SRKH_3= SRKH_4= SRKH_5= SRKH_6= SRKH_7= --------------------------------------------------- # Specify OEM UIDs. [Optional] # e.g OEM_UID_0=11111111 OEM_UID_0=12345678 OEM_UID_1=21436587 OEM_UID_2=34567812 OEM_UID_3=12345678 OEM_UID_4=87654321 --------------------------------------------------- # Specify Debug challenge and response values. [Optional] # e.g DCV_0=11111111 DCV_0= DCV_1= DRV_0= DRV_1= --------------------------------------------------- # Specify Debug Level in binary form. [Optional] # 000 -> Wide open: Debug portals are enabled unconditionally. # 001 -> Conditionally open via challenge response, without notification. # 01x -> Conditionally open via challenge response, with notification. # 1xx -> Closed. All debug portals are disabled. DBG_LVL= --------------------------------------------------- # System Configuration register bits in binary form [Optional] # WP (OEM write protect) # ITS (Intent to Secure) # NSEC (Non secure) # ZD (ZUC Disable) # K0,K1,K2,K3,K4,K5,K6 (Key revocation bits) # FR0 (Field return 0) # FR1 (Field return 1) WP= ITS= NSEC= ZD= K0= K1= K2= K3= K4= K5= K6= FR0= FR1= --------------------------------------------------- # Specify the output fuse provisioning file name. (Default:fuse_scr.bin) [Optional] OUTPUT_FUSE_FILENAME=fuse_scr.bin --------------------------------------------------- I wonder what seems to be the issue here? Re: LS1028ardb fuse provisioning header not working Dear @Steven_27, please follow the steps mentioned in the next link: https://docs.nxp.com/bundle/GUID-487B2E69-BB19-42CB-AC38-7EF18C0FE3AE/page/GUID-BBED1716-8F27-4B01-9033-075D2037CAFE.html Re: LS1028ardb fuse provisioning header not working Fixed DDR on board NOTICE: 4 GB DDR4, 32-bit, CL=11, ECC on NOTICE: BL2: v2.4(release):lf-5.10.52-2.1.0-rc2-0-gbb4957067-dirty NOTICE: BL2: Built : 13:20:00, Sep 24 2025 My boot process is stuck forever here. I changed it to LS1028 as platform, I specified nothing but the OEM UID, the following is my input_files: [root@fbubuntu ls2088_1088]$ cat input_fuse_file /* * Copyright 2018 NXP */ --------------------------------------------------- # Specify the platform. [Mandatory] # Choose Platform - LS2088/LS1088 PLATFORM=LS1028 --------------------------------------------------- # GPIO Pin to be set for raising POVDD [Optional] POVDD_GPIO= --------------------------------------------------- # One time programmable master key flags in binary form.[Mandatory] # 0000 -> Program default minimal OTPMK value # 0001 -> Program random OTPMK value # 0010 -> Program user supplied OTPMK value # 0101 -> Program random OTPMK value with pre-programmed minimal value # 0110 -> Program user supplied OTPMK value with pre-programmed minimal value # 1xxx -> Don't blow OTPMK OTPMK_FLAGS=1000 # One time programmable master key value. # [Optional dependent on flags, Mandatory in case OTPMK_FLAGS="0010" or "0110"] OTPMK_0= OTPMK_1= OTPMK_2= OTPMK_3= OTPMK_4= OTPMK_5= OTPMK_6= OTPMK_7= --------------------------------------------------- # Super root key hash [Optional] SRKH_0= SRKH_1= SRKH_2= SRKH_3= SRKH_4= SRKH_5= SRKH_6= SRKH_7= --------------------------------------------------- # Specify OEM UIDs. [Optional] # e.g OEM_UID_0=11111111 OEM_UID_0=12345678 OEM_UID_1=21436587 OEM_UID_2=34567812 OEM_UID_3=12345678 OEM_UID_4=87654321 --------------------------------------------------- # Specify Debug challenge and response values. [Optional] # e.g DCV_0=11111111 DCV_0= DCV_1= DRV_0= DRV_1= --------------------------------------------------- # Specify Debug Level in binary form. [Optional] # 000 -> Wide open: Debug portals are enabled unconditionally. # 001 -> Conditionally open via challenge response, without notification. # 01x -> Conditionally open via challenge response, with notification. # 1xx -> Closed. All debug portals are disabled. DBG_LVL= --------------------------------------------------- # System Configuration register bits in binary form [Optional] # WP (OEM write protect) # ITS (Intent to Secure) # NSEC (Non secure) # ZD (ZUC Disable) # K0,K1,K2,K3,K4,K5,K6 (Key revocation bits) # FR0 (Field return 0) # FR1 (Field return 1) WP= ITS= NSEC= ZD= K0= K1= K2= K3= K4= K5= K6= FR0= FR1= --------------------------------------------------- # Specify the output fuse provisioning file name. (Default:fuse_scr.bin) [Optional] OUTPUT_FUSE_FILENAME=fuse_scr.bin --------------------------------------------------- Re: LS1028ardb fuse provisioning header not working Dear @Steven_27 please use the LS1028 as the PLATFORM instead the LS1088. let me know the results please BR LFGP
查看全文
S32K142EVB は PEMicro を使用して、OpenSDA JTAG 経由で他の開発ボードをプログラムできますか? 現在、OpenSDA JTAG SWDインターフェースを備えたS32K142EVB-Q100開発ボードと、カスタムS32K142開発ボードを所有しています。S32K142EVB-Q100開発ボードのOpenSDA JTAGインターフェースをカスタム開発ボードのSWDインターフェースに接続し、S32K142EVB-Q100開発ボード上のPEMicroを使用してカスタム開発ボードをプログラムしたいと考えています。これは可能でしょうか?もし可能であれば、どのようにすればよいでしょうか? J10 ジャンパーを接続せず、J107 ジャンパーをポイント 1-2 に接続して 2 つを直接接続しましたが、それでも自作の開発ボードにプログラムを書き込むことができません。 Re: S32K142EVB是否可以通过OpenSDA JTAG来使用PEMicro为其他开发板烧录程序 こんにちは S32K1 ボード上の OpenSDA のファームウェアは PEMicro によって提供されていますが、そのファームウェアには、カスタム ボード上の S32K1 のデバッグに使用することができない制限があります。 PEMicro のテクニカル サポートは、 S32K142-Q48 のプログラム/デバッグの問題に記載されています。 当社のOpenSDAインターフェースは、オンボードターゲットデバイスのデバッグとプログラミングを目的とした評価用途向けに設計されています。外部カスタムボード上のデバイスのデバッグに使用することはできません。 カスタム ボードの場合、S32K1xx やその他の多くの ARM デバイスをサポートするスタンドアロンの Multilink ACP を購入することをお勧めします。 http://www.pemicro.com/products/product_viewDetails.cfm?product_id=15320168&productTab=5 よろしくお願いします、 ロビン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「解決策として承認」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 ---------------------------------------------------------------------------------
查看全文
S32k144 Program Partion command (in S32k Reference manual v14 addendum) While reviewing the latest S32K14x Reference Manual, I noticed the Program Partition command table was updated to include two additional bytes: FCCOB[6] – BKRON (Boot Key Restriction On, only bit 0 used): 0 = Keys with boot protection enabled are accessible when Secure Boot is not enabled 1 = Keys with boot protection enabled are not accessible when Secure Boot is not enabled or Secure Boot failed. FCCOB[7] – Minimum MAC Length for CMD_VERIFY_MAC: 0x0 = 128 bits; 0x1..0x7F = 1..127 bits. Our current production flow (S32K144, SDK 4.0.3) executes the Program Partition command using FCCOB0..5 only (FlexRAM load option, EEE data set size code, FlexNVM partition code, etc.). We do not explicitly write FCCOB[6] or FCCOB[7], and the devices operate as expected. Could you please clarify the following? Are FCCOB[6] and FCCOB[7] mandatory for S32K144? If the command is issued without writing these bytes, what default values (if any) are used internally, and is that behavior defined/guaranteed? If they are optional, what values does NXP recommend for applications that: do not enable Secure Boot or use CSEc boot-protected keys, and do not plan to use CMD_VERIFY_MAC? (Is it safe to explicitly program BKRON = 0 and Min MAC Length = 0x00 (128-bit), or should these be left unspecified?) Backward compatibility: For units already partitioned in the field (where FCCOB[6]/[7] were not written), is any re-partitioning or re-programming required to align with the updated definition? For FCCOB[6], when the manual says “only bit 0 used,” should bits [7:1] be written as 0 for forward compatibility, and what happens if any are non-zero? Are there any errata or revision notes explaining the addition of these two FCCOB bytes to the Program Partition command? Environment: Device: S32K144 (FTFC) SDK/driver: S32K1 SDK 4.0.3 Secure Boot / CSEc: not enabled Reference: see attached screenshot from the latest RM showing the new FCCOB[6] and FCCOB[7] fields. Thank you for the guidance. I can share our exact FCCOB write sequence if needed. Re: S32k144 Program Partion command (in S32k Reference manual v14 addendum) Hi @woolim  Updated CSEc firmware is designed in a way that it is backward compatible. There’s no problem if you do not enable CSEc. The content of FCCOB[6] and FCCOB[7] will be ignored when CSEc key size is 0. You wrote that “Secure Boot / CSEc: not enabled”, so it does not affect your application. There could be a problem when CSEc is enabled. I checked the drivers in SDK 4.0.3 and it’s not so straightforward. The problem is that FCCOB registers are automatically cleared only after reset. When FCCOB registers are used to launch flash operations, the content either remains the same or some registers are used to return some values. But when you want to initialize the registers for another operation, the content is not cleared automatically. And the key point – the driver don’t do that to. The driver just writes required registers for given operation and the rest is untouched. Normally unused FCCOB registers are ignored by flash state machine. But because new functionality was added to Program Partition program, this could cause some issues. In this case, it would be necessary to check what is the real content of FCCOB registers when launching Program Partition command. If it is first flash operation after reset, there’s no problem. If there are some remains from previous operation, yes, that could be a problem. Regards, Lukas
查看全文
S32K312MINI_EVB开发板中SPI调试问题-使用示波器无法检测到SPI1发出的数据 使用S32K312MINI_EVB开发板新增SPI1发送数据,然后使用数据示波器进行数据的检测,示波器CH1通道连接SCLK,示波器CH2通道连接MOSI,示波器CH3通道连接MISO,示波器CH4通道连接CS。我这边附上程序压缩包和图片麻烦分析下 谢谢了 Re: S32K312MINI_EVB开发板中SPI调试问题-使用示波器无法检测到SPI1发出的数据 Hi 米化, 我今天没带S32K312MINI-EVB开发板,所以没有直接调试你的程序。 初步看起来你没有正确调用SPI1的相关函数: Best Regards, Robin ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "ACCEPT AS SOLUTION" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
查看全文
i.MX RT1011で正確なパルスを生成し、ADCに接続する方法 私は、正確にタイミングされたパルス (2 us ~ 1 ms) を生成し、それに続いて連続した ADC 読み取り値のバーストをキャプチャする必要があるプロジェクトに取り組んでいます (以下を参照)。EVKMIMXRT1010 評価ボードを使用して、MCUXpresso で C でコーディングしています。 GPIO を使用してピンをハイに駆動し、タイト ループで待機してからピンをローに駆動して ADC チェーンをトリガーするコードがありますが、これによりプロセッサに不要な負荷がかかり、他の割り込みの影響を受ける可能性があります。理想的には、パルスを開始し、プロセッサが DMA を使用してデータ キャプチャを処理できるようにし、キャプチャされたアナログ データの配列が完了したときに割り込みによって通知したいと思います。 残念ながら、私は最初のハードルで失敗してしまいました。eFlexPWMおよびFLEXIOペリフェラル の両方を確認しましたが、どちらも時間指定の単一パルスを生成することができません (サンプル プロジェクトを使用して PWM パルスのシーケンスを生成しましたが、1 つだけ生成した後に停止する方法がわかりません)。 これが可能かどうか、またSOであれば、設定に必要な特定のペリフェラルレジスタ設定についてどなたか教えていただけませんか? どうもありがとう。 リチャード   i.MXRT 101x Re: How to generate accurate pulse on i.MX RT1011 and chain to ADC さらに調べてみると、RT1011 では XBARA インターフェースを使用して FLEXIO ペリフェラルから ADC をトリガーする方法がないことがわかりました。したがって、私が提案する解決策は、PIT を使用してパルスを生成し、PIT 割り込みでパルスをオフにして、そこから ADC 変換を開始することです。 Re: How to generate accurate pulse on i.MX RT1011 and chain to ADC こんにちは@Gavin_Jia 、 ご返信ありがとうございます。これについてもう少し考えてみたところ、FLEXIO ペリフェラルを使用できるのではないかと考えました。1 つのタイマー、1 つのシフタ、および 1 つの出力ピンを使用して、1 ビット転送を設定することは可能ですか? AN12174 を例にして、シフターとタイマーを以下のように設定します。 これはうまくいくと思いますか? どうもありがとう。 リチャード Re: How to generate accurate pulse on i.MX RT1011 and chain to ADC こんにちは@RickyCoderさん、 NXP MIMXRTシリーズにご興味をお持ちいただきありがとうございます。 私の知る限り、FlexPWM モジュールはこのような操作には適していません。PWM で ADC をトリガーすることが目的の場合は、このドキュメントの実装を参照できます。この実装では、Val4/5 を構成して ADC をトリガーすることにより、信頼性の高い変換が保証されます。 よろしくお願いします、 ギャビン
查看全文
NXP 当社はP89C669FAタイプの製品を保有していますが、プログラミングに問題が発生しています。動作させるにはコードを入力しなければ動作しません。誰かこれを修正したり、これに関する情報を提供CANますか? Re: NXP こんにちは@saad22さん、 ご不便をおかけして申し訳ございません。しかし、私たちはあなたのリクエストに応えることはできません。 よろしくお願いします、 パブロ
查看全文
用于绑带式选项的以太网驱动程序 亲爱的各位 我使用带有 KSZ8081MNX 的 RT1064 作为以太网 PHY,与 EVK 板不同,目标是用绑式电阻器设计的,所以没有 MDIO/MDC 引脚,我正在努力让它在现有的以太网驱动程序库中正常工作,我需要做些什么?有驱动程序吗? 谢谢! 平 Re: Ethernet drivers for strap-in option 如果没有 MDIO/MDC,RT1064 就无法读写 PHY 寄存器。这意味着必须在软件中硬编码 phy 配置,并禁用任何动态 phy 检测。 您需要删除使用 MDIO 的调用,代之以静态配置。 BR, Omar
查看全文
NXPS32K312 限制无 HSE 的调试 MCU 芯片:恩智浦 S32K312 收件人: 当我想在没有 HSE 的情况下限制调试时,我发现 LC 无法高级。 谁能给我一些建议来解决这个问题。 以下是我尝试获取的一些信息。 压缩包中包括 .s 和 icf 文件。 Re: NXPS32K312 Restrict the debug without HSE 你好,@齐茅-马文 密码和 LC 配置词似乎是正确的,我看不出有什么问题。 此设备上没有安装 HSE 固件吗?能否检查 0x4039_C028 的 HSE GPR 寄存器?如果安装了 HSE 固件,LC 配置字将被忽略,生命周期需要通过 HSE 服务提前。 此致, Lukas
查看全文
MUインターフェース経由のHSEインストールに関するいくつかの質問 こんにちは、NXP S32K344開発ボードに MU インターフェース経由で HSE をインストールしようとしています。 多くのドキュメントとファイルを読んだ後でも、まだいくつか質問があります。 1.ピンクのイメージをSRAMに入れたいです。ld ファイルを使用してイメージを SRAM に直接配置しようとしましたが、失敗したようです。(ld ファイルを使用してフラッシュに画像を配置することは可能です) HSE_FLASH: 原点 = 0x00502000、長さ = 0x00030000 HSE_SRAM: 原点 = 0x20410000、長さ = 0x00030000 代替の解決策として、MPU を無効にし、memcpy を使用してフラッシュから RAM にイメージをコピーすると、機能します。 2. 機能リセットを呼び出したい場合は、「Power_Ip_PerformReset(&Power_Ip_HwIPsConfigPB);」を使用します。 「 Power_Ip_PerformReset 」がトリガーされると、SRAM の内容が失われ、メイン関数の最初の行に移動します。これはドキュメントに適合していないようです。 私の使い方は正しいでしょうか?これは機能リセットの通常の動作ですか?   3. アプリ経由で DCMRWP1 および MU Rx/tx レジスタを読み書きする方法。デバッグで jlink を使用しようとしましたが、読み取りと書き込みに失敗しました。 ご返信よろしくお願いします。 Re: Few questions about HSE installation via MU interface RAM メモリを初期化する必要があります。 この初期化は、POR リセット後、および RAM の内容が無効な場合の破壊的リセット後に必要です。RAM の内容は機能リセット後も保持される、CASE RAM の初期化は必要ありません。 デバッガー内の「????????」は、デバッガーがデータを読み取ることができないことを意味します。RAM の CASE、RAM が初期化されていないために ECC エラーが発生します。 ご質問にお答えします: 1. 機能リセットにより、「App core」が main.c の最初の行に戻りますが、インストールには 2 つの機能リセットが必要です。PCのポインタをリセットされないようにCANますか? - 機能リセットにより、プログラム カウンターは main.c の最初の行ではなく、エントリ ポイントに強制的に設定されます。デバッガーが main 関数の最初の行で停止する場合は、ブレークポイントが原因です。リセット後も PC を維持することはできません。上で述べたように、機能リセット中も RAM の内容は保持されます。RAM の初期化は CAN 条件付きにすることができます。つまり、機能リセット後に起動コードで RAM を初期化する必要はありません。 2. アプリ経由でこれらのレジスタを読み書きする方法が分かりません。教えていただけますか? - これらは通常のメモリマップレジスタです。他のペリフェラルレジスタと同様に、レジスタの読み取り/書き込みが可能です。HSE FW RM で説明されている MU インストール方法には、これらのレジスタのアドレスも含まれています。 よろしくお願いいたします。 ルーカス Re: Few questions about HSE installation via MU interface ご返信ありがとうございます。 NXPについて はプログラマーを製造しています。弊社のお客様の 1 社は、MU インストールを使用してイメージを SRAM に配置することを選択しました。SO、自作プログラマー向けの実装プランを見つけようと勉強中です。 SRAM の内容が消去される理由が判明しました: .ldでファイルには、「 __RAM_INIT = 0;」という設定が 1 つあります。これにより、リセットのたびに SRAM が初期化されます。 私はtrace32を持っていない、SO Jlinkを使います。デバッガー経由で直接変更しようとしましたが、失敗しました。 警告: アドレス 0x402AC2C0 のメモリの読み取りに失敗しました 警告: アドレス 0x402AC2C0 のメモリの読み取りに失敗しました 警告: アドレス 0x402AC66F のメモリの読み取りに失敗しました   SO 私は新しい方法を探しています。私のアイデアは、アプリ経由で MU を制御することです。 現在、私が主に混乱しているのは以下の点です。 1. 機能リセットにより、「App core」が main.c の最初の行に戻りますが、インストールには 2 つの機能リセットが必要です。PCのポインタをリセットされないようにCANますか? 2. アプリ経由でこれらのレジスタを読み書きする方法が分かりません。教えていただけますか? 私はこのインストール方法とこの IDE を初めて使用するので、私の理解には不正確な点があるかもしれません。ご理解の上、間違いがあれば訂正していただければ幸いです。 アプリ経由でコントロールMUのインストールは可能ですか? それとも他の方法の方が良いでしょうか?   Re: Few questions about HSE installation via MU interface こんにちは@BianHaopeng まず、MU インターフェース経由のインストールを使用する特別な理由はありますか?これは通常、回復目的で使用されます。IVT 経由のインストールがより一般的な方法です。 ピンク色の画像をフラッシュメモリに残すCAN。RAMに移動する必要はありません。リセット後、RAM はスタートアップ コードによって初期化され、変数もクリア/初期化されます。これが、イメージが RAM 内で利用できなくなった理由と考えられます。 また、デバッガーでは通常、リセット イベントをキャッチする際に問題があり、リセット後の動作が予測できない場合があります。このような操作はデバッガーなしでテストする方がよいでしょう。 Lauterbach の Trace32 デバッガーを使用した場合、MU インターフェース経由でファームウェアをインストールしても問題はありませんでした。タイムアウトは十分に長いので、デバッガーでシーケンスを手動で実行しても問題はないはずです。 DCMRWP1 レジスタに書き込むにはどうすればいいですか?24:31 ビットのみ書き込む必要があります。私は単にレジスタの内容を読み取り、それに応じてビット 24:31 をマスクし、その値を書き戻しました。私の側ではこれが機能しました。 よろしくお願いいたします。 ルーカス
查看全文