Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
除了 ISP 模式之外,还有其他恢复 CMPA/CFPA 存储空间的方法吗? 我收到了开发板并运行了一些演示项目。我发现在网络安全代码中,不可能设置中断和调试代码。 之后,在学习了用户手册之后,有必要在 CMPA 和 CFPA 中配置 DCFG_CC_SOCU_PIN / DCFG_CC_SOCU_PIN。这两个字段默认为 0。根据文件描述,DAP 调试验证是必需的,因此我想尝试将它们改为 1,默认启用调试。 因此,我使用 MCUXpresso 安全配置工具 25.09 在默认配置的基础上将与 DCFG_CC_SOCU_PIN/DCFG_CC_SOCU_PIN/DCFG_CC_SOCU_PIN 对应的位数修改为 1。下载后,调试器无法连接,使用串行通信的 ISP 也提示无法连接。 还有其他方法可以将这个板的CMPA/CFPA存储空间恢复到出厂设置吗? Re: Is there any other way to restore the CMPA/CFPA storage space excpet ISP mode? 启用调试身份验证后,可以更新 CMPA/CFPA。您需要使用调试邮箱进入 ISP 模式并更新 CMPA/CFPA,请注意 CFPA 每次更新时都需要增加 +1 版本(已解决:SB 2.1 (1B) 闪存 CFPA 页面过时 - NXP 社区)。 如果无法进入 ISP 模式,则可能是禁用了 ISP。你能分享一下你写给设备的 CMPA 吗? BR, Omar Re: Is there any other way to restore the CMPA/CFPA storage space excpet ISP mode? 谢谢您的答复。以下是我根据默认设置修改的 CMPA 和 CFPA 配置。 Re: Is there any other way to restore the CMPA/CFPA storage space excpet ISP mode? 你好@xtyzh 抱歉回复晚了、 您共享的配置是您上次下载到板的配置吗? 请确认您使用的是哪个部件号? 你在使用定制板吗?如果不是,请说明你使用的是哪个板 Re: Is there any other way to restore the CMPA/CFPA storage space excpet ISP mode? 你好@carlos_o: 我使用的是 LPCXpresso55S69 修订版 A2 开发板。 Re: Is there any other way to restore the CMPA/CFPA storage space excpet ISP mode? 你好@xtyzh 感谢您分享您的板和您使用的 CMPA/CFPA 配置文件的详细信息。 审查后,ISP 连接不会受到影响。 能否请您分享一下您之前遵循的步骤? 你对板做过任何返工吗?
View full article
S32K3xx FEE初期化時間 こんにちは、チームの皆さん この FEE の動作についてフィードバックを提供していただけますか? Fee_Init 実行時間はレコードごとに約 1.9 ミリ秒増加すると予想されますか?これはかなりの遅延のようです。 Fee_Example_S32K344 では、初期化ルーチンに MEMIF_IDLE を待機する while ループが含まれています。書き込みとリセットのサイクルを繰り返すと、このルーチンに必要な時間が著しく増加します。 例: 1 回の書き込みとリセット後、初期化には約 1.9 ミリ秒かかります。 100 回の書き込み/リセット サイクル後、遅延は約 190 ミリ秒に増加します。 すべてのデータが正常に保存されるように、FEE への書き込みにはブロッキング操作を使用しています。 簡略化したシナリオは次のようになります。 初期化ルーチン FEEへの書き込み(ブロッキング操作) アプリケーションタスクを実行する リセット リセット後、初期化ルーチンにかかる時間が長くなります。 RTDバージョン3.0.0を使用していますパッチはインストールされていません。 ありがとうございました。 BR、ダニエル RTD Re: S32K3xx FEE initialization time こんにちは@danielmartynek 、 それは正常です。Fee ドライバーは、ユーザー データを仮想ブロックの形式で Fls メモリに保存することによって機能します。Fls への書き込みタスクごとに、レコード (ブロック ヘッダー + ユーザー データ + ステータス有効/無効ブロック) が作成されます。つまり、書き込みサイクルが増えると、より多くのレコードが作成されることになります。リセット後、Fee が初期化されます (Fee_Init + fee_mainfunction + MemAcc_mainfunction)。これは、Fls_memory 内のすべてのレコードをスキャンしてブロック ステータス テーブルを再構築することから構成されます。SO、書き込みサイクルの数が多く、初期化をスキャンする必要があり、レコード/ブロックの検証が大きくなります。 よろしくお願いいたします。 ニ Re: S32K3xx FEE initialization time こんにちは@Nhi_Nguyen 、 あなたの言いたいことは分かりますが、レコードあたり 2 ミリ秒というのはかなり長いように思えます。 品質レポートのプロファイリング レポートには、実際にはマイクロ秒単位でタイミングが表示されます。 よろしくお願いいたします。 ダニエル Re: S32K3xx FEE initialization time こんにちは@danielmartynek 、 実際、Fee_Init() は、いくつかのグローバル変数といくつかのレジスタを設定し、fls のステータスをチェックするだけですが、初期化タスクには {MemAcc_Init()、Fee_Init()、(Fee_Mainfunction()、MemAcc_Mainfunction()、fls がアイドル状態になるまで待機する Getstatus) のループが含まれます}。 クラスター ヘッダー、ブロック ヘッダー、データ ブロックの書き込み、ブロックのフラグ ステータスの書き込みをスキャンするループ。 または、Fee_Write() はグローバル変数を設定するだけですが、書き込みタスクには {Fee_Write(), loop of (Fee_mainfunction(), MemAcc_MainFunction(), GetStatus)} が含まれます。 これらのタスクの実行時間は、ページ サイズ、頻度、キャッシュ、仮想ブロックのサイズなどの構成によって異なります。 パッケージに添付されていた Fee の例で、データが 4 バイトの書き込みタスクを実行してみました。約 1,133 ミリ秒かかりました。 プロファイリング レポートは、タスクではなく各関数の実行時間のみを対象としています。 よろしくお願いいたします。 ニ
View full article
访问 nxp.com 您好。 如果不使用VPN,就无法访问nxp.com功能域的所有站点。 我收到了错误信息: Access Denied You don't have permission to access "http://mcuxpresso.nxp.com/en/dashboard" on this server. Reference #18.977a7b5c.1754475329.7d13ec17 https://errors.edgesuite.net/18.977a7b5c.1754475329.7d13ec17 也许这些都是按 IP 地址设置停止列表的错误。 恩智浦公司有谁能解决这个问题? Re: Access to nxp.com   同样的问题 您没有权限访问该服务器上的"http://www.nxp.com/" 。 参考 #18.633c655f.1754500173.c79a737 https://errors.edgesuite.net/18.633c655f.1754500173.c79a737
View full article
在 IMX8mm 上编程 SJC_DISABLE、JTAG_SMODE 和 JTAG_HEO 熔丝 你好 在 AN4581 应用笔记第 5.7 节中,建议对 SJC_DISABLE、JTAG_SMODE 和 JTAG_HEO 熔丝进行编程以完全保护设备,但是同时看 IMX8MMRM 和 IMX8MMSRM,我找不到这些熔丝的确切位置(银行、字、位)。在哪里可以找到这些信息? 谢谢! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 你好,我是@igorpadykov、 如果您能把这些信息也发给我,我将不胜感激。 预先致谢 Dj Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 您好, 您能否将这些信息也发给我? 另外,imx8m nano 和 mini 之间有区别吗? Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 我们也希望得到这些信息。 Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 嗨,@伊戈尔帕季科夫、 我需要有关 imx8m mini 熔丝的信息。能否请您提供给我?出于网络安全原因,我需要禁用 JTAG。 最好的奖励 胡利安 Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM @igorpadykov 你还能把 JTAG_HEO 熔丝的信息发给我吗? 谢谢! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 您也能与我分享一下吗?为什么这不只是发布在公共应用程序备注、参考手册或网络安全参考手册中?通过隐蔽实现的网络安全不是网络安全。 Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 您能公开这封邮件吗?为什么安全参考手册中没有列出这些信息?对于i.MX8M Nano,这已在网络安全参考手册中列出。但是我不知道 Mini 是否使用同样的熔丝。 此外,AN4581 还列出了值得关注的熔丝 DIR_BT_DIS。但我找不到任何参考。 Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 我们还想在 imx8m-mini 上禁用 JTAG,但我在《参考手册》修订版 2,2019 年 8 月 8 日第 6.2 章 Fusemap 中找不到任何有关它的信息。您能为我指明正确的方向吗? 谢谢! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM 嗨 Rodrigo_travess 附加信息已通过邮件发送。 问候 igor
View full article
EBtresos 激活码 您好, 我试图在 AUTOSAR 中使用 EBtresos,但未能激活。 激活代码 :B25C-AEB-4319-BAB1 ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数量超过允许的最大数量 (0)。 与 FlexNet Operations Server 的连接失败。 因此,我需要另一个激活代码才能使用 EBtresos。 谢谢! Re: EBtresos activate code 不便之处,敬请原谅。 激活码已更新,请点击S32K3 标准软件-> Automotive SW - EB tresos Studio / AUTOSAR 配置工具 -> EB tresos Studio 29.0.0 Re: EBtresos activate code 您好, 单击 "升级 " 按钮。 Re: EBtresos activate code 很抱歉,最近几天有几位客户报告了这个问题,称激活代码 :B25C-AEBB-4319-BAB1 不可用。 我的同事还没有回复我,所以请暂时点击 "升级"按钮。 Re: EBtresos activate code 我也有同样的问题 Re: EBtresos activate code HI 我暂时无法使用这个激活码:B25C-AEBB-4319-BAB1 我已经向我的同事报告了这个问题。 您还有其他 2025 年到期的激活码吗? 如果您使用的激活码将于 2025 年到期,那么请 点击 EB 客户端许可证管理员中的 "升级 "按钮来延长有效期。 祝好, Robin ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: EBtresos activate code 我也遇到了同样的问题,没有其他许可证可以升级。 激活 NodeLocked 许可证 B25C-AEBB-4319-BAB1,许可证数量:1 Status:4, 创建请求 状态:5,已创建请求 状态:6、创建上下文 状态:7,已连接远程服务器 状态:8,请求已发送 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:11,已完成 ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数量超过允许的最大数量 (0)。 与 FlexNet Operations Server 的连接失败 Re: EBtresos activate code 您好: 我遇到了同样的问题,请帮助解决我的问题! Re: EBtresos activate code 以下是Flexnet Help 的答复: 现在,我们的团队正在更新系统中的激活码信息。在此之前,请使用下面提供的新激活代码: F5CF-8A53-B979-CD50 回复: EBtresos activate code 这个activation code免费评估的用户数量超过上限了,我已经报告给 Flexnet Help 了。 回复: EBtresos activate code 问题解决了吗?咋解决的 回复: EBtresos activate code 你好、 那可以提供一个新的激活码吗?
View full article
PF5030はすべての出力が失われた状態でI2Cを読み取ります こんにちは。致命的なエラーが発生すると、入力電源は維持されますが、PF5030 のすべての出力が失われます。I2C 経由で詳細な障害情報を取得する方法はありますか? VDDIO は出力の 1 つから供給されます。この状況では、VDDIO が失われ、I2C インターフェースが機能しない可能性があります。しかし、致命的なエラーが発生した後に外部 VDDIO を提供するとどうなるでしょうか? エラー メッセージは保持されたままになりますか、それともすでに失われていますか?エラーが発生した後に外部 VDDIO を供給し、I2C 通信を試行することで、エラーの原因をCANますか? Re: PF5030 read I2C while all output lost こんにちは、ポニーさん 致命的なエラー (ウォッチドッグ障害、監視対象レールの過電圧、障害カウンタのオーバーフローなど) が発生すると、PF5030 は DEEP-FS 状態に移行します。 DEEP-FS では、すべてのレギュレータがオフになります。 フェイルセーフロジックはVINから内部的に電源供給されている I²C インターフェースはフェイルセーフ ドメインにあり、VDDIO (1.71 V ~ 5.25 V の範囲) が存在すると再び機能するようになります。 VIN が POR しきい値を上回っており、デバイスの電源がオフ/オンされていない限り、フェイルセーフ レジスタ (例: FS_GRL_FLAGS 、 FS_OVUVREG_STATUS1 、 FS_DIAG_SAFETY 、 FS_STATES ) には次の内容が含まれます。 どの電圧モニターがトリガーされたか(OV/UVフラグ) ウォッチドッグエラーフラグ 障害カウンターとステートマシンのステータス これらのレジスタはPORまたは明示的な書き込みによってのみクリアされ、DEEP-FSに入ることによってはクリアされません。 FS_GRL_FLAGS (一般的な障害の概要) FS_OVUVREG_STATUS1 (VMONがトリガー) FS_DIAG_SAFETY (ウォッチドッグ、CRC、BIST ステータス) FS_STATES (現在のフェイルセーフ状態) VIN が失われていない限り、VDDIO に外部電源を供給して致命的なエラーが発生した後に詳細な障害情報を回復 CAN。VIN が POR を下回ると、すべての揮発性レジスタがクリアされます。 敬具、 ヨゼフ
View full article
S32K144:在 lin_master_s32k144 (S32DS.ARM2.2) 中集成 FlexCAN 早上好: 目前使用 S32K144EVB 板准备系统演示,其中我们必须管理 1 个经典的 CAN-HS 网络 (500k) 和 3 个 LIN。(19200,每个 LIN 有多个从属设备) k144EVB 板将充当 3 个 LIN 的 LIN 主控器,这就是为什么我选择 lin_master_s32K144 示例作为起点。LINStACK 运行正常,现在我开始检查 CAN 通信与项目的集成情况。通过查看 S32K144 文档和示例,我发现 K144 有 2 种不同的 CAN 通信管理方法......要么通过 FIFO,要么通过 MBs......不清楚其中一种方法的优势。对于必须接收 4-5 条 CAN 报文、处理部分内容数据并定期发送 1 或 2 条 CAN 报文的系统而言,不清楚其中一种方式的优势: 1) 考虑到我的 LIN 主站将满负荷运行,哪种配置更容易使用? 2) 恩智浦 linstack 与 FlexCAN 集成之间是否会出现寄存器/时钟/中断冲突? 3) 是否有这样的集成示例(LIN-MASTER + CAN-HS)? Re: S32K144: Integration of FlexCAN inside lin_master_s32k144 (S32DS.ARM2.2) 你好@rricart LIN 和 CAN 之间没有任何关系,它们是两个独立的外设模块。 对于 S32K1 FlexCAN,CAN FIFO 不支持 CAN FD,因此需要考虑是否需要支持 CAN FD。 如果您的项目不需要 CAN FD 功能,那么 MB 或 FIFO 都可以。 您可以参考此链接中提供的演示,其中对使用 FlexCan 的不同方式进行了分类,并提供了一个简单的测试演示。 https://community.nxp.com/t5/S32K-Knowledge-Base/S32K1xx-FlexCAN-Mask-Setting-Demo/ta-p/1519753
View full article
I3C 目标 RESET 大家好, 我想 RESET 一台 I3C 外围设备。 请问您是如何在 MCXN556 上实现这一功能的? 谢谢。 通信& 控制(I3C | I2C | SPI | FlexCAN | 以太网 | FlexIO) MCX N Re: I3C target reset 你好@Bruce96 我想您可以参考 FRDM_MCXN947 SDK i3c 演示。 BR 哈利
View full article
MC9S12 メモリに関する質問 私は MC9S12GC16CPBE 用に設計されたファームウェアを使用しており、制御ロジックでアドレス 0x0F1C が使用されていることに遭遇しました。このアドレスはデータシートやリファレンスマニュアルに記載されていないことに気付きました。これがマスク セット 1M34C に関連付けられているかどうか、またはこのバリアントの特別な診断またはステータス レジスタの詳細を説明した補足ドキュメントが存在するかどうかを明確にできる人はいますか? ありがとう   Re: MC9S12 MEMORY QUESTION こんにちは、 メモリマップには次のように書かれています... リセット後のマップは次のようになります。 0x0000~0x03FF: レジスタ空間 ...... 1Kレジスタ空間は任意の2K境界にマッピング可能 0x0C00–0x0FFF: 1K RAM ...... 1KバイトのRAM空間は任意の2K境界にマッピング可能 SO、リセット後、アドレスはデフォルトで RAM として定義されます。 よろしくお願いいたします。 ラディスラフ
View full article
IMX8MP uboot configured with dual channel lvds, showing the presence of colored vertical lines Background: Currently according to the patch <8MP_LVDS_patch > configure uboot's lvds display, using 1280x800 single-channel screen display is normal; based on this basis need to realize 1920x1080 dual-channel display, has been configured as follows: 1. Configure the screen reference of lvds: timing_lvds: timing_lvds { clock-frequency = <141140000>; hactive = <1920>; vactive = <1080>; hfront-porch = <94>; hback-porch = <92>; hsync-len = <2>; vback- porch = <18>; vfront-porch = <16>; vsync-len = <2>; hsync-active = <1>; vsync-active = <1>; de-active = <1>; } ; 2. Write the register configuration of ldb: //CH1 #define CH1_DATA_WIDTH_24BIT (1 << 7) #define CH1_BIT_MAPPING_JEIDA (1 << 😎 #define CH1_BIT_MAPPING_SPWG (0) << 😎 media_blk_write(priv, LDB_CTRL, LDB_CH0_MODE_EN_TO_DI0 | CH0_DATA_WIDTH_24BIT | CH0_BIT_MAPPING_JEIDA | LDB_CH1_MODE_EN_TO_DI0 | CH1_DATA_WIDTH_24BIT | CH1_BIT_MAPPING_JEIDA); media_blk_write(priv, LDB_CTRL, LDB_CH0_MODE_EN_TO_DI0 | CH1_DATA_ WIDTH_24BIT | CH1_BIT_MAPPING_JEIDA). 3. According to the formula, calculate the PLL value: PLL_1443X_RATE(987980000U, 823, 5, 2, 20971), the There is a logo screen displayed, but the screen shows the presence of colored vertical lines, what could this be, please help troubleshoot, thanks; looking forward to your reply! i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX8ULP Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @dadaxin Since the bmp display in kernel and uboot is not the same function, so for now I suspect that there is something wrong with the bmp display related function, please try to replace the video_bmp_display function. int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, bool align) { struct video_priv *priv = dev_get_uclass_priv(dev); int i, j; uchar *start, *fb; struct bmp_image *bmp = map_sysmem(bmp_image, 0); uchar *bmap; unsigned long width, height; unsigned long pwidth = priv->xsize; unsigned colours, bpix, bmp_bpix; enum video_format eformat; struct bmp_color_table_entry *palette; int hdr_size; int ret; if (!bmp || !(bmp->header.signature[0] == 'B' && bmp->header.signature[1] == 'M')) { printf("Error: no valid bmp image at %lx\n", bmp_image); return -EINVAL; } video_bmp_get_info(bmp, &width, &height, &bmp_bpix); hdr_size = get_unaligned_le16(&bmp->header.size); debug("hdr_size=%d, bmp_bpix=%d\n", hdr_size, bmp_bpix); palette = (void *)bmp + 14 + hdr_size; colours = 1 << bmp_bpix; bpix = VNBITS(priv->bpix); eformat = priv->format; if (bpix != 1 && bpix != 8 && bpix != 16 && bpix != 32) { printf("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n", bpix, bmp_bpix); return -EINVAL; } /* * We support displaying 8bpp and 24bpp BMPs on 16bpp LCDs * and displaying 24bpp BMPs on 32bpp LCDs */ if (bpix != bmp_bpix && !(bmp_bpix == 8 && (bpix == 16 || bpix == 24 || bpix == 32)) && !(bmp_bpix == 24 && (bpix == 16 || bpix == 32))) { printf("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n", bpix, colours); return -EPERM; } debug("Display-bmp: %d x %d with %d colours, display %d\n", (int)width, (int)height, (int)colours, 1 << bpix); unsigned long bmp_stride_bytes = ((width * bmp_bpix + 31) / 32) * 4; unsigned long dst_bytes_per_pixel = bpix / 8; if (!dst_bytes_per_pixel) dst_bytes_per_pixel = 1; if (align) { video_splash_align_axis(&x, priv->xsize, width); video_splash_align_axis(&y, priv->ysize, height); } if ((x + width) > pwidth) width = pwidth - x; if ((y + height) > priv->ysize) height = priv->ysize - y; bmap = (uchar *)bmp + get_unaligned_le32(&bmp->header.data_offset); start = (uchar *)(priv->fb + (y + height) * priv->line_length + x * (bpix / 8)); /* Move back to the final line to be drawn (BMP 自下而上存储) */ fb = start - priv->line_length; switch (bmp_bpix) { case 1: case 8: { unsigned long src_bpp_bytes = 1; unsigned long dst_line_bytes = width * (bpix / 8); if (!dst_line_bytes) dst_line_bytes = width; for (i = 0; i < height; ++i) { schedule(); for (j = 0; j < width; j++) { write_pix8(fb, bpix, eformat, palette, bmap); bmap++; fb += (bpix / 8) ? (bpix / 8) : 1; } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= dst_line_bytes + priv->line_length; } break; } case 16: if (CONFIG_IS_ENABLED(BMP_16BPP)) { unsigned long src_bpp_bytes = 2; for (i = 0; i < height; ++i) { schedule(); for (j = 0; j < width; j++) { *fb++ = *bmap++; *fb++ = *bmap++; } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= width * 2 + priv->line_length; } } break; case 24: if (CONFIG_IS_ENABLED(BMP_24BPP)) { unsigned long src_bpp_bytes = 3; for (i = 0; i < height; ++i) { for (j = 0; j < width; j++) { if (bpix == 16) { /* 16bit 565RGB format */ *(u16 *)fb = ((bmap[2] >> 3) << 11) | ((bmap[1] >> 2) << 5) | (bmap[0] >> 3); bmap += 3; fb += 2; } else if (eformat == VIDEO_X2R10G10B10) { u32 pix; pix = (u32)(*bmap++) << 2U; pix |= (u32)(*bmap++) << 12U; pix |= (u32)(*bmap++) << 22U; *fb++ = pix & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = pix >> 24; } else if (eformat == VIDEO_RGBA8888) { u32 pix; pix = (u32)(*bmap++) << 8U; /* blue */ pix |= (u32)(*bmap++) << 16U; /* green */ pix |= (u32)(*bmap++) << 24U; /* red */ *fb++ = (pix >> 24) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = 0xff; } else { *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = 0; } } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= priv->line_length + width * (bpix / 8); } } break; case 32: if (CONFIG_IS_ENABLED(BMP_32BPP)) { unsigned long src_bpp_bytes = 4; for (i = 0; i < height; ++i) { for (j = 0; j < width; j++) { if (eformat == VIDEO_X2R10G10B10) { u32 pix; pix = (u32)(*bmap++) << 2U; pix |= (u32)(*bmap++) << 12U; pix |= (u32)(*bmap++) << 22U; pix |= ((u32)(*bmap++) >> 6) << 30U; *fb++ = pix & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = pix >> 24; } else if (eformat == VIDEO_RGBA8888) { u32 pix; pix = (u32)(*bmap++) << 8U; /* blue */ pix |= (u32)(*bmap++) << 16U; /* green */ pix |= (u32)(*bmap++) << 24U; /* red */ bmap++; /* alpha (忽略) */ *fb++ = (pix >> 24) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = 0xff; /* opacity */ } else { *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = *bmap++; } } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= priv->line_length + width * (bpix / 8); } } break; default: break; }; /* Find the position of the top left of the image in the framebuffer */ fb = (uchar *)(priv->fb + y * priv->line_length + x * (bpix / 8)); ret = video_sync_copy(dev, start, fb); if (ret) return log_ret(ret); return video_sync(dev, false); } Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi, @zhiming Good morning, sorry for the late reply due to a lot on my hands! I tried gateworks.bmp, the display is not very good; as shown in the following logo.png; check the uboot driver does not have the VIDEO_FONT_16X32 configuration option; I did a verification, with a 1920x1080 logo image, made into a 1280x800 logo, respectively, placed in uboot and kernel I did a verification with a 1920x1080 logo image, made into a 1280x800 logo, and put it on uboot and kernel respectively, uboot has a jagged situation of cutting diagonal angle; while kernel display is completely normal; thank you for following up the problem! Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @dadaxin The problem is still related to the resolution of the material, if you increase the resolution of the material, the jaggedness will be much less. The logo in the attachment is 296x72, but in reality it is not 296x72 pixels on the screen, so it will be stretched. You can try tools/logos/gateworks.bmp (600x93) in the same directory and see if the horizontal jaggedness is much less. For fonts, try turning on the option VIDEO_FONT_16X32, which is more suitable for high resolution screens. Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN Can you upload a copy of the logo image you're currently using (the one in the right image above)? Is the default NXP logo also displayed in dual channel 1080p? Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi, thanks for the reply! The situation is as follows: 1, the default NXP logo display also has a jagged effect, as shown in the attachment 2, there is a replacement of 1920x1080 logo image, in uboot tilted part of the presence of jagged, the rest of the display is normal; in the kernel under the file is too large, can not be displayed 3, converted to 1280x800 logo image, the effect is still the same in uboot, kernel display Normal 4, switch to 1280x800 single channel screen, uboot and kernel display are normal Single-channel display is normal, but dual-channel replacement of the logo image, uboot display will be abnormal Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN Did you have a problem with the default logo display as well as the fonts before you replaced the logo? I took a closer look at the image above and it looks like the resolution of the clip itself doesn't match the screen, I wonder if you have a higher resolution image displayed there to test and see what's going on with the higher resolution? Also, is it the same if the kernel stage shows the same logo material? Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 早上好,zhiming        按照内核的lvds寄存器写入;我在uboot中也进行了配置;但效果没有改善:logo倾斜部分还是存在锯齿;请问还有其余操作可以优化吗;期待你的回复! Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @dadaxin Corresponds to this section of the kernel's configuration, which is not in the uboot patch because only a single channel was tested at that time. You need to write the value to the lvds_ctrl register in the uboot patch. https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/phy/freescale/phy-fsl-imx8mp-lvds.c#L113 Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Thanks for the follow up, the logo graphic phenomenon is shown below: there are jaggies involving the slanted part of the fonts and the pattern. Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hello, uboot did not find the corresponding phy file: "fsl,imx8mp-lvds-phy ", in which place should be written to the registers it; <8MP_LVDS_patch>patch does not have this driver file either. Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @dadaxin You can refer to the settings in the linux lvds phy driver, set these three bits of LVDS_CTRL and the drive capability should be much better. phy_write(phy, priv->devdata->lvds_ctrl, CC_ADJ(0x2) | PRE_EMPH_EN | PRE_EMPH_ADJ(0x3)); Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Thanks for the reply! The logo image is also partially jagged, switching to a 1280x800 single-channel screen, the logo display is normal; I have adjusted various panel clocks and PLL values, but none of them can be improved; any suggestions, please? Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi, Is there any exception in the LOGO section? If it's a word, it should have nothing to do with the lvds controller and everything to do with display font optimization in uboot. Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hello, lvds screen display logo there is a phenomenon: logo part of the letter there is jagged phenomenon, how to optimize it; look forward to your reply! Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Thanks for the guidance, it's the point of the question Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi, There is this line in the code, val |= CH_EN, here only channel0 is enabled, BIT0, while BIT2 needs to be set. Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi, thanks for the reply; change LDB_CH1_MODE_EN_TO_DI0 to LDB_CH1_MODE_EN_TO_DI1, the display still works! Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN You try changing LDB_CH1_MODE_EN_TO_DI0 to LDB_CH1_MODE_EN_TO_DI1 Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi,Zhiming     感谢您的回复以及对问题的跟进,最近工作比较繁忙,回复比较晚请见谅;我进行了替换操作 1、当前5.10.72对应的uboot2021版本,替换后会报没有video_format定义;而在6.6.52对应的uboot2024版本是有的,我同步了这部分配置: +++ b/include/video.h @@ -56,6 +56,15 @@ enum video_log2_bpp { VIDEO_BPP32, }; + +enum video_format { + VIDEO_UNKNOWN, + VIDEO_RGBA8888, + VIDEO_X8B8G8R8, + VIDEO_X8R8G8B8, + VIDEO_X2R10G10B10, +}; + 2、进一步编译,报这一部分的错,不清楚怎么解决;希望能得到你的进一步回复,感谢!! Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 HI @DADAXIN @Zhiming_Liu Hello, I have the same phenomenon as you ( jaggedness ), may I ask, after modifying this function (video_bmp_display), the display is messed up, may I ask where else did you modify it?
View full article
通过 Wifi SDK 收发原始数据包 亲爱的读者   我正在开发恩智浦 RW612 SoC,并尝试使用恩智浦 无线 驱动程序在两台设备之间发送和接收原始 无线 数据包 ,无需任何握 手。 你知道我如何才能实现它吗? 以下函数尚未实现,只有其 签名在 Wifi.h 文件中: int wifi_raw_packet_send(发送t_u8 *packet, t_u32 length); int wifi_raw_packet_recv(t_u8 **data, t_u32 *pkt_type); 我需要将接收机设置为监视模式并在发射器中使用以下功能吗? intwifi_inject_frame(常量 枚举wlan_bss_type bss_type、 常数uint8_t *buff、 常量size_t len) Re: Transmit and receive Raw packet through Wifi SDK 我测试了 wifi_test_mode 示例,我注意到它只发送具有固定有效载荷模式的 802.11 帧。 就我而言,我需要发送和接收带有自定义有效载荷的原始 802.11 帧。 我可以为此使用以下函数吗? int wifi_inject_frame(const enum wlan_bss_type bss_type, const uint8_t *buff, const size_t len); 如果是,我如何在接收端接收数据包? 提前感谢您的支持。 顺祝商祺! Re: Transmit and receive Raw packet through Wifi SDK 您好, wifi_test_mode 应用程序演示了 CLI 对各种射频和合规性测试的支持。 更多详情请参见第4.9.1.7节 "传输标准 802.11 数据包(UM11799)"。 此致, 丹尼尔 Re: Transmit and receive Raw packet through Wifi SDK 欲了解更多信息。我实际上需要通过 80.11 MAC 层发送和接收数据。 Re: Transmit and receive Raw packet through Wifi SDK 亲爱的丹尼尔 感谢您的回复。 我查看了 wifi_test_mode SDK 示例。不过,此示例仍然创建了 STA 和 uAP。我实际需要的是在不握手的情况下收发数据。你知道我怎样才能做到这一点吗? 另外,我在使用监测模式方面做出了巨大努力,但我一直无法成功启动它。你能提供监测模式的示例代码吗? 提前感谢您的支持。 致以最诚挚的问候, Mohsen Re: Transmit and receive Raw packet through Wifi SDK 您好, 要发送原始 Wi-Fi 数据包,可以试试 wifi_test_mode SDK 示例。 此致, 丹尼尔
View full article
s 启动失败过渡 你好, 当 sBoot 返回 E_NOT_OK 时,是否有任何配置可以转换到 “功能安全启动”? 目前,模式选择器位于引导加载程序中。而 sBoot 正在应用中。 如何实现过渡?是通过配置吗?或者有没有可用的 sBoot API? 在《功能安全手册》中,它被称为硬件过渡。 金贵宾 Re: sBoot Failure Transition 你好,@Irshad2225 抱歉,回复晚了。 1。当 sBoot 返回 E_NOT_OK 时,是否有任何配置可以转换到 “功能安全启动”? [A]:所述转换是一种抽象流程,没有实现明确的配置。 2. 如何实现过渡?是通过任何配置?或任何可用的 sBoot API? [A]:你可以触发 RESET 或更改代码流(例如更改 PC 指针)来完成过渡,但没有 sBoot API 可用。 BR 切宁 Re: sBoot Failure Transition 你好,@Irshad2225 谢谢您的帖子。 我正在研究您的问题,请问您指的是下图吗? BR 切宁
View full article
PN5180 スタンバイ/LPCD への移行に問題があります こんにちは、皆さん 現在、PN5180 NFCリーダを使用して、低電力タグ (ISO15693) UID リーダーを実装しようとしています。通常の UID 読み取りは、すべての SPI 通信と同様に正常に動作していますが、PN5180 をスタンバイ モードにすることができません (約 23mA の一定電流消費が発生しています)... いくつかのコードスニペットを以下に掲載します。 皆さんの中にアイデアをお持ちの方がいらっしゃるかもしれませんし、私が何かを監督しているのかもしれません。 前もって感謝します!     メイン関数から:   if (nfc3_switch_lpcd(&nfc3) == NFC3_ERROR){         Display_printf (display, 0 , 0 , "スタンバイコマンドの送信エラー" );         0を返します。    }     一方( 1 ){ // この時点で、リーダーは約 10 µA の電流消費でスタンバイ状態になると予想されます。 // // インベントリ コマンドは定期的に発行されます。PN5180はリセットピンを切り替えることで起動するように計画されている。     使用されているクリック NFC3 SDK に機能を追加しました:   err_t nfc3_switch_lpcd ( nfc3_t * ctx ) {     uint8_tコマンド[ 4 ] = { 0 };     cmd [ 0 ] = 0x0B ;     cmd [ 1 ] = 0x01 ;     cmd [ 2 ] = 0x0A ;     cmd [ 3 ] = 0x80 ;         spi_master_select_device ( ctx -> chip_select );     err_t error_flag = spi_master_write ( & ctx -> spi , cmd, 4 );     error_flagを返します。 }     自分で書いた HAL レイヤーから (TI-cc1352 MCU 用):   err_t spi_master_write ( spi_master_t * spi 、 uint8_t * data_in 、 uint16_t len ) { SPI_Transaction トランザクション;     トランザクション.count = len;     トランザクション.txBuf = data_in;     トランザクション.rxBuf = NULL ;​     SPI_transfer ( spi -> spiHandle 、 &transaction)を返します。SPI_MASTER_SUCCESS : SPI_MASTER_ERROR; } 前述のとおり、SPI 通信は正常に動作しています。SO、LPCD コマンドが期待どおりに実行されると予想されます (エラー戻り値もありません) またよろしくお願いします! 🙂 ベストフリッデ Re: PN5180 trouble going into Standby / LPCD こんにちは@fridde 参照することをお勧めします NxpNfcRdLib_PN5180_v07.13.00_Pub \Examples\NfcrdlibEx6_LPCD コードをデバッグします。
View full article
RW612 FlexSPI PORTB1 访问 我在外部 XIP 模式下使用 RW612 芯片组,代码从 FlexSPI 端口 A1 运行,我将 PSRAM(APS6404L)连接到 FlexSPI 端口 B1,我使用 SDK(25.06 版)提供的配置访问端口 B1。 在尝试读取 PSRAM ID 时,我在端口 B1(CLCK/CS)上看不到任何信号活动。 我拆下了 SPARM,以确保这些信号不是由有缺陷的部件保持的。 这是否与 APS6404 不使用 DQS 信号有关? 如何配置 PortB1不使用 DQS? 感谢您的帮助和时间。 Re: RW612 FlexSPI PORTB1 access 你好,罗曼、 感谢您的帮助,问题与总线运行时尝试配置 FlexSPI 时钟有关,我注释了以下几行: CLOCK_EnableClock(kCLOCK_Flexspi); BOARD_SetFlexspiClock(FLEXSPI, 5U, 3U); 现在 FlexSPI 端口 B1 正在运行,我可以使用 AHB 高速缓存从 PSRAM 中写入/读取数据。 感谢您的帮助,非常感谢。 Re: RW612 FlexSPI PORTB1 access 你好@khalidL. 您是否按下图所示在 MCU 设置中定义了 PSRAM 内存部分? 请务必按照项目的Application Code Hub 帖子中提供的步骤操作,如果问题仍然存在,请告诉我。 Re: RW612 FlexSPI PORTB1 access 你好,罗曼、 感谢你的帮助和时间,在将上面的例子内置到我的项目中的过程中,我遇到了以下问题,当我从主服务器调用函数 " __RAMFUNC (SRAM) status_t board_initpsram (void) " 时,代码会静默崩溃。 除了更改链接器文件(main_data.ldt,)之外,我还需要对我的项目进行其他更改才能内置示例main_txt.ldt 和 noinit_noload_section.ldt)然后复制 board.c文件?我认为代码崩溃的原因是 BOARD_InitPsRam 没有正确复制到 RAM 中。 再次感谢您的时间和帮助。 Re: RW612 FlexSPI PORTB1 access 这个例子适用于我的板,非常感谢你的帮助。 Re: RW612 FlexSPI PORTB1 access 你好@khalidL,希望你一切都好。 Application Code Hub 中有一个关于来自外部或非闪存的 XIP 的示例,请帮助我测试共享链接中的示例,并告诉我它是否符合您的项目要求。 要将项目导入 MCUXpresso IDE,请单击"Import from Application Code Hub" 选项。(请注意,本示例需要使用 2.16.00 版 SDK) 进入应用程序代码中心窗口后,搜索示例的名称(来自外部 或非 闪存的 XIP,使用多端口 FlexSPI 模块配置外部 pSRAM),将其选中,然后单击 " Github 链接 " 然后等待 " N ext > " 按钮可以使用。 点击"Next>" 按钮后,按照步骤从 git 仓库导入项目。最后,当项目在工作区中可用时,您就可以在您的设置上对其进行闪存和测试了。 如果有帮助,请告诉我。
View full article
S32G399 PCIe 无法发送 TLP 数据包 如图所示,请帮帮我。目前,我正在使用 S32G399A 芯片,并通过 PCIe 接口将其连接到 FPGA。在这种配置中,S32G399A 行动 RC,FPGA 行动 EP。我现在遇到的问题是可以访问FPGA的配置空间,但是bar0的内存空间无法触发信号TLP。 下图显示了"dmesg" 在操作系统中打印的信息。在"出境" 部分,显示的是 6OB 和 4IB。应如何配置出站和入站,以及应在何处配置? 另外,原地址 基地址 目标地址分别代表什么? Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 是的,根据测试,在当前的电路板支持包驱动程序下,RC 会根据 EP 的 BAR 设置自动将该区域映射到 32 位/64 位地址空间。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 您是说 PCIe 位宽与 EP 有关吗?如果 EP 端是 64 位,那么是否无需对 RC 端进行任何修改? Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 感谢您的回复。 S32G PCIe RC 支持 64 位地址访问 例如,我使用另一个 S32G 板作为 EP,修改了 EP 端的 BAR 的相应位,然后从 RC 端的输出启动 RC 后,映射的一个区域是 " 区域 0:4900000000(64 位,可预取)[size=1M] " 的内存,可以通过 64 位地址访问。 详细修改方法可查看自己的 PCIe EP 驱动程序/RM。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 请问,如何将 PCIe RC 模式配置为 64 位宽? 目前,我使用 32 位宽度与 FPGA 通信。 Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 让我在这里继续支持它。 从显示的日志来看,有 6 个 OB 窗口和 4 个 IB 窗口。 1.OB 窗口和 IB 窗口的数量通常取决于硬件 IP,您认为这些窗口的数量是否足够? 关于 iatu 的配置,您可以查看驱动程序/pci/controller/dwc 下的驱动程序进行设置。 2。原始地址可以是来自内存功能域的请求中的地址,基本地址可以是主机地址空间中该区域的参考点,而目标地址是 PCIe 功能域中的起点。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets @cehnyin_h Re: S32G399 PCIe cannot send TLP packets 您好,@LONGGANGSU 感谢您的回复。 我发现这个问题也是通过其他渠道提出的,请直接向那里求助。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 谢谢你的帖子。 1。看来你在用电路板支持包,哪个版本? 2。哪些串行器用于连接设备,使用 PCIe x1? 3.所提到的快照是指哪份文件? BR 切宁
View full article
NXPマイクロコントローラー;スマート、セキュア、コネクテッド <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> マイクロコントローラソリューション 幅広い価格性能ポイントでマルチ製品開発を可能に SWの所有コストの削減 ハードウェアとソフトウェアのソリューションを緊密に統合した市場投入までの時間を短縮 サービス&サポート NXPマイクロコントローラ KinetisとLPCのマイコン賢い。確保。安全で、接続されています。 賢い パフォーマンスを向上させ、スペースと電力のバジェットを削減して、より電力効率の高い インテリジェントなエッジノード処理 セキュア ファミリー全体でスケーラブルなセキュリティを提供し、安全なエッジノード処理を容易にします。 適切な価格/性能比 接続 すべての主要な有線および家庭内無線接続バックボーンを提供しながら、削減を促進します の所有コスト <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> マイクロコントローラソリューション 幅広い価格性能ポイントでマルチ製品開発を可能に SWの所有コストの削減 ハードウェアとソフトウェアのソリューションを緊密に統合した市場投入までの時間を短縮 サービス&サポート NXPマイクロコントローラ KinetisとLPCのマイコン賢い。確保。安全で、接続されています。 賢い パフォーマンスを向上させ、スペースと電力のバジェットを削減して、より電力効率の高い インテリジェントなエッジノード処理 セキュア ファミリー全体でスケーラブルなセキュリティを提供し、安全なエッジノード処理を容易にします。 適切な価格/性能比 接続 すべての主要な有線および家庭内無線接続バックボーンを提供しながら、削減を促進します の所有コスト
View full article
解放串口之重定向printf输出到IAR虚拟终端(Redirect printf output to IAR Terminal to release UART port)     感谢Baolei之前在weekly meeting上分享的关于在Codewarrior环境下实现printf的重定向技巧,从而在CW调试环境下的Console上实现调试信息的打印功能,我将其移植到IAR环境下并进行了测试,可以实现调试信息的交互,完全可以替代串口的功能,在这里写出来分享给大家,再次感谢baolei的分享~     通过串口打印调试信息或者实现上下位机交互是我们最常使用的调试手段之一,毕竟实现起来无论是硬件成本(接出两根线Txd和Rxd,外加一个电平转换芯片)还是软件成本(下位机写好UART驱动,上位机直接超级终端或者一些第三方串口调试助手)都是相对较低的,所以这种方式还是灰常受广大“攻城师”们欢迎的。不过如果由于I/O资源紧缺串口被用做其他用处或者板子直接没有引出串口的话(是不是产生共鸣了,呵呵),那该怎么办呢?     当然,所谓时代不同了(liao)(顺口想说“男女都一样呢”,呵呵,哎,都是生在旧社会长在红旗下的孩子啊),随着嵌入式开发生态系统越来越完善,目前也是有越来越多的Poweful开发工具支持丰富的调试功能(支持打印调试信息和交互等),但是涉及到一些版权的问题价格上还是有点小贵的(对一些小企业来说还是难以接受的),所以这个时候就需要我们动动脑筋去摸索摸索其他的方法(所谓路是探索出来的),事实证明破釜沉舟下人的潜力是无限的,呵呵,这里就分享一个折衷的办法去解决大家一直苦恼的问题,即使用IAR虚拟的串口终端来实现信息的交互和打印,下面进入正题: 测试平台:IAR6.6 + FRDM KE02开发板(我目前手里有这个,其他平台都可以) 测试代码:KE驱动库(KEXX_DRIVERS_V1.0.1_DEVD\kexx_drv_lib_release_r1.0.1\build\iar\ke02\platinum) 这里稍微提一句,我测试的是KE驱动库的代码,但是实际上只要你看懂了我下面的解决方法(授之以渔而不是鱼),其他代码都是类似的。 1)打开KE02 platinum的IAR工程,进入到platinum.c文件,找到main函数如下图1,可以看到其调用了printf打印函数,而该工程是默认调用底层串口的,我们跳转到该函数的定义如图2,再继续跳转到out_char的函数定义如图3,这下就屡清楚了,我们可以很直观的看到工程默认是调用UART底层的,呵呵,下面我们就要动手改造它对printf进行重定向; 2)首先我们需要注释掉printf的实现函数,将其屏蔽掉,然后需要给printf一个重新指向的地址,下面就该我们常见的 这位老兄出场了(貌似当初自打我开始接触Turbo C的时候就已经用到它了,老生常谈的“Hello world”就是调用它内部的printf来实现的)。我们找到Common.h文件,将 添加到其中,如下图,这样凡是需要printf的文件只需要添加common.h头文件即可: 3)这里先说说stdio.h文件的作用,我们打开stdio.h文件可以看到其内部定义了标准输入输出函数,包括我们常见的scanf和printf等函数,而这些函数所调用的底层即为IAR提供的链接到其Terminal的驱动,所以……懂的,呵呵。除此之外,我们肯定不满足只输出打印(给人略显低端的感觉有木有),所以为了体现我们不是“土豪”,我觉着有必要让它交互起来,实现真正的串口功能(因为一些类似bootloader或shell之类的还是需要输入参数的进行交互的),我在main函数添加了scanf语句用来测试输入功能,如下: 4)准备工作就绪,编译链接整个工程,然后下载到KE02的板子中并进入到Debug调试环境中,点击View->Terminal I/O调出虚拟终端,然后全步运行,就可以看到Terminal下开始打印调试信息,如下图1。当然显示输出有点小case了,我们再试试输入功能,在input框中输入‘a’,然后回车,如下图2,perfect: 5)还没完,我们要玩就玩高端大气上点档次的,我们再探索探索呢,结果又发现个小惊喜,我们点击上图右下角的“Input Mode”,弹出设置框如下,很高端啊有木有: 呵呵,看完之后是不是有种跃跃欲试的兴奋呢,呵呵,just have a try and enjoy it~ 附件为我修改之后的工程代码,仅供参考~ Re: Redirect printf output to IAR Terminal to release UART port <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Could you provide the engineering attachments you modified?
View full article
S32K混音器 大家好, 最近,我们完成了S32K Sound Mixer的参考代码和演示,很高兴在这里分享这个演示。 此演示的一些主要特点: - 基于 S32K344/S32K148 + 音频编解码器 SGTL5000 + QSPI 闪存 MX25L6433 的演示硬件。 - 基于 S32K3 RTD RTM 2.0.0 和 S32K1 RTD RTM 1.0.0 的演示软件。 - Demo中提供了2种混音算法的实现代码,以及相应的音频素材和codec SGTL5000驱动。 - 演示展示了如何通过音频存储和播放过程对 QSPI 闪存及其 AHB 访问进行编程。 - 演示使用单声道音频作为处理源,并通过 SAI HW FIFO 组合(Line_Mux)功能输出立体声音频(I2S 格式),几乎没有额外成本。 HMI/Cluster 应用程序需要同时播放多个音频源(通常是警告声音),这就带来了混音能力的要求。但是,S32K1/3 缺乏此 HW/SW 功能支持。 结合本地重点客户的需求,并考虑到潜在客户的需求,我们计划启用一个带有预定外设的SW混音器,以增强S32K系列音频混音能力。在 S32K1/3 上使用/移植应该很容易,并使用 QSPI 闪存(AHB 模式读取)来存储音乐。 附件混音器包包括基于 S32K344 EVB 和 S32K148 T-Box RDB 的 2 个混音示例,以及一些介绍此实现和快速入门指南的幻灯片。 谢谢并欢迎您的任何评论。 顺祝商祺! 李帅林 回复: S32K 混音器 你好,S32K3 RTD RTM2.0的下载连接在哪里?我安装的S32K3 RTD 4.4无法打开项目
View full article
尔湾:LPC800 MCU 技术概述:恩智浦®面向广泛的 8 位替代市场增长最快的产品组合 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 参加本次会议,了解如何利用 LPC84x MCU 系列的创新功能,该系列是计划于 2017 年发布的三个 LPC800 版本中的第一个。通过产品功能培训和演示,我们将展示这些低功耗、基于 ARM ® Cortex ® -M0+ 的 MCU 如何为当今的入门级 32 位微控制器市场提供 8 位简易性。我们希望您在本次课程结束后能够获得正确的培训和评估板,以便立即开始您自己的嵌入式开发。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 参加本次会议,了解如何利用 LPC84x MCU 系列的创新功能,该系列是计划于 2017 年发布的三个 LPC800 版本中的第一个。通过产品功能培训和演示,我们将展示这些低功耗、基于 ARM ® Cortex ® -M0+ 的 MCU 如何为当今的入门级 32 位微控制器市场提供 8 位简易性。我们希望您在本次课程结束后能够获得正确的培训和评估板,以便立即开始您自己的嵌入式开发。
View full article
尤达里程碑奖金 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好, 在此视频中,我们展示了我们作为奖励实现的 Android 应用程序。 UDOO Quad 上运行的虚拟助手程序也是一个 Web 服务器,它公开了一个非常基本的 REST API。该API用于远程控制助手。Android 应用程序使用 Google 的 STT API 将语音转换为文本,通过互联网将输入发送给 Yoda,Yoda 处理输入并返回答案,该答案使用 Google 的 TTS API 呈现。 之前视频中演示的所有插件都可以在 Android 应用程序中使用,因为手机只是另一个 I/O,所有处理仍然由在 UDOO 板上运行的应用程序完成。 有关实施、安装说明和其他规格的更多详细信息,请查看我们的 Git 存储库。 感谢观看, 尤达团队 (在 “我的视频” 中查看)
View full article