Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
例MPC5777C-SDADC_simple GHS614 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 詳細説明: * 例はSigma_Delta ADCを構成し、定期的に入力ANA0_SDA0変換します *(EVBのポテンショメータは接続できます。J53-1 - >--> PO15)とディスプレイ * ターミナル ウィンドウ (USBtoUART ブリッジ J21) が表示されます。端末の設定は * 19200-8-パリティなし-1ストップビット-eSCI_Aのフロー制御なし。 * * ------------------------------------------------------------------------------ ※テストHW:MPC5777C-512DS Rev.A + MPC57xx マザーボード Rev.C * MCU:             PPC5777CMM03 2N45H CTZZS1521A * Fsys: PLL1 = core_clk = 264MHz, PLL0 = 192MHz * Debugger:        Lauterbach Trace32 * 対象:internal_FLASH *端末:19200-8-パリティなし-1ストップビット-eSCI_Aのフロー制御なし ※eSCI_AはUSBtoUARTブリッジ(コネクタJ21) ※EVB接続:ADC用:J53-1(EVBポット用ワイパー) - >--> PO15(ヘッダーP22) * ******************************************************************************** <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 詳細説明: * 例はSigma_Delta ADCを構成し、定期的に入力ANA0_SDA0変換します *(EVBのポテンショメータは接続できます。J53-1 - >--> PO15)とディスプレイ * ターミナル ウィンドウ (USBtoUART ブリッジ J21) が表示されます。端末の設定は * 19200-8-パリティなし-1ストップビット-eSCI_Aのフロー制御なし。 * * ------------------------------------------------------------------------------ ※テストHW:MPC5777C-512DS Rev.A + MPC57xx マザーボード Rev.C * MCU:             PPC5777CMM03 2N45H CTZZS1521A * Fsys: PLL1 = core_clk = 264MHz, PLL0 = 192MHz * Debugger:        Lauterbach Trace32 * 対象:internal_FLASH *端末:19200-8-パリティなし-1ストップビット-eSCI_Aのフロー制御なし ※eSCI_AはUSBtoUARTブリッジ(コネクタJ21) ※EVB接続:ADC用:J53-1(EVBポット用ワイパー) - >--> PO15(ヘッダーP22) * ******************************************************************************** 全般
查看全文
802.11AD 60 GHz Wi-Fi Gateway <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Demo 在这个演示中,我们展示了一个802.11AD 60GHz无线演示,它的吞吐量为3Gbps,并使用两个LS1046ARDB (ARM Cortex A72四核)网关和一个LS1012ARDB网关。 这些网关模拟基站之间的通信。 产品 产品 链接 QorIQ ® Layerscape 1012A低功耗通信处理器 Layerscape LS1012A 物联网通信处理器 | NXP QorIQ® LS1012A开发板 https://www.nxp.com/design/qoriq-developer-resources/qoriq-ls1012a-development-board:LS1012A-RDB?&fsrch=1&sr=2&pageNum=1 QorIQ ® Layerscape 1046A和1026A多核通信处理器 QorIQ ® Layerscape 1046A | 恩智浦 QorIQ® LS1046A开发板 QorIQ ® LS1046A开发板 | 恩智浦 培训 60 GHz Wi-Fi 新品 通信基础设施
查看全文
UART通信时钟 大家好,恩智浦社区, 我希望你一切安好。我目前正在使用 RD-HVBMSCTBUN 板,但在 UART 通信方面遇到了一些困难。由于我们从头开始开展新项目,我们一直在参考示例以获得指导,但到目前为止还没有取得太大的成功。 在发布了几个问题并在线搜索信息后,我们终于能够使用 UART 发送数据并在 Putty 上看到输出。但是,我们现在想将操作系统(FreeRTOS)纳入我们的项目。这就是我们遇到的问题。 提供的 UART 示例使用 48MHz 的时钟频率和 FIRC,但大多数 FreeRTOS 用例和其他资源建议使用 160MHz 的时钟频率和 PLL。因此,当我们将时钟改为 160MHz 时,我们开始收到奇怪的字符而不是预期的数据。 我不确定为什么 UART + FreeRTOS 不工作或者如何正确更改 UART 时钟以支持 160MHz。我自己尝试过,但不幸的是,它没有起作用(当然我们使用慢时钟,因为我们使用的是 LPUART1)。 如果社区中的任何人对可能出现的问题或该问题的可能解决方案有任何见解,我将非常感谢您的帮助。您的专业知识和指导对于我们解决这个问题并顺利继续我们的项目至关重要。 提前感谢大家的时间和帮助。 回复:UART通信时钟 我的解决方案是:切换到 PLL 时钟,在外设中启用它,并确保 PLL 已锁定。FreeRTOS 依赖 PLL 时钟正常运行。   回复:UART通信时钟 Hi, 如果不使用 FreeRTOS,在更新时钟选项后,演示示例是否能正常运行? 尝试测量 TXD 数据以查看实际设置的比特率。也许您可以尝试测量 CLKOUT0_RUN 引脚上的 AIPS_SLOW_CLK。 BR, Petr
查看全文
DDR:i.MX6Q Sabre SDB-P 板上的时钟速度减慢 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 附加的补丁会降低 i.MX6Q Sabre SDB-P 板上的 DDR 时钟速度(从 528000000Hz 降低到 396000000Hz)。这些在 Android JB4.2.2_1.0.0 和 Linux L3.0.35_4.1.0 上进行了测试。 为了验证补丁是否正确应用,在串行控制台上应该看到以下两条粗体行 主板:i.MX6Q-SABRESD:未知主板:0x63012 [POR] 启动设备:MMC I2C:就绪 内存:1 GB MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 *** 警告 - CRC 或 MMC 错误,使用默认环境 MX6Q PLL1:792MHz MX6Q PLL2:528MHz MX6Q PLL3:480MHz MX6Q PLL8:50MHz ipg时钟:49500000Hz ipg per clock : 49500000Hz UART时钟:80000000Hz cspi时钟:60000000Hz ahb时钟:99000000Hz 轴时钟:198000000Hz emi_slow时钟:99000000Hz DDR时钟:396000000Hz USDHHC1时钟:198000000Hz USDHHC2时钟:198000000Hz USDHC3时钟:198000000Hz USDHC4时钟:198000000Hz NFC时钟:24000000Hz 在:串行 输出:串行 Err:   serial 找到了 PFUZE100!设备 ID=10,revid=10 网络:从 IIM 获取 MAC 地址:00:04:9f:02:67:46 FEC0 [PRIME] 按任意键停止自动启动: 0 kernel   @ 10808000 (4709060) ramdisk  @ 11800000 (183100) kernel cmdline: 使用 boot.img 命令行: 控制台=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0androidboot.hardware=飞思卡尔 正在启动内核... 解压 Linux...完成,启动内核。 . . . sched_clock:32 位,3000kHz,分辨率 333ns,每 1431655ms 循环一次 将 periph_clk 的父级设置为 pll2_pfd_400! arm_max_freq=1.2GHz . . . 回复:DDR:i.MX6Q Sabre SDB-P 板上的时钟速度变慢 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好,先生, 有针对 3.10.x 的补丁代码吗内核? 回复:DDR:i.MX6Q Sabre SDB-P 板上的时钟速度变慢 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我正在使用 Linux 3.035 处理 SabreSD,我尝试使用这些补丁,但是一旦我构建 LTIB 它就会失败。我遗漏了什么吗?
查看全文
SSEC_1.001_15.08.2012.PEupd <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 上证所 描述 SPHY组件的安全驱动程序 组件 SSEC.PEupd Dependencies 等待 许可 许可证:开源(LGPL) 版权:(c)版权所有 Erich Styger,2012,保留所有权利。 这是一个使用 Processor Expert 实现驱动程序的开源软件。 这是一个免费软件,根据以下条款的许可政策开放用于教育、研究和商业开发: * 这是一个免费软件,没有任何担保。 * 没有使用限制。您可以自行承担责任,将其用于个人、非营利或商业产品。 * 重新分发源代码必须保留上述版权声明。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 上证所 描述 SPHY组件的安全驱动程序 组件 SSEC.PEupd Dependencies 等待 许可 许可证:开源(LGPL) 版权:(c)版权所有 Erich Styger,2012,保留所有权利。 这是一个使用 Processor Expert 实现驱动程序的开源软件。 这是一个免费软件,根据以下条款的许可政策开放用于教育、研究和商业开发: * 这是一个免费软件,没有任何担保。 * 没有使用限制。您可以自行承担责任,将其用于个人、非营利或商业产品。 * 重新分发源代码必须保留上述版权声明。 组件交换
查看全文
sbc fs6500 上图是故障安全状态机(FAIL SAFE STATE MACHINE)的一部分,其中的“POR_FS”是什么意思呢? Re: sbc fs6500 谢谢您的回复! Re: sbc fs6500 Hi, POR_FS 表示“故障安全状态机的上电复位”。是FS65的内部逻辑信号,在FS65内部产生。这是 FS65 插上电池上电后,Main 状态机和 Fail Safe 状态机状态转换的条件。 所以POR_FS不能通过Wake up来触发。“POR_FS”只是“唤醒”到“降压或降压升压配置检测电源”的条件。如果 POR_FS 为“1”,主状态机将从“唤醒”转为“降压或降压升压配置检测电源”,否则将停留在“唤醒”状态。 BR, Tomas
查看全文
Linux Kernel <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 构建Linux内核 构建Linux内核 使用 LTIB 进行构建 LTIB 外的建筑 下载并安装 GNU Toolchain 和 git 从 Freescale git 存储库构建内核 构建内核主线 关于Linux 使用 LTIB 进行构建 使用 Ltib 可以轻松构建 Linux 内核。在 Ltib 菜单上,只需选择: [*] 配置内核 当您退出此菜单时,Ltib 将显示如下所示的内核菜单配置: 这是内核菜单配置,可以在其中配置内核选项和驱动程序。 退出此菜单后,内核将被构建并存储在: /rootfs/boot LTIB 外的建筑 下载并安装 GNU Toolchain 和 git 安装 LTIB 时,GNU 工具链会自动安装在 /opt/freescale/usr/local/ 高于 2.6.34 的内核版本无法在工具链 4.1.2 上构建,仅适用于 4.4.1 或更高版本 在主机上的 /opt/freescale/usr/local/ 处检查当前安装的工具链。 下一步是在主机上安装 GIT。对于 Ubuntu 机器,使用: sudo apt-get 安装 git-core 从 Freescale git 存储库构建内核 Freescale 提供了对其自己的 git 内核存储库的访问权限,可以在以下位置查看: Freescale Public GIT 要下载内核源代码,请创建一个新文件夹并使用以下命令: git clone git://git.freescale.com/imx/linux-2.6-imx.git 或者 git clone http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git 几分钟后,将创建一个名为 linux-2.6-imx 的文件夹,其中包含 Linux 内核 从您想要使用的远程分支创建本地 git 分支。让我们使用分支 origin/imx_3.0.15 作为示例: cd linux-2.6-imx git checkout -b localbranch origin/imx_3.0.15 要检查所有可用的远程分支,请使用:git branch -r 导出交叉编译器、体系结构和工具链路径: 导出 ARCH=arm 导出 CROSS_COMPILE=arm-none-linux-gnueabi- 如果使用工具链 4.1.2: 导出路径=“$PATH:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/” 或者如果使用工具链 4.4.4: 导出路径=“$PATH:/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/” 复制所需平台的配置文件到 Linux 文件夹,例如: cp arch/arm/configs/imx6_defconfig .config 所有平台配置文件都位于 /arch/arm/configs/ 调用 menuconfig 并更改配置(如果需要) make menuconfig 现在可以构建了: make uImage zImage 和 uImage 将位于 /arch/arm/boot/ 文件夹。 构建内核主线 主线内核可以通过以下链接查看: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git 要下载内核源代码,请创建一个新文件夹并使用以下命令: git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 或者 git 克隆http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 或者 git 克隆https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 几分钟后,将创建一个名为 linux 的文件夹,其中包含 Linux 内核 从您想要使用的远程分支创建本地 git 分支。让我们使用分支 origin/linux-3.8.y 作为示例: cd linux git checkout -b localbranch origin/linux-3.8.y 要检查所有可用的远程分支,请使用:git branch -r 导出交叉编译器、体系结构和工具链路径: 导出 ARCH=arm 导出 CROSS_COMPILE=arm-none-linux-gnueabi- 如果使用工具链 4.4.4: 导出路径=“$PATH:/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/” 配置您想要构建内核的平台。对于 i.MX 系列,使用 imx_v6_v7_defconfig: make imx_v6_v7_defconfig 所有平台配置文件都位于 /arch/arm/configs/ 调用 menuconfig 并更改配置(仅在需要时,这是可选步骤!) make menuconfig 现在可以构建了: make -j4 uImage LOADADDR=0x70008000 - 如果 PC 有 4 个核心,请使用-j4选项来加快构建速度。这是可选的。 -重要提示:为每个处理器使用正确的地址。您可以在linux/arch/arm/mach-imx/Makefile.boot检查正确的地址值。 构建 uImage 后,构建 dtb 文件(设备树二进制文件)。对于 i.MX53 QSB 使用: make imx53-qsb.dtb uImage 将位于: linux/arch/arm/boot/ 文件夹和 dtb 二进制文件位于: linux/arch/arm/boot/ dts 关于Linux 有关 Linux 的常规信息,请参阅关于 Linux
查看全文
Timeout_1.019.PEupd <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> タイムアウト 形容 操作をタイムアウトできる汎用 timout ドライバー。 コンポーネント Timeout.PEupd Dependencies FreeRTOS ライセンス ライセンス : オープンソース (LGPL) 著作権:(c)著作権Erich Styger、2011、無断複写・転載を禁じます。 これは、Processor Expertを使用してタイムアウトルーチンを実装するオープンソースソフトウェアです。 これはフリーソフトウェアであり、次の条件のライセンスポリシーの下で教育、研究、および商用開発に開放されています。 *これはフリーソフトウェアであり、保証はありません。 ※使用制限はありません。あなたは、あなたの責任の下で、個人、非営利、または商用製品のためにそれを使用、変更、および再配布することができます。 ※ソースコードの再配布には、上記の著作権表示を保持する必要があります。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> タイムアウト 形容 操作をタイムアウトできる汎用 timout ドライバー。 コンポーネント Timeout.PEupd Dependencies FreeRTOS ライセンス ライセンス : オープンソース (LGPL) 著作権:(c)著作権Erich Styger、2011、無断複写・転載を禁じます。 これは、Processor Expertを使用してタイムアウトルーチンを実装するオープンソースソフトウェアです。 これはフリーソフトウェアであり、次の条件のライセンスポリシーの下で教育、研究、および商用開発に開放されています。 *これはフリーソフトウェアであり、保証はありません。 ※使用制限はありません。あなたは、あなたの責任の下で、個人、非営利、または商用製品のためにそれを使用、変更、および再配布することができます。 ※ソースコードの再配布には、上記の著作権表示を保持する必要があります。 コンポーネント交換
查看全文
RFパワー・ツール・システム <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> デモオーナーのダニエル・ヴィザ   顔立ち ディスクリート計装機器を1つのボックスに統合するツール、直感的なグラフィカルユーザーインターフェース(GUI) 回路がリアルタイムで動作している間に設定を表示および保存する機能 注目のNXP製品 RFパワー・ツール 設計・リソース RFパワーツールWebページ RFパワーツール情報ドキュメント ブロック図   通信インフラストラクチャ
查看全文
2014年チャレンジトピックス <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 以下のトピックは、フリースケールが提案したものです。それらのいずれかを選択することは必須ではありません、あなたはトピックのためのあなた自身のアイデアを持って来るのは自由です。 HMI - ヒューマン・マシン・インターフェース HMIは、ドライバーがさまざまな情報やエンターテイメントカーサービスを簡単に使用できるようにする車のシステムです。HMIは通常、車の中央、ドライバーと同乗者の間にあります。一般的なHMIは、ラジオやオーディオのサブシステム、ナビゲーション、電話接続へのアクセスを可能にするタッチスクリーンです。 このプロジェクトを選択するチームは、ユーザーが次のことができるグラフィカルなインタラクティブアプリケーションを設計する必要があります。 さまざまな外部デバイス(SDカードまたはスマートフォン)からメディアを再生する オーディオとビデオの設定を調整する Wandboardに接続されたスマートフォンから電話をかけたり受けたりします ナビゲーションシステムを使用する HMIの例を以下に示します。 http://www.youtube.com/watch?v=iZsviUeLmmg アウディの新しいHMIがCES2014に登場 - YouTube フリースケール・オートモーティブ・ビジョン フリースケール i.MX 6 オートモーティブ・テクノロジー オーディオポストプロセッシングフィルター オーディオポストプロセッシング とは、 多くの場合、 オーディオエフェクト または エフェクトユニット を介して、 聴覚 信号 または 音 を意図的に変更 することです 。 車の中でラジオや音楽を聴くとき、リスナーの周りの環境はリスニング体験の質を低下させる可能性があります。交通音や車輪の騒音、人々が話 している多くの騒音の原因となることがあります-音楽の柔らかい部分の一部が聞こえなくなるほどの騒音です。 オーディオポストプロセッシングは、さまざまなノイズ produced.by エフェクトを抑制することで、ユーザーエクスペリエンスを向上させるために使用できます。 このプロジェクトを選択するチームは、ノイズで録音されたサンプルオーディオストリームと、ポストプロセッシングアルゴリズムが適用された後の結果出力を表示する必要があります。 詳細については、以下のリンクを確認してください。 DSPベースのオーディオポストプロセッシングにより、オーディオ品質を向上 |EEタイムズ 音声信号処理 - Wikipedia リアルタイムの衝突検出 衝突回避システムは 、 事故の深刻さを軽減するために設計されたシステムです。 プリクラッシュシステム、 前方衝突警告システム 、衝突 軽減システムとも呼ばれ、 レーダー 、時には レーザー センサー、カメラセンサーを使用して差し迫った衝突を検出します。検出が完了すると、これらのシステムは、衝突が差し迫っているときにドライバーに警告を発するか、ドライバーの入力なしに自律的に行動します(ブレーキまたはステアリング、またはその両方によって)。 衝突回避、衝突検出、または接近する障害物の検出の最初のフェーズの1つ。一般的なアプリケーションは、Wandboardに接続されたカメラを介して受信した画像を処理し、近づいてくるオブジェクト(しきい値として一定の速度を持つ)を検出し、音を鳴らしたり画面に警告メッセージを表示したりして警告します。 詳細については、以下をご覧ください。 HowStuffWorks「プリコリジョンシステムとレーダー」 衝突検出 - Wikipedia セーフティクリティカルなLinux 生命にかかわるシステムまたはセーフティクリティカルなシステムとは、故障または誤動作が次の結果をもたらす可能性のあるシステムです。 人の死亡または重傷、または 機器の損失または重大な損傷、または 環境への害。 車載ソフトウェアは、セーフティクリティカルなシステムの一例です。現在、Linux SWがそのようなシステムの一部になれるかどうかについては多くの議論があり、これを証明することを目的としたオープンソースプロジェクトがあります。そのようなプロジェクトの一例が、OSADL Project: Safety Critical Linuxです。 このトピックを選択するチームは、Autmotive環境でLinuxアプリケーションの動作を制御するアプリケーションまたはツールを使用して、このプロジェクトに貢献する可能性があります 詳細については、以下のリンクをご覧ください。 https://www.osadl.org/Presentations-and-Documents.safety-critical-documents.0.html http://elinux.org/images/9/96/LinuxInSCEnvironment.pdf AFS - アダプティブ・フロントライト・システム 車両と歩行者の事故の約70%は夜間に発生しています。 AFSは、交通状況や気象条件に自動的に適応し、安全性と運転快適性を向上させます。 このプロジェクトを選択するチームは、カーブ、バンプ、その他の交通車両など、さまざまな状況でフロントライトを制御するためのプロトタイプを作成する必要があります。 詳細については、以下のリンクをご覧ください。 アダプティブ・フロントライト・システム(AFS) - YouTube BMWアダプティブヘッドライト - YouTube https://techinfo.honda.com/rjanisis/pubs/om/JA0606/JA0606O00139A.pdf Linux Embedded Challenge 2014 (英語)
查看全文
如何在 LS1043ARDB/LS1046ARDB 上使用 UART2 代替 UART1 如何在 LS1043ARDB/LS1046ARDB 上使用 UART2 代替 UART1。   1. 从 RCW 源文件编译 PBL 二进制文件 2. 编译 U-Boot 二进制文件 3. 编译 TF-A 二进制文件(bl2_.pbl 和 fip.bin) 4. 在特定启动模式下编写 TF-A 二进制文件     1-从 RCW 源文件编译 PBL 二进制文件   您必须创建一个新目录来编译您需要创建的二进制文件 TF-A二进制 您需要编译 rcw_ .bin二进制文件来构建 bl2_ .pbl binary.   克隆 rcw 存储库并编译 PBL 二进制文件。   1. $ git clone https://github.com/nxp-qoriq/rcw 2. $ cd rcw 3. $ cd ls1043ardb 4. $ make   在名为“RR_FQPP_1455”的目录中,您可以看到一些二进制文件 下一个命名法: rcw_ .bin 其中“freq”是处理器的频率(以 MHz 为单位),频率值 分别为 1200MHz、1400MHz、1500MHz 和 1600MHz   2-编译 U-BOOT 二进制文件 您需要编译 u-boot.bin 二进制文件来构建 fip.bin 二进制文件。 克隆 U-boot 存储库并为 TF-A 编译 U-Boot 二进制文件   1. $ git clone https://github.com/nxp-qoriq/u-boot 2. $ cd u-boot 3. $ git checkout -b LSDK-21.08 LSDK-21.08 4. $ export ARCH=arm64 5. $ export CROSS_COMPILE=aarch64-linux-gnu- 6. $ make distclean 7. $ nano configs/ls1043ardb_tfa_defconfig 7.1 change the bootargs "console=ttyS0,115200" for "console=ttyS1,115200" 7.2 add "CONFIG_CONS_INDEX=2 7. $ make ls1043ardb_tfa_defconfig 8. $ make   3 编译 TF-A 二进制文件(bl2_.pbl 和 fip.bin) 1. $ git clone https://github.com/nxp-qoriq/atf 2. $ cd atf 3. $ git checkout -b LSDK-21.08 LSDK-21.08 4. $ export ARCH=arm64 5. $ export CROSS_COMPILE=aarch64-linux-gnu- 6. $ nano plat/nxp/common/include/default/ch_3_2/soc_default_base_addr.h 6.1 Change the line "#define NXP_UART_ADDR 0x021C0000" for "#define NXP_UART_ADDR 0x021D0000" 6.2 Change the line "#define NXP_UART1_ADDR 0x021D0000" for "#define NXP_UART_ADDR 0x021C0000" 7. $ nano plat/nxp/common/include/default/ch_2/soc_default_base_addr.h 7.1 Change the line "#define NXP_UART_ADDR 0x021C0500" for "#define NXP_UART_ADDR 0x021C0600" 7.2 Change the line "#define NXP_UART1_ADDR 0x021C0600" for "#define NXP_UART_ADDR 0x021C0500"   编译后的 BL2 二进制文件 bl2.bin 和 bl2_ .pbl可在 atf/build/ls1043ardb/release/。 注意:对于 BL2 源代码或 RCW 二进制文件的任何更新,bl2_ 模式>.pbl二进制文件需要重新编译   3.1 如何编译 BL2 二进制文件 在没有OPTEE的情况下编译BL2二进制文件: make PLAT= bl2 BOOT_MODE= pbl RCW= / To LS1043ARDB for SD boot: make PLAT=ls1043ardb bl2 BOOT_MODE=sd pbl RCW= / To LS1043ARDB for NOR boot: make PLAT=ls1043ardb bl2 BOOT_MODE=nor pbl RCW= / To LS1043ARDB for NAND boot: make PLAT=ls1043ardb bl2 BOOT_MODE=nand pbl RCW= /   3.2 如何编译 FIP 二进制文件   要编译没有 OPTEE 和可信板启动的 FIP 二进制文件: $make PLAT= fip BL33= /u-boot.bin   对于LS1043ARDB: $make PLAT=ls1043ardb fip BL33= /u-boot.bin   已编译的 BL31 和 FIP 二进制文件( bl31.bin、fip.bin )可在 atf/build/ls1043ardb/release/。对于 BL31、BL32 或 BL33 二进制文件中的任何更新, fip.bin 二进制文件需要重新编译。   4 在特定启动模式下编写 TF-A 二进制文件 对于这一步,您可以使用 tftp 服务器,但使用格式化的 USB 会更容易 FAT32。   您必须将文件“bl2_ .pbl”并在 USB 中安装“fip.bin”并按照 启动模式的步骤。   4.1 在 IFC NOR 闪存上编写 TF-A 二进制文件 对于 LS1043A,在 IFC NOR 闪存上编程 TF-A 二进制文件的步骤如下:   1. Boot the board from the default bank. 2. Under U-boot prompt: => usb start 3. Flash bl2_nor.pbl: => fatload usb 0:1 $load_addr bl2_nor.pbl a. Alternate bank: => protect off 64000000 +$filesize && erase 64000000 +$filesize && cp.b $load_addr 64000000 $filesize b. Current bank: => protect off 60000000 +$filesize && erase 60000000 +$filesize && cp.b $load_addr 60000000 $filesize 4. Flash fip.bin: => fatload usb 0:1 $load_addr fip.bin a. Alternate bank: => protect off 64100000 +$filesize && erase 64100000 +$filesize && cp.b $load_addr 64100000 $filesize b. Current bank: => protect off 60100000 +$filesize && erase 60100000 +$filesize && cp.b $load_addr 60100000 $filesize 5. Reset your board: a. Alternate bank: cpld reset altbank b. Current bank: cpld reset   4.2 在 NAND 闪存上编写 TF-A 二进制文件   1. Boot the board from the default bank. 2. Under U-boot prompt: => usb start 3. Flash bl2_nand.pbl to NAND flash: => fatload usb 0:1 $load_addr bl2_nand.pbl => nand erase 0x0 $filesize;nand write $load_addr 0x0 $filesize; 4. Flash fip_uboot.bin to NAND flash: => fatload usb 0:1 $load_addr fip.bin => nand erase 0x100000 $filesize;nand write $load_addr 0x100000 $filesize; 5. Reset your board: => cpld reset nand   4.3 在 SD 卡上编写 TF-A 二进制文件   要在 SD 卡上编程 TF-A 二进制文件,请按照以下步骤操作:   1. Boot the board from the default bank. 2. Under U-boot prompt: => usb start 3. Flash bl2_sd.pbl to SD card: => fatload usb 0:1 $load_addr bl2_sd.pbl => mmc write $ load_addr 8 A1 4. Flash fip.bin to SD card: => fatload usb 0:1 $load_addr bl2_sd.pbl => mmc write $load_addr 800 A1 5. Reset your board: => cpld reset sd 现在控制台应该从主板的 UART2 端口输出。 QorIQ LS1设备
查看全文
S32G引脚排列 Hello, 我可能错过了一些东西,但不幸的是我找不到 S32G 引脚排列描述。 在数据表中,它提到“有关封装引脚排列和信号描述,请参阅设备参考手册。” 这是指“S32G3 参考手册”还是“GMAC/Serdes 子系统参考手册”? 但它们均不包含引脚排列描述。 我正在寻找所有符号名称/封装类型/I/O类型/功能编号/引脚描述之间的映射表。 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 我同意你的看法。 顺祝商祺! 陈银 回复:S32G引脚排列 你好,陈音, 结合QSG/UG/Sch的信息,平台板上s32g到SGMII端口的链接结论如下 S32G -> Y18 -> PCIE1_TXN1/SGMII_PFE_MAC1 -> 处理器板子卡 -> 平台板子卡 -> SERDES_1_TX0N (serdes S1 L0) -> eth AQR107,单端口,10Gbps PHY -> SGMII eth 端口 对吗? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 关于您的问题: Q1:“PCIe1 L1”是指PCIe1 Lane1,对吗? [CY] 是 Q2:“PFE_MAC1_SGMII”是指SGMII(PFE MAC1),对吗? [CY] 是 Q3:“SERDES S1 L0”表示serdes1 Lane0,对吗? [CY] 这里似乎有点混乱,因为只有 SERDES1_LANE1 可以配置为 SGMII_PFE_MAC1。 但从原理图上看,PCIe1_lane1(或者叫Serdes1_lane1)通过连接器连接到SGMII PHY,而连接器上对应的针脚叫做serdes1_xx0xx,这或许就是黄色箭头后写成“SERDES S1 L0(ENET AQR107)”的一个可能原因。 无论如何,在我看来,您可以参考 EVB UG 中的以下图表来了解 Serdes 的连接。 希望有帮助。 顺祝商祺! 陈银 回复:S32G引脚排列 你好, ChenYin, 抱歉,我不明白。 让我换一种方式来问这个问题。 in S32G-VNP-EVB-QSG.pdf p. 4 It shows "PCIe1 L1 / PFE_MAC1_SGMII -> SERDES S1 L0 (ENET AQR107)", so Q1:“PCIe1 L1”是指PCIe1 Lane1,对吗? Q2:“PFE_MAC1_SGMII”是指SGMII(PFE MAC1),对吗? Q3:“SERDES S1 L0”表示serdes1 Lane0,对吗? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 您所指的图片只是一个框图,对于实际连接,您可以参考EVB的原理图了解详情。 关于组合,所有组合均列在 RM 提到的表格中。没有其他组合。 顺祝商祺! 陈银 回复:S32G引脚排列 @chenyin_h ,感谢更新。 顺便说一句,图片显示“PCIe1 L1 / PFE_MAC1_SGMII -> SERDES S1 L0 (ENET AQR107) 假设 Q1:“PCIe1 L1”是指PCIe1 Lane1,对吗? Q2:“PFE_MAC1_SGMII”是指SGMII(PFE MAC1),对吗? Q3:“SERDES S1 L0”表示serdes1 Lane0,对吗? 如果答案全部正确,那么RM表405中的设置是什么。 SerDes_0工作模式和表406 SerDes_1工作模式? 我找不到 PCIe1 通道 1 + SGMII (PFE_MAC1) 的组合。 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈,对于延迟深感抱歉。 是的,正确,它们是Y18的功能,而且,serdes功能组合如下: 对于Serdes相关的详细功能,您还可以参考S32g2 RM的52.1.2。 顺祝商祺! 陈银 回复:S32G引脚排列 你好, ChenYin, 现在我明白发生了什么事。 图中显示的是 PFE_MAC1_SGMII,这意味着 SGMII_PFE_MAC1 而不是 PFE_MAC1_TXD_O。 因此 PCIE1_TX1_N 和 SGMII_PFE_MAC1 都是 Y18。 我说得对吗? 谢谢! 回复:S32G引脚排列 你好, ChenYin, 下图显示 PCIe1 L1 和 PFE_MAC1_SGMII 是互斥的吗? 如果是,那就意味着 PCIE1_TX1_N 和 PFE_MAC1_TXD_O[0] 是互斥的,对吗? 但是 PCIE1_TX1_N 是 Y18,PFE_MAC1_TXD_O 是 T23。 有什么问题吗? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 是的,您也可以从TAB:Misc with pin control中找到Y18的对应信息,这也是我们提到的文档的一部分(Row144)。来自我的) 顺祝商祺! 陈银 回复:S32G引脚排列 你好,陈音, 您说的是 773 行,对吗? Y18 怎么样?我在哪里可以找到它? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的反馈。 不确定您是否指的是函数 PFE_MAC0_TXD_O[0]?文档中似乎也有描述。 点击Tab:IO信号表,第771行,PJ_00/U19/PFE_MAC0_TXD_O[0],请问这是您要找的具体信息吗? 顺祝商祺! 陈银 回复:S32G引脚排列 你好,陈音, 谢谢你的信息。 它很有帮助但似乎还不完整。 例如,引脚 U19 的功能应该是 PFE_MAC0_TXD0。 但是我在哪个文档中可以找到这些信息? 谢谢! 回复:S32G引脚排列 Hello, @JasonTseng 感谢您的提问。 您可以打开您的S32G3 RM,然后单击附件,如下面的快照所示:(从Adobe Reader 2024.001捕获,使用不同工具时可能会有所不同) 然后您可能会发现附加了几个 xlsx 文件,S32G3_IOMUX 文件可能是您正在寻找的文件之一。 希望有帮助 顺祝商祺! 陈银
查看全文
JN-5189 WDT窗口看门狗使用详解 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 介绍如何在 JN5189 中使用窗口式寻呼机定时器的用户指南。文档介绍了如何在JN5189中使用WDT窗口看门狗。 智慧城市
查看全文
Video - Efika MX Smartbook Android Flash <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 投稿者 mgrunditz on 2010年10月22日 全般
查看全文
MIMXRT1180-EVKのボードデザインファイルの提供状況 Hello, MIMXRT1180-EVKの基板設計ファイルを共有することは可能ですか?ユーザーマニュアル(UM12021)には、残念ながら機能しないリンクがあります(資料「MIMXRT1180-EVK-DESIGNFILES」は存在しません)。もちろん、リンクを修正することも私を助けます。 ありがとうございました。 敬具 碧玉 Re:MIMXRT1180-EVKのボード設計ファイルの可用性 こんにちは、発売日が確定するまで、ドキュメントはまだページで利用できません。 営業担当者に連絡することをお勧めします。 よろしくお願いいたします パベル
查看全文
SMAC_1.001_15.08.2012.PEupd <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> SMAC 适用于 MC13213 和 MC13201 的 2.4 GHz 堆栈 描述 简单的MAC(飞思卡尔SMAC)实现。 组件 SMAC.PEupd Dependencies SPHY 许可 (c)版权所有飞思卡尔半导体,2012 采用处理器专家组件:Erich Styger <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> SMAC 适用于 MC13213 和 MC13201 的 2.4 GHz 堆栈 描述 简单的MAC(飞思卡尔SMAC)实现。 组件 SMAC.PEupd Dependencies SPHY 许可 (c)版权所有飞思卡尔半导体,2012 采用处理器专家组件:Erich Styger 组件交换
查看全文
LX2160A上の10Gtekトランシーバーを使用したSFP +操作 Hi,  「ethtool」コマンドを使用してVLANを設定しようとしていますが、以下に示すようにオフロードステータスに問題が発生しています。ここで、インターフェイスeth1は、背後に10Gbpsトランシーバーを備えたLX2160A SFP+ポートです。オフロードステータスが正しく機能していないだけでなく、「サポートされている情報」が適切に再ルーティングされていません。これをPHYのないシナリオと見なすべきかどうかは不明です。ただし、eth1 は下の 2 番目のブロックとして双方向に機能しています。ethtoolが不完全に動作すると予想されていますか? ethtool 情報: root@localhost:~# ethtool -K eth1 rxvlan on txvlan オン rx-vlan-offload を変更できません tx-vlan-offload を変更できません デバイスの機能を変更できませんでした root@localhost:~# ethtool eth1 eth1 の設定: サポートされているポート: [ ] サポートされているリンクモード:報告されていません サポートされているポーズフレームの使用:いいえ 自動ネゴシエーションをサポート:いいえ サポートされている FEC モード: 報告されていません アドバタイズされたリンク モード: 報告されません 宣伝されているポーズフレームの使用:いいえ アドバタイズされたオートネゴシエーション: いいえ アドバタイズされた FEC モード: 報告されません スピード:10000Mb / s デュプレックス:フル ポート:ツイストペア PHヤード:0 トランシーバー:内部 オートネゴシエーション:オフ MDI-X: 不明 検出されたリンク:はい root@localhost:~# ethtool -k eth1 eth1 の機能: rx-checksumming: オン tx-checksumming: オン tx-checksum-ipv4: オン tx-checksum-ip-generic:オフ[修正済み] tx-checksum-ipv6: オン tx-checksum-fcoe-crc:オフ[修正済み] tx-checksum-sctp:オフ[修正済み] scatter-gather: オン tx-scatter-gather:オン tx-scatter-gather-fraglist: オフ [修正済み] tcp-segmentation-offload: オフ tx-tcp-segmentation: オフ [修正済み] tx-tcp-ecn-segmentation: オフ [修正済み] tx-tcp-mangleid-segmentation: オフ [修正済み] tx-tcp6-segmentation: オフ [修正済み] generic-segmentation-offload: オン generic-receive-offload: オン large-receive-offload: オフ [固定] rx-vlan-offload: オフ [修正済み] tx-vlan-offload: オフ [修正済み] NTUPLE-filters: オフ [修正済み] receive-hashing: off [固定] HighDMA:オン rx-vlan-filter: オフ [修正済み] vlan-challenged:オフ[修正済み] tx-lockless:オン[修正済み] netns-local: オフ [修正済み] tx-gso-robust: オフ [固定] tx-fcoe-segmentation: オフ [固定] tx-gre-segmentation: オフ [修正済み] tx-gre-csum-segmentation: オフ [修正済み] tx-ipxip4-segmentation: オフ [固定] tx-ipxip6-segmentation: オフ [固定] TX-udp_tnl-セグメンテーション:オフ[固定] tx-udp_tnl-csum-segmentation: オフ [修正済み] tx-gso-partial: オフ [修正済み] tx-tunnel-remcsum-segmentation: オフ [修正済み] tx-sctp-segmentation: オフ [修正済み] TX-ESP-Segmentation: オフ [固定] tx-udp-segmentation: オフ [固定] tx-gso-list: オフ [修正済み] FCOE-MTU: オフ [修正済み] tx-nocache-copy: オフ ループバック:オフ[修正済み] RX-FCS:オフ[修正済み] RX-ALL:オフ[修正済み] tx-vlan-stag-hw-insert: オフ [修正済み] rx-vlan-stag-hw-parse: オフ [修正済み] rx-vlan-stag-filter: オフ [修正済み] L2-FWD-Offload: オフ [修正済み] hw-tc-offload: オン ESP-HW-Offload: オフ [修正済み] esp-tx-csum-hw-offload: オフ [修正済み] rx-udp_tunnel-port-offload: オフ [修正済み] tls-hw-tx-offload: オフ [修正済み] tls-hw-rx-offload: オフ [修正済み] RX-GRO-HW: OFF [修正済み] tls-hw-record: オフ [修正済み] rx-gro-list: オフ macsec-hw-offload: オフ [修正済み] ifconfig & ping: root@localhost:~# ifconfig eth1 eth1: flags=4163 MTU 1500 INETの192.168.1.11ネットマスク255.255.255.0放送192.168.1.255 inet6 fe80::ac9e:13ff:feda:4258 prefixlen 64 scopeid 0x20 ether ae:9e:13:da:42:58 txqueuelen 1000 (イーサネット) RXパケット 184バイト 25480 (25.4 KB) RX エラー 0、ドロップ、0、オーバーラン、0、フレーム 0 TX パケット 13 バイト 1006 (1.0 KB) TX エラー 0、ドロップ、0 オーバーラン、0 キャリア、0、コリジョン 0 root@localhost:~# Ping 192.168.1.228 ピン192.168.1.228(192.168.1.228)56(84) バイトのデータ。 192.168.1.228 からの 64 バイト:icmp_seq=1 ttl=64 時間=0.236さん Thanskとよろしく。 Re:LX2160A上の10Gtekトランシーバーを使用したSFP +操作 NETIF_F_HW_VLAN_CTAG_RX、drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c のnetdev_initにサポートされている機能として記載されている必要があります。 NXPの最新SDKリリースで提供されているDPAA2 Linuxカーネルドライバーを確認しましたが、この機能はサポートされていません。 そのため、LX2160Aプラットフォーム上でコマンド「ethtool -K eth1 rxvlan on」を実行することは不可能です。
查看全文
Android kk4.4.3_2.0.0-beta on 3.10 linux kernel on SABRASD DQ&DL board でブートロゴの数を 4 から 2 に変更する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> はじめに kk4.4.3_2.0.0-betaシステムには、最初は4つのブートロゴがあります:ubootロゴ\linuxロゴ\android initロゴ\androidアニメーション。ubootロゴを使用してLinuxロゴとandroidinitロゴをカバーし、最初の3つのロゴを1つのロゴに組み合わせる予定です。このガイドでは、オンボードsasbresd_6dq sabresd_6dlでubootUIをLinuxカーネルとandroidinitにスムーズに移行する方法を段階的に説明します。 パッチの核となるアイデア: ubootからカーネルまで表示クロックを維持する必要があります。 カーネルの起動時に、ubootロゴデータを保存するためのframbufferを壊しません。 Android Initロゴの表示を無効にする必要があります。 パッチはubootで何をしますか 1、ubootが終了した後、ビデオをシャットダウンすることはできません。パッチは関数arch_preboot_os()で削除されたコードを削除します 2、HSPクロック(IPUクロック)をLinux 3.10と同じに保ちます 以下は、sabrasd DQボードの設定です。 osc(24MHz) -> pll2(528MHz) -> mmdc_ch0(528MHz) -> ipu1_hsp_clk(264MHz) 以下は、sabrasd DLボードの設定です。 osc(24MHz) -> pll3(480MHz) -> pll3_pdf1(540MHz) -> ipu1_hsp_clk(270MHz) 3、ピクセルクロックをLinux3.10と同じに保ちます 以下は、sabrasd DQボードの設定です。 osc(24MHz) -> pll2(528MHz) -> pll2_pfd0(452.57MHz) -> ldb_di1(64.65MHz)-> ipu1_di1(64.65MHz)-> ipu1_pixel(64.65MHz) 以下は、sabrasd DLボードの設定です。 osc(24MHz) -> pll2(528MHz) -> pll2_pfd0(452.57MHz) -> ldb_di1(64.65MHz)-> ipu1_di1(64.65MHz)-> ipu1_pixel(64.65MHz) 4、PWMクロックを保持 カーネルでは、lvdsパネルを駆動するための100%デューティpwmがあります。したがって、パッチはパッドSD1_DATA3を100%デューティpwmピンに設定しました。 5、 fbbase と fbmem を bootargs に追加します FBBase は uboot ロゴの PHY Addr です。したがって、パッチは cmdline.we は linux 3.10 の予約アドレスに対して 1M にアライメントされたアドレスを割り当てる必要があります。 パッチはLinux3.10で何をしますか 1、FBBASEからのアドレスを予約します 2、システムがclk-imx6q.cでクロックを初期化するときにIPU関連のクロックを保持します パッチは、ldb_di1_clk、ipu1_di1_clk、ipu1_clk、pwm1_clkを有効にします。pll2 および pll3 関連のクロックをディスエーブルにしないでください。このクロックは、IPU クロックのソースである可能性があります。 レジスタでldb_di1_clk、ipu1_di1_clkなどを有効にしますが、clk_prepare_enable()という関数を使用する必要があります。システムはユーザー数が0であるため、一部のクロックを閉じる可能性があるため(clk_prepare_enable()を使用すると、それとその親ユーザー数は1を追加します) 3、内容に応じてパネルを点灯させるCABCを無効にします。 dtsファイルのcabc_enableを変更します。 4、フレームバッファが登録された後、プローブ内のグローバルアルファとカラーキーの設定を移動します。フレームバッファが使用するレジスタIPU割り込みを、IPU hspクロックがイネーブルになるまで遅延させます。グローバルアルファとカラーキーの設定とレジスタIPU割り込みにより、hspクロックが無効になる場合があります。 Android Init ロゴの表示を無効にする Android Init のロゴはテキスト「android_」です。前の3つのロゴが同じロゴに見えるように、表示するには無効にする必要があります。パッチ 92-system_coreはこの問題を解決します。 パッチの環境: ハードウェア: SABRASD DQ&DL ソフトウェア:kk4.4.3_2.0.0-beta(linux3.10) パッチの使用方法: $ cd my_android/kernel_imx/ $パッチ-p1 < ./92-kernel_v2 $ cd my_android/bootable/bootloader/uboot-imx/ $パッチ-p1 < ./92-uboot_v2 $ cd my_android/システム/コア $パッチ-p1 < 92-system_core 注記: 1、この機能をsabraSD dq&dlボードに使用したい場合は、このパッチでOKです。このパッチを使用した後、sxなどの他のボードに変更したい場合、カーネルのロゴペンギンが表示されないという問題に遭遇する可能性があります。 このファイルは次のように変更できます。 arch/arm/configs/imx_v7_android_defconfig                 CONFIG_LOGO=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y #CONFIG_MX6_CLK_FOR_BOOTUI_TRANS=y #CONFIG_MX6_CLK_FOR_BOOTUI_TRANS_LVDS_IPU1_DI1=y 日時:SABRASD DQ&DLボード上の3.10 linuxカーネル上のAndroid kk4.4.3_2.0.0-betaのブートロゴの数を4から2に変更する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> すみません これは機能しますか? このパッチを適用しました。 ubootで「ipuv3_fb_shutdown()」を削除した後 カーネルで起動できません。 何か見落としていませんか?
查看全文
QN908x FreeRTOS BLE 抽象化レイヤースタックを使用して、タスクとキューを作成します。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   はじめに このドキュメントでは、FreeRTOS の 2 つの機能、つまりタスクの作成と、アプリケーションの汎用機能をトリガーする方法としてのキューの使用に焦点を当てています。NXPのQN908x用SDK抽象化レイヤーは、FreeRTOSの使用と制御機能をより簡単にする方法をお客様に提供することを目的としています。 ハードウェア要件: QN9080DK ソフトウェア要件: MCUXpresso IDE v11.1.0またはそれより新しい QN908XCDK SDK with BLE stack and examples (SDK Builder からダウンロードできます) このドキュメントは、SDK のワイヤレス UART の例に基づいています。 必要な変数と定義の設定 QN9080 の SDK に含まれている wireless_uart の例の FreeRTOS バージョンをインポートします。 注: デバッグコンソールとして UART を選択してください。 2.QN9080 ボードのデフォルト ロールを変更するには、 PROJECT_FILE_NAME > ソース > wireless_uart.c > BleApp_Config() で mGapRole 変数の定義を gGapCentral_c から gGapPeripheral_c に変更する必要があります。 //wireless_uart.c //static void BleApp_Config(void) { /* By default, always start node as GAP central */ //mGapRole = gGapCentral_c; mGapRole = gGapPeripheral_c; (void)Serial_Print(gAppSerMgrIf, "\n\rWireless UART starting as GAP Peripheral, press the role switch to change it.\n\r", gAllowToBlock_d); mAdvState.advOn = TRUE; mScanningOn = FALSE; //...}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 3.フレームワークの osNumberOfMessageQs のマクロ値 osNumberOfMessageQs PROJECT_FILE_NAME >> OSAbstracion > Interface > fsl_os_abstraction_config.h を 0 >値に変更することが重要です。  //fsl_os_abstraction_config.h #ifndef osNumberOfMutexes #define osNumberOfMutexes 5 #endif #ifndef osNumberOfMessageQs #define osNumberOfMessageQs 1 #endif #ifndef osNumberOfMessages #define osNumberOfMessages 10 #endif‍‍‍‍‍‍‍‍‍ //...‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 次に、タスクの実装を開始するには、ファイルを編集する必要があります: PROJECT_FILE_NAME >フレームワーク > OSAbstracion > Source > fsl_os_abstraction_free_rtos.c.        まず、メインタスク関数のプロトタイプを作成し、次に「OSA_TASK_DEFINE」定義を使用してタスクを定義します。構文は次のとおりです。 この機能はスレッド管理の一部であり、ユーザーが新しいスレッドの作成を定義し、優先度とスタック要件を制御するのに役立ちます。関数定義では、次のパラメータが使用されます。 name: Sは、タスクとして使用される関数の名前である必要があります priority: スケジューラは、このパラメーターを使用して、関数にマイナーまたはメジャーの優先度を付与します。 instances: このパラメーターは、メモリを最適な方法で管理するために、インスタンスの数を制限する制御を提供します。 stackSz : このパラメーターにはデフォルト値があり、抽象化レイヤーによって次のように定義されます: gMainThreadStackSize_c 1024 バイト。 useFloat : このパラメータはスレッド定義構造の一部であり、ブール値であり、スレッドが浮動小数点を使用するかどうかを定義します。 //fsl_os_abstraction_free_rtos.c /*! ********************************************************************************* ************************************************************************************* * Private functions ************************************************************************************* ********************************************************************************** */ OSA_TASK_DEFINE(startup_task, gMainThreadPriority_c, 1, gMainThreadStackSize_c, 0) ; void vfnTaskPWM(void* param); //New Task Definition OSA_TASK_DEFINE(vfnTaskPWM, 1, 1, 500, FALSE ); osaTaskId_t gAppTestTask1Id = 0; // TestTask1 Id osaTaskId_t pwmTask_queue = 0; //get defines from wireless_uart int main (void) { /* Initialize MCU clock */ hardware_init(); OSA_TaskCreate(OSA_TASK(startup_task), NULL); //Task and Queue creation. gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL); //Task Creation pwmTask_queue = OSA_MsgQCreate(1); //Scheduler starting vTaskStartScheduler(); return 0; } //..‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 4. 関数: OSA_TaskCreate は、次のように osaTaskId_t 変数を作成するために必要な taskID を返します: osaTaskId_t gAppTestTask1Id = 0; また、使用する FreeRTOS キューの別の osaTaskId_t 変数も返します。 osaTaskId_t pwmTask_queue = 0.‍‍‍‍‍‍‍ 5. main関数内で、startup_taskが作成されるのと同じ方法でタスクを作成します。 gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL);‍‍‍‍‍‍‍ 6.また、同じタイプの変数を使用し、OSA_MsgQCreate() 関数を使用して新しいキューを作成するためにキューを作成する必要があります。 pwmTask_queue = OSA_MsgQCreate(1);‍‍‍‍‍‍‍ 7. このステートメントの後、スケジューラーは開始する必要があります: vTaskStartScheduler(); 8. wireless_uart.cでキュー用に extern 変数として作成された FILE pwmTask_queueを追加する必要があります。 //wireless_uart.c static uint8_t gAppSerMgrIf; static uint16_t mAppUartBufferSize = mAppUartBufferSize_c; static volatile bool_t mAppUartNewLine = FALSE; static volatile bool_t mAppDapaPending = FALSE; extern osaMsgQId_t pwmTask_queue; /************************************************************************************ ************************************************************************************* * Private functions prototypes ************************************************************************************* ************************************************************************************/ /* Gatt and Att callbacks */ static void BleApp_AdvertisingCallback(gapAdvertisingEvent_t *pAdvertisingEvent);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ アプリケーションコードでのタスクとキューの実装 この例では、 OSA_MsgQPut() を使用して、中央の周辺機器から受信したメッセージをキューに配置するように実装しました。 //wireles_uart.c static void BleApp_ReceivedUartStream(deviceId_t peerDeviceId, uint8_t *pStream, uint16_t streamLength) { static deviceId_t previousDeviceId = gInvalidDeviceId_c; char additionalInfoBuff[10] = { '\r', '\n', '[', '0', '0', '-', 'M', ']', ':', ' '}; uint8_t *pBuffer = NULL; uint32_t messageHeaderSize = 0; if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { streamLength += (uint32_t)sizeof(additionalInfoBuff); } /* Allocate buffer for asynchronous write */ pBuffer = MEM_BufferAlloc(streamLength); if (pBuffer != NULL) { /* if this is a message from a previous device, print device ID */ if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { messageHeaderSize = sizeof(additionalInfoBuff); if (mAppUartNewLine) { mAppUartNewLine = FALSE; } additionalInfoBuff[3] = '0' + (peerDeviceId / 10U); additionalInfoBuff[4] = '0' + (peerDeviceId % 10U); if (gGapCentral_c != maPeerInformation[peerDeviceId].gapRole) { additionalInfoBuff[6] = 'S'; } FLib_MemCpy(pBuffer, additionalInfoBuff, sizeof(additionalInfoBuff)); } FLib_MemCpy(pBuffer + messageHeaderSize, pStream, (uint32_t)streamLength - messageHeaderSize); /**** Adding a message into a Queue ****/ OSA_MsgQPut(pwmTask_queue, (void*)&pBuffer); /**************************************/ (void)Serial_AsyncWrite(gAppSerMgrIf, pBuffer, streamLength, Uart_TxCallBack, pBuffer); } /* update the previous device ID */ previousDeviceId = peerDeviceId; }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ この関数は、プロジェクトの main() 関数の前に作成された外部キュー変数を指します。また、 BleApp_ReceivedUartStream()で受信したメッセージのバッファポインタを指し、これらのパラメータはOSA_MsgQGet() 関数を使用してアクセスできます。 osaStatus_t OSA_MsgQGet(osaMsgQId_t msgQId, void *pMessage, uint32_t millisec)‍‍ この関数は、メッセージキューの先頭からメッセージを取得し、この関数のパラメータは次のとおりです。 msgQId : キュー関数の識別子です。 pMessage : OSA_MsgQPut() から送信された同じメッセージへのポインタです。 millisec : メッセージを待つミリ秒数です。 作成されたタスクの内部: vfnTaskPWM() には、メッセージがキューにあるかどうかを確認する無限の while ループがあり、これは os_abstraction 関数を使用して実現されます。 タスクの実装の残りの部分は、別の C ファイルにあります。外部キュー変数は、タスク関数プロトタイプに加えて、このファイルで定義されています。 /*pwmApplication.c*/ /*Global Variables*/ static uint8_t gAppSerMgrIf; extern osaMsgQId_t pwmTask_queue; /*Function Prototypes*/ void signalConfigValues(int red, int green, int blue); void getValuesRGB(uint8_t* msgString); int getInt(char *stringInteger, int size); /****Task Definition****/ void vfnTaskPWM(void* param); /* * Task to configure the PWM pins and start the timer * */ void vfnTaskPWM(void* param) { uint8_t* msgString; char msgString1[20] = { '\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0'}; while(1) { /* * If there is a new message on queue the value will return a 0 according to the OSA_MsgQGet function * to compare the incoming message * */ while((OSA_MsgQGet(pwmTask_queue,(void*)&msgString,10)) == 0){ //shift-up the pointer value to get the payload message if(*msgString == '\r'){ while(*msgString != 32){ msgString++; } msgString++; } FLib_MemCpy(msgString1,msgString,20); if(FLib_MemCmp(msgString1, "OFF", 4)){ (void)Serial_Print(gAppSerMgrIf,"\n\r OFF: ", gAllowToBlock_d); //configure the PWM new function signalConfigValues(0,0,0) and StartTimers(CTMRA,CTMRB) signalConfigValues(0,0,0); } else{ //a function to convert values from a string to integers getValuesRGB(msgString); } } } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
查看全文
8 位微控制器的 USB CDC 项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好,   我想为飞思卡尔社区贡献一个简单的项目,在这个项目中我通过虚拟 COM(CDC)开发了定制的 USB 通信。 该项目基于 8 位微控制器 - 特别是 MC9S08JS 系列 - 在 CodeWarrior Development Studio 10.3 上运行。 我附加了一个包含两个内部文件的 zip 文件。其中一个是完整的CodeWarrior项目,另一个是USB CDC驱动程序。 文件运行正常,显然它们是完全安全的。用户只需添加自己的例程即可通过端点功能发送和接收数据。   我真的希望它可以帮助某人以更简单、更快捷的方式构建 USB CDC 项目。   顺祝商祺! Mauricio. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好,   我想为飞思卡尔社区贡献一个简单的项目,在这个项目中我通过虚拟 COM(CDC)开发了定制的 USB 通信。 该项目基于 8 位微控制器 - 特别是 MC9S08JS 系列 - 在 CodeWarrior Development Studio 10.3 上运行。 我附加了一个包含两个内部文件的 zip 文件。其中一个是完整的CodeWarrior项目,另一个是USB CDC驱动程序。 文件运行正常,显然它们是完全安全的。用户只需添加自己的例程即可通过端点功能发送和接收数据。   我真的希望它可以帮助某人以更简单、更快捷的方式构建 USB CDC 项目。   顺祝商祺! Mauricio. 概述 回复:8 位微控制器的 USB CDC 项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Mauricio, 很高兴您发布了MC9S08JS 的 USB CDC 项目。 我在MC9S08JS16 上成功运行了它,并且能够接收数据。但是,在将数据发送回主机时遇到了一些问题。基本上,它只能正常工作一次,而接收数据仍然正常。 我做错了什么? 这是我的代码的一部分: ...主循环: 为了(;;) {      Check_USBBus_Status(); 如果(CheckEndPointOUT(EP2)) { 端点输出(EP2); 如果(EP2_Buffer[0] == 'X')           { Led_PutVal(ledRed); EP3_Buffer[0] = 'A'; 端点_IN(EP3,1);           }           else Led_PutVal(ledOff);      } } 我确信我可以正确接收字节,因为我可以通过发送“X”字母来打开 LED,并通过发送其他内容来关闭它。 第一次发送“X”后,它会正确地响应“A”,但那是唯一的一个。然后可以打开/关闭 LED,但不再向主机发送回数据。 你能幫我嗎? 提前谢谢! 顺祝商祺! Michal
查看全文