Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
Rapid IoT Kit Out Of Box デモ (デプロイ済み) firmware.bin <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello, Out of the Boxアプリケーションの更新版が添付されています。 このバージョンは「公開」であり、キットに偽りを入れると誰でも接続できることを意味します。 以前のバージョンとの主な変更点: - バグ修正:BLE / THREAD / BLEを前後に切り替えると、BLE接続が確立されるとキットが再起動していました - デフォルトのディスプレイの明るさが減少し、バッテリー寿命が15%長くなりました - CCS811センサーの更新が1秒に1回から10秒に1回に減少し、バッテリー寿命がさらに10〜15%短縮されました。 - UARTover USBが有効になり、キットをPCに接続した状態で端末を使用して追跡/デバッグが可能 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello, Out of the Boxアプリケーションの更新版が添付されています。 このバージョンは「公開」であり、キットに偽りを入れると誰でも接続できることを意味します。 以前のバージョンとの主な変更点: - バグ修正:BLE / THREAD / BLEを前後に切り替えると、BLE接続が確立されるとキットが再起動していました - デフォルトのディスプレイの明るさが減少し、バッテリー寿命が15%長くなりました - CCS811センサーの更新が1秒に1回から10秒に1回に減少し、バッテリー寿命がさらに10〜15%短縮されました。 - UARTover USBが有効になり、キットをPCに接続した状態で端末を使用して追跡/デバッグが可能 迅速なIoT Re: Rapid IoT Kit Out Of Box デモ (デプロイ済み) firmware.bin <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, SLN-RPK-NODEモジュールを購入しました。私はこのバージョンのファームウェアでそれをロードします:Rapid IoT Kit Out Of Box Demo(Deployed)firmware.bin。Atmosphere IoTアプリケーションを使用して携帯電話Samsung Galaxy A51からBluetoothで接続しようとしましたが、Pairing successful!というメッセージが表示されても成功しませんでした。モバイルアプリケーションはBluetoothデバイスを見つけられません。 私もノートパソコンからPuttyに接続してみました。モジュールから受信したメッセージを次に示します。 . ありがとうございました。 クリスティアン。 Re: Rapid IoT Kit Out Of Box デモ (デプロイ済み) firmware.bin <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> エリック これは私が唯一の作品です、エクスポートされた(atmo)ファイルを送ってもらえますか?おそらく、これが唯一の機能である理由を見つけることができ、すべての迅速なIoTスタジオの例はプロビジョニングにぶら下がったままです。 よろしくお願いいたします。 Hans Volbeda Re: Rapid IoT Kit Out Of Box デモ (デプロイ済み) firmware.bin <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ユーザーガイドのp108を参照してください。 https://www.nxp.com/webapp/Download?colCode=SLN-RPK-NODE-UG  MSDモードにしたら、PCからドラッグアンドドロップするだけです。 Re: Rapid IoT Kit Out Of Box デモ (デプロイ済み) firmware.bin <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> おかげで、Rapid-IoTデバイスをどのように再フラッシュしますか? ラルフ Re: Rapid IoT Kit Out Of Box デモ (デプロイ済み) firmware.bin <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> NXP Semiconductors Rapid IoT Prototyping Kit(SLN-RPK-NODE)は、開発者 のmykfcexperience モノのインターネット(IoT)のアイデアから概念実証(PoC)までを数分で実現できるように設計されています。
查看全文
智能感应吸入器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 描述 特性 结构框图 产品 产品 描述 人口老龄化趋势和突破性的技术发展,为自动化医疗设备创造了无限商机。 这些设备通过在糖尿病护理、心脏护理、治疗依从性和一般健康和保健应用方面取得进展,帮助确保数百万人的未来健康。无论最终用途如何,医疗保健/医疗设备的开发人员都面临着类似的挑战——需要平衡处理要求和功耗、支持确保快速上市、需要安全的无线连接和产品寿命,这些都是医疗保健设计师的关键。 标准吸入器的效率不够高,因此需要开发新一代智能吸入器。 NXP 是领先的大容量传感器供应商,拥有用于医疗应用的多种加速度计、磁力计、压力传感器和触摸传感器。我们结合优质材料、先进的微加工技术、薄膜金属化和双极半导体处理,以具有竞争力的价格提供准确、高度可靠的产品,从而实现最佳的患者护理和可负担性。 特性 通过BLE与智能移动设备通信 智能吸入器配有传感器,可监测治疗依从性 云服务器与手机通信,例如,如果未服药,则提供提醒 智能吸入器需要验证气筒是否为正品 智能手机上的应用程序需要验证智能吸入器的真实性 无线连接 安全集成 气筒品牌保护 结构框图 产品 类别名称1: 蓝牙 产品网址 1 QN908x:超低功耗蓝牙低功耗片上系统 (SoC) 解决方案 | NXP 产品描述 1 QN908x 是一款超低功耗、高性能、高度集成的蓝牙低功耗解决方案,适用于运动和健身、人机界面设备和支持应用程序的智能配件等蓝牙®智能应用。它是专为具有小容量电池的可穿戴电子设备而设计的。 类别名称2: 电源管理 产品网址 1 MC34671 | 单节电池充电器 | 恩智浦 产品描述 1 MC34671 是一款经济高效的全集成电池充电器,适用于锂离子或锂聚合物电池。它可承受高达 28 V 的输入电压,从而无需手持设备所需的输入过压保护电路。 产品网址 2 逻辑控制高侧电源开关 | NXP 产品描述 2 由于接地电流和关态电流较低,NX3P2902B是便携式电池供电应用的理想选择。 类别名称 3: 传感器 产品网址 1 ±8g,低重力加速度,数字加速度计 | NXP 产品描述 1 MMA8491Q 3 轴加速度计是一款超低功耗倾斜传感器。 类别名称 4: NFC 产品网址 1 NTAG 424 DNA | 424 DNA TagTamper – 为可信物联网应用提供高级安全性和隐私性 | NXP 产品描述 1 NTAG 424 DNA的架构旨在提供AES-128加密操作,每次通过支持NFC的移动设备读取时提供新的SUN认证机制,以及为有加密安全访问权限的敏感数据提供保护。 产品网址 2  PN5180 | 完全符合 NFC 论坛标准的前端 IC | NXP 产品描述 2 恩智浦PN5180 NFC前端,配有独特功能,可提高性能、节省电源、最大程度提高效率、支持符合EMVCo和NFC Forum规格的最佳读卡器,实现尽可能广泛的互通互联。 类别名称5: 安全 产品网址 1 A71CH | 物联网即插即用 | 恩智浦 产品描述 1 A71CH是易于使用的安全元件,适用于物联网设备,在IC层提供信任根,开箱即提供芯片到云端安全保护,让您能够安全地连接到IoT云和服务,包括AWS、IBM Watson IoT™平台和Google Cloud™物联网内核,无需编写安全代码或暴露密钥。 产品网址 2  EdgeLock ™ SE050:Plug & Trust 安全元件系列 – 增强的物联网安全性和最大的灵活性 | NXP 产品描述 2 借助 EdgeLock SE050,物联网设备从一开始就融入了安全性,而不是事后才添加或考虑。作为信任根预先注入的凭证存储在硬件中,并与外部软件访问完全隔离。 产品 产品 链接 QN9080DK:高度可扩展的QN908x应用开发平台 QN9080DK:用于 QN908x 应用开发的高度可扩展平台 | NXP KIT34671EPEVBE: 评估套件 - 34671,单节锂离子/锂聚合物充电器 评估套件 - 34671,单节锂离子/锂聚合物充电器 | NXP OM25180FDK: 面向 POS 终端应用的 PN5180 NFC 前端开发套件 OM25180 |用于POS读卡器的PN5180 NFC开发套件| NXP 框图 工业控制
查看全文
LS1021A 物联网网关参考设计 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> LS1021A 物联网网关参考设计 包含在套件中 Linux BSP和OpenWRT 参考设计(提供原理图、布局和BOM) 硬件快速入门指南和用户指南 如果您符合以下情况,您可能对该产品感兴趣: 需要一个随时可用的高性能物联网网关参考平台 需要内置 WiFi 和 Arduino 连接 想要一个可立即制造的硬件设计 主要硬件特点: 1 Gb QSPI NOR闪存 1 GB DDR3L SDHC 插槽 — 最大支持 32 GB,已安装 4 GB 1x 1 Gb/s以太网(SGMII) 1x 1 Gb/s以太网(RGMII) 2x mini PCIe (x1) slots 1x mSATA插槽 1x 终端(USB转UART) x 四线 LP-UART 至 Arduino 连接器(Thread、ZigBee、蓝牙等) • 多路复用 LCD/QE 接口 24 位 LVDS LCD 接口 QE UART 至 PROFIBUS 或 RS485 接头(需要外部收发器) • USB 3.0 2x 端口 - USB-A 2x 端口至 mini PCIe 插槽 • 13x GPIO 或 8x FTM (PWM) • 6x 中断 • 1 个 SPI • I 2 C1 总线板 EEPROM 启动 EEPROM Arduino 连接器传感器/PHY 等,待定 • I 2 C2 GPIO 扩展 ADC 传感器/PHY 等,待定 认证:FCC B类和CE 本产品的全部内容 产品图 点击此处购买 LS1021A 物联网网关参考设计 物联网物理组件 网关 SOC: QorIQ LS1021A 主板/模块: QorIQ LS1021A IoT网关参考设计 FRDM-KW24D512 软件: Linux BSP OpenWRT 通信基础设施
查看全文
适用于 ARM 2018.R1 的 S32 Design Studio - 更新 2 现已发布 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />       产品发布公告 汽车微控制器和处理器 ARM ® 2018.R1 版 S32 设计工作室  Update 2          新增内容 此更新添加了对 S32K118 裸板设备的支持 ,并进行了一些小修复。这是一个累积更新,包含之前 更新 1 的所有内容 。 安装说明 此更新适用于 在线的 (通过 Eclipse Updater)或 离线安装(直接下载链接) 在线的 安装: 进入菜单“帮助”->“安装新软件...”对话框  select predefined update site "S32DesignStudio - http://www.nxp.com/lgfiles/updates/Eclipse/S32DS_ARM_2018.R1/updatesite" 选择所有可用项目并单击“下一步”按钮   离线安装: 转到 S32 Design Studio for ARM 产品页面 -> 下载部分或使用 直接链接下载更新存档 zip 文件 启动 S32DS 并转到“帮助”->“安装新软件...” 添加一个新的 “Archive” 仓库,然后浏览并选择您在之前步骤中下载的更新归档.zip 文件。 选择所有可用项目并单击“下一步”按钮。   这将启动更新安装过程。 概述
查看全文
16位SAR ADC校准 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 1. 校准的工作原理 有三个主要子块对于理解 Kinetis SAR 模块的工作原理非常重要。有一个电容式 DAC、一个比较器和控制模块的 SAR 引擎。在这些区块中, DAC 最容易受到可能导致 SAR 线性问题的变化的影响。 DAC 采用三组二进制加权电容器按组排列而成,如图 1 所示。代表 SAR 最高有效位 (B15:B11) 的电容器直接连接到比较器的输入。下一组五个电容器(B10:B6)通过故意加大尺寸的缩放电容器连接到 MSB 阵列的顶板。构成 SAR 最低有效位 (B5:B0) 的最后六个电容器通过另一个缩放电容器相应地连接到中间电容器组的顶板。 图 1.DAC电容的排列 仅校准 MSB 电容器组。由于第一个缩放电容器故意尺寸过大,每个未校准的 MSB 电容器的有效电容都会太小,无法产生准确的结果。然而,因为它们总是太小,我们可以测量每个电容器单独引起的误差量,并将其添加到结果中。 校准从最小的 LSB 电容器 B11 开始。SAR 对所有低于或等于被测电容器 (CUT) 的电容器上的 Vrefl 进行采样,同时将所有较小的电容器连接到 Vrefh。当发生这种情况时,所有 MSB 电容器的顶板都保持在 VDDA。采样阶段完成后,MSB 电容器的顶板可以浮动,而未经测试的 MSB 的底板则连接到 Vrefl。这使得电荷从 CUT 重新分配到较小的电容器。最后,执行 11 位 SAR 算法(对应于小于 MSB 阵列的 11 个电容器),该算法产生的结果指示 CUT 与理想尺寸电容器相比的误差量。对正侧和负侧 DAC 上的五个 MSB 中的每一个重复此过程,并且报告的五个错误值相应地与五个 MSB 相对应。所有这些误差值的幅度都大致相同,单位为 16 位 LSB。参见图 2 的示例。 图 2. 第 11 位校准示例 DAC MSB 误差是累积的。也就是说,如果设置了 DAC 的第 11 位,那么错误就是该位的错误。然而,如果设置了 DAC 的第 12 位,则总误差等于第 12 位报告的误差加上第 11 位报告的误差。对于每个 MSB,误差按如下方式计算,其中 Ex 是在校准其相应 MSB 位时发现的误差: 当 DAC 的第 11 位被设置时:CLx0 = E0。 当 DAC 的第 12 位被设置时:CLx1 = E0+E1。 当 DAC 的第 13 位被设置时:CLx2 = E2 + E1 + 2E0。 当 DAC 的第 14 位被设置时:CLx3 = E3 + E2 + 2E1 + 4E0。 当 DAC 的第 15 位设置时:CLx4 = E4 + 2E3 + 4E2 + 8E1 + 16E0 图3. 校准误差对ADC响应的影响 这些值随后会被放入每个 CLxx 校准结果寄存器中。图 3 显示了如果所有 CLxx 寄存器均设置为零,误差将如何累积。失调和增益寄存器也是基于这些值计算的。因此,增益和失调寄存器仅校准 SAR 本身内部的误差。自校准无法补偿电路板或系统级增益或失调问题。 2. 推荐的校准程序 从以上描述可以看出,校准过程实际上是多次连续的模数转换。这些转换容易受到所有 ADC 转换中相同误差源的影响。由于主要测量的是 MSB 电容大小的误差,因此建议以适当的方式配置 SAR,以便在校准 SAR 的环境中实现尽可能精确的转换。 噪声是造成此过程中批次间差异的主要原因,因此应采取措施降低校准过程中噪声的影响。例如: 所有数字 IO 应保持静默,并且应禁用不必要的模块。 Vrefh 应尽可能稳定且电压较高,因为 Vrefh 越高意味着 ADC 代码宽度越大。隔离的 Vrefh 引脚是理想的。缺少这一点,使用隔离的 VDDA 作为参考比使用 VREFO 更好。 使用的时钟应尽可能无噪声,并且小于或等于 6 MHz。为此,校准所需的时钟源顺序应为 OSC > PLL > FLL > ASYNC 硬件平均应设置为最大 32 个样本。 低功耗转换位应设置为 0。 校准应在室温下进行。 高速转换和采样时间加法器在大多数情况下不会产生太大影响,并且校准程序完全忽略了 Diff 和 Mode 位。 应针对上述条件下芯片上的每个 SAR 实例获取校准值。它们应该存储在非易失性存储器中,然后在 ADC 寄存器值被清除时写入适当的寄存器中。 在某些情况下,存在的系统噪声仍然会导致校准程序表现出大于期望的运行间变化。一个经验法则是重复校准几次并查看 CLx0 寄存器。如果该寄存器中报告的值相差超过三,则可以实施以下程序。运行校准程序几次。二十到四十次。将每个校准寄存器的值放入相应的数组中。对每个数组执行冒泡排序并找到每个校准寄存器的中值。按照典型校准结果的描述使用这些中值。 Kinetis E系列MCU Kinetis EA系列MCU Kinetis K系列MCU Kinetis L系列MCU Kinetis V系列MCU/单片机 Kinetis W系列MCU
查看全文
MPC5777C CSE CSE_ECR=0X02 命令序列错误 大家好, 客户目前正在做CSE密钥加载&擦除(用for循环,先加载密钥再擦除密钥约10000次)测试实验。 但是经过10000次测试后,再次打开MCU电源,密钥无法再加载或擦除,并且CSE_ECR = 0x02报告命令序列错误,并且其他CSE命令发送到CSE时也会出现此错误。CANCEL 是 CSE 唯一会接受且不会出现 0x02 错误的命令。此问题与此工单相同,但没有正确答案: https://community.nxp.com/t5/MPC5xxx/MPC5777C-CSE-Problem/mp/589107#M4239 所以问题是如何处理这个问题,因为在这种情况下密钥不能再被加载或擦除,并且 CSE 命令也不能被 CSE 核心接受。 我比较了正常芯片(在 EVB 上用新芯片替换)和问题芯片,发现 SR_BFN 位和 CSE_ECR 位不同,SR_BFN 位表示安全启动完成,但我没有在问题芯片上启用安全启动。 错误一: 正常一个: 回复:MPC5777C CSE CSE_ECR=0X02 命令序列错误 Hi Lukas, 听起来很有道理,如果这一点应该注意Key擦除,那么应该在文档中弄清楚,因为在我们正常的调试过程中,在调用DEBUG_CHAL + DEBUG_AUTH时,我们可能会意外重启或再次打开电路板。 回复:MPC5777C CSE CSE_ECR=0X02 命令序列错误 Hi Lukas, 有没有任何文档提到这一点? 回复:MPC5777C CSE CSE_ECR=0X02 命令序列错误 Hi @Zhongling_Lang  最有可能的是,这是由于意外重置或 MCU 电源循环之前的超时时间太短造成的(在闪存上执行的擦除周期越多,擦除闪存所需的时间就越长)。 如果由 DEBUG_CHAL+DEBUG_AUTH 命令触发的擦除操作因意外重置而终止,则会导致 CSE 无法使用并且无法恢复。 无论如何,这不是实际应用中预期的用例。DEBUG_CHAL+DEBUG_AUTH 应该只在开发期间使用,而不是在现场使用。 此致, Lukas
查看全文
SDK 未显示 安装了S32DS V4, 按照手册安装必要的软件, 在项目创建期间无法看到 SDK 按照以下文档中的步骤操作  #nxp S32G2  回复:SDK 未显示 Hi, 看起来这个问题与下面显示的社区帖子相同: S32G3 开发板,无法找到 SD 卡中没有的 FSL 镜像 - NXP Community 上述社区主题已提供信息。 请告知我们。 回复:SDK 未显示 HI @Daniel-Aguirre , 我面临两个问题。 我将 Micor USB 电缆连接到 PC 和 J4 连接器。未检测到 USB。 2)构建不完整 回复:SDK 未显示 Hi, 感谢您的反馈。 您能帮助我们分享您安装了哪个 RTD 包吗?您能看到您的设置下的可用示例吗?您在上一个窗口中选择了哪个 GCC 版本? 请告知我们。 回复:SDK 未显示 你好@Daniel-Aguirre 我尝试过同样的事情,但没有成功。如果您需要任何其他详细信息,请告诉我。 回复:SDK 未显示 Hi, 您能帮助我们分享您安装了哪个 RTD 包吗?您能看到您的设置下的可用示例吗?您在上一个窗口中选择了哪个 GCC 版本?针对这一问题,我们还可以推荐以下 HOWTO: 如何:使用 S32 RTD(无 AUTOSAR)为 S32G 创建闪烁 LED 应用项目 - NXP 社区 请告知我们。
查看全文
如何解释 MC33665 TPL2 消息 我正在学习 MC33665 数据表。5.2.3 TPL2协议,消息长度为48bit,但是第二个16bit数据大于16bit,我该如何理解 我的意思是 MS =1bit,RADD=7bit,MADD=1bit,CADD=3bit,DADD=6bit,总共 18bit,大于 16bit? 回复:如何解释 MC33665 TPL2 消息 Hi, AN13281 被归类为需要保密协议 (NDA) 的安全文件。 您可以直接从以下位置下载: https://www.nxp.com/webapp/sd/collateral/1644500428545720962128?version=0.1 或来自: https://www.nxp.com/mynxp/secure-files 如果您的安全访问权限有任何问题,请联系支持人员。 BRs, Tomas 回复:如何解释 MC33665 TPL2 消息 我在哪里可以获得 AN13281。我的安全访问出错了。我拿到 MC33665A 数据表后它就不能用了 回复:如何解释 MC33665 TPL2 消息 Hi, 请查看我们的 AN13281 - 它详细描述了 TPL2 消息帧并提供了其他有用的信息。 BRs, Tomas
查看全文
关于Android和Linux千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 千兆以太网应该是我们imx6平台最漂亮的功能之一,它将给众多客户带来更加丰富多彩的梦想。 但最近很多人反映使用Android和Linux在性能上存在很大的差距。现在让我在此进行探索。 同样的硬件,同样的内核,性能却不同,为什么? 在linux下,其数据吞吐量可以达到400Mbps,在JB下,只能达到200Mbps。 从下面的信息我们可以看出它应该与丢帧有关。 root@android:/# busybox ifconfig eth0 eth0 链路封装:以太网 HWaddr 00:04:9F:02:6C:E1 inet地址:192.168.0.100广播:192.168.0.255掩码:255.255.255.0 inet6 地址:fe80::204:9fff:fe02:6ce1/64 范围:链接 上行广播运行多播 MTU:1500 度量:1 RX 数据包:7382672错误:71828 丢弃:789 超限:71828 帧:71828 TX 数据包:4147006 错误:0 丢弃:0 超限:0 载波:0                collisions:0 txqueuelen:1000 RX 字节数:2568845018(2.3 GiB)TX 字节数:284789020(271.5 MiB) 在TCP协议栈中,iperf测试用例涉及三个缓冲区:tcp_mem;tcp_rmem;tcp_wmem。 它们都由三个变量描述,这些变量对 iperf 测试结果有很大影响。 在Linux中,我为它们获取了一个快照:      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_mem      18240      24320     36480      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_rmem      4096       87380     778240      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_wmem      4096       16384     778240 在 Android 中,我也将它们与以下内容进行比较:      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_mem      9285      12380     18570      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_rmem      4096       87380     396160      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_wmem      4096       16384     396160 tcp_mem 变量定义 TCP 堆栈在内核内存管理中的行为方式。第一个值告诉内核低阈值。 第二个值告诉内核从什么时候开始降低内存使用率。第三个告诉内核最多可以使用多少个内存页。 如果达到该值,TCP 流和数据包就会开始被丢弃,直到达到安全水平。 在 tcp_rmem 中,第一个值定义每个 TCP 连接的最小接收缓冲区,并且该缓冲区始终分配给 TCP 套接字。第二个值定义 默认接收缓冲区大小。第三个指定了可以为 TCP 套接字分配的最大接收缓冲区。 在 tcp_wmem 中,还给出了三个变量来描述每个 TCP 套接字的 TCP 发送缓冲区。 我们可以在内核代码中检查这些值是如何产生的。在 kernel_imx/net/ipv4/sysctl_net_ipv4.c 中有一个算法+450。 限制= nr_free_buffer_pages() / 8;     limit = max(limit, 128UL); sysctl_tcp_mem[0] = 限制 / 4 * 3; sysctl_tcp_mem[1] = 限制; sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2; /* 将每个插槽的限制设置为不超过压力阈值的 1/128 */ 限制 = ((无符号长整型)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7); max_wshare = min(4UL*1024*1024,限制);     max_rshare = min(6UL*1024*1024, limit);     sysctl_tcp_wmem[0] = SK_MEM_QUANTUM;     sysctl_tcp_wmem[1] = 16*1024; sysctl_tcp_wmem[2] = max(64*1024,max_wshare);     sysctl_tcp_rmem[0] = SK_MEM_QUANTUM;     sysctl_tcp_rmem[1] = 87380; sysctl_tcp_rmem[2] = max(87380,max_rshare); 从上面的算法中,我们可以看到 tcp_mem、tcp_wmem[2]、tcp_rmem[2] 都与 nr_free_buffer_pages() 相关,nr_free_buffer_pages() 代表 ZONE_DMA 和 ZONE_NORMAL 内可分配的可用 RAM 数量。 所以到这里,我们就能找到Android和Linux之间性能差距的根本原因了。运行不同的操作系统时,可用 RAM 之间存在很大差距。 事实上,在android中,Google已经引入了一种通过属性来调整这些值的机制。 现在我们使用默认的AOSP值,您可以在device/fsl/imx6/etc/init.rc中引用它们。对于wifi和以太网,它们都使用net.tcp.buffersize.wifi。 # 定义各种网络的 TCP 缓冲区大小 # 读取最小值、读取初始值、读取最大值、写入最小值、写入初始值、写入最大值 setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.wifi524288,1048576,2097152,262144,524288,1048576 setprop net.tcp.buffersize.lte524288,1048576,2097152,262144,524288,1048576 setprop net.tcp.buffersize.umts4094,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.hspa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hsupa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hsdpa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hspap4094,87380,1220608,4096,16384,1220608 setprop net.tcp.buffersize.edge4093,26280,35040,4096,16384,35040 setprop net.tcp.buffersize.gprs4092,8760,11680,4096,8760,11680 setprop net.tcp.buffersize.evdo4094,87380,262144,4096,16384,262144 我尝试改变上述值,但不幸的是没有得到明显的改善。嗨,为什么? 那么另一个话题,tcp_mem 和 tcp_rmem 如何在内核中协同工作?在 android 中,我们只有办法调整 tcp_rmem 或 tcp_wmem 设置,而没有办法调整 tc_mem。 以“iperf -c”为例,tcp_rmem将根据千兆以太网时钟的频率进行填充。然后它将 根据tcp_mem的大小重新打包,如果tcp_mem较小,则会触发更多次,如果超过最大值 将会触发丢帧。然后将通过 TCP 启动重新传输。最后,性能就会下降。这就像使用千兆上网但用的是垃圾笔记本一样。 您仍然无法享受千兆以太网的良好性能。 为什么内核在 ipv4 中这样计算 tcp_mem?也许他们考虑的是单一高带宽和多连接之间的平衡。 你可以想象如果我们将 tcp_mem 更改为使用一个很大的值,它可能会导致主板由于内存分配不足而拒绝连接 在 tcp 初始化中。在这里我将给出几种提高我们的Android以太网性能的方法。 在电路板设计阶段扩大内存大小。 我已经通过在我们的 SabreAuto 板上测试再次检查了这一点,该板的内存为 2G,其下载速度可以达到 270 Mbps,而通过 Sabresd 则可达 50Mbps。 尽量使用老版本的android,如果能用ICS,可以放弃JB4.3。与较新的 Android 版本相比,旧版本占用的内存更少,并且会留下更多的可用内存。使用 ICS,我们可以达到 380 Mbps 的下载速度,而在 JB4.3 中,只能达到 210 Mbps。 如果您在非常重要的情况下使用 sabresd 的千兆以太网,那么如果您可以抛出其他内存消耗器(如 GPU),则可以平衡它。我已经检查过,如果我们禁用 GPU,JB4.3 中的性能可以达到 340 Mbps,提高约 50%。 改变tcp_mem算法,扩大其最大值阈值。就像您可以将上面的“sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2”更改为“sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 3”。您可以看到不再出现丢帧现象。或者您也可以参考如何:网络/TCP/UDP 调整来对其进行硬编码。但正如其作者所说,不建议用于支持多个用户或多个连接。因为它可能导致主板由于内存分配不足而拒绝连接。 通过 android 中的以下补丁调整 tcp_rmem 和 tcp_wmem。您将获得双向 320Mbps。但是如果您使用 ifconfig 工具设置静态 ip,您将无法设置这些参数。对于AOSP的框架现在只支持DHCP。对于这种情况,您可以在进行测试之前在控制台中手动回显这些参数。 Gerrit 代码审查 Gerrit 代码审查 更改内核的调度策略配置。 禁用 CONFIG_FAIR_GROUP_SCHED 并且仅启用 CONFIG_RT_GROUP_SCHED 会带来一些增强。 经过上述更改,我已经使用 android4.3GA 在 Sabresd RevC1 上进行了测试,双向速率均可达到390~400Mbps。 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我也想让客户关注这个主题,以便他们可以分享他们的结果。 顺祝商祺! —马赫什 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Jianzheng, 您能否将此文档留在此审核区域(而非您的私人空间),直到审核过程完成?当文档在自己的空间中,并且没有被限制查看时,社区中的每个人都可以看到该文档。在将文档移至公共社区之前,我们希望从中删除所有审核意见。 谢谢! 授予 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您能否尝试像我在本文中提供的补丁一样更改tcp_rmem 和 tcp_wmem 的大小? 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 我们正在使用 Android ICS(3.0.35 内核)开发 i.MX6Q,并且有以下疑问。 1) 您提到,通过使用 Android ICS,您已经实现了 380 Mbps 的下载速度(来自主板的 iperf -c)。我想知道它是否稳定(差异很小)?或者下载时速度是否会出现波动(200~400Mbps范围内)? 2)如果波动结果范围是 200~400Mbps,您知道如何解决这种不稳定性吗? 谢谢! 阿吉斯·PV 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我建议您在文档评论中“@提及”您的审阅者(如本文所示),并要求他们成为您的指定审阅者,并将他们引导至此暂存区域的主页以获取审阅者的说明。基本上,他们所要做的就是审查文档,向您提供一些反馈,然后在您做出必要的更改后,他们会重新审查并提交“我同意”的评论。相当简单。
查看全文
「Configure...「Dio」ブロック内の「」ボタン エラー「指定されたパスが見つかりません。」「構成...「Dio」ブロックの「」ボタン。 私はこのトレーニングビデオを段階的に追っています。 https://www.nxp.com/design/training/deploying-autosar-and-non-autosar-software-components-on-nxp-s32k3-with-mathworks-tools:TIP-AUTOSAR-SOFTWARE-NXP-S32K3-MATHWORKS-TOOLS 9:42に、「Configure...「Dio」ブロックの「」ボタンをクリックすると、EBTresosが開きます。 しかし、私はこのエラー情報を得ました。 私のハードウェア設定: EB tresos v29をインストールしました。 Re:「Configure...「Dio」ブロック内の「」ボタン Hi, @xianzhi_g , S32K3 のモデルベース デザイン ツールボックスにご関心をお寄せいただき、ありがとうございます。 直面している問題は、EB tresos フォルダが見つからないことです。次の図に示すように、C:\EB\tresos\bin ではなく C:\EB\tresos パスを選択していることを確認します。 お役に立てば幸いです。 ドラゴス
查看全文
无法在 S32K396-BGA-DC1 评估板上运行 MBDT s32k3xx_dio_ebt 示例 你好 我们最近购买了一块 S32K396-BGA-DC1 评估板,用于评估未来项目的 S32K396 MCU。 由于我们将使用 Simulink 模型进行应用程序开发,因此我尝试使用 MBDT 工具箱。 我可以毫无问题地安装工具箱,但我无法运行 s32k3xx_dio_ebt 示例。 我认为我已经在模型参数中设置了正确的目标 我正在使用安装在板上的“Open SDA”调试器。跳线 J16、J17、J18 和 J19 已相应设置。该电路板通过 USB 连接到我的笔记本电脑(电路板上的 USB 连接器旁边有绿色 LED 灯)。 模型下载参数设置如下 模型已建立,但当 Simulink 尝试将代码加载到开发板中时,过程失败 这是日志的内容 GNU gdb (GDB src=g2b2d27aa26 bld=gd2333b8c -vs=GDB-12-1 -L64 -W32 耳臂) 12.1 版权所有 (C) 2022 自由软件基金会,Inc. 许可证 GPLv3+:GNU GPL 版本 3 或更高版本 < http://gnu.org/licenses/gpl.html > 这是免费软件:您可以自由更改和重新分发它。 在法律允许的范围内,不提供任何担保。 输入“显示复制”和“显示保修”以了解详情。 该 GDB 配置为“--host=i686-mingw32 --target=arm-none-eabi”。 输入“show configuration”获取配置详细信息。 有关错误报告说明,请参阅: < https://www.gnu.org/software/gdb/bugs/ >。 在线查找 GDB 手册和其他文档资源: < http://www.gnu.org/software/gdb/documentation/ >。 如需帮助,请输入“help”。 输入“apropos word”来搜索与“word”相关的命令... 从 C:/Matlab/AddOn_2023b/Toolboxes/NXP_MBDToolbox_S32K3/S32K3_Examples/dio/s32k3xx_dio_ebt/s32k3xx_dio_ebt.elf 读取符号… tcp:localhost:7224:连接超时。 当你的目标是“exec”时,你不能这样做 顺便说一下,当发生错误时,红色 LED 会亮起。 有人能帮我吗? 谢谢 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 很高兴听到! 我刚刚将您的附加帖子转发给了 S32 设计工作室团队。 如果您在使用 MBDT for S32K3 时遇到任何其他问题,请告知我们 谢谢! Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 有用 ! 我知道您给我的指南,但是查看文档,我并不清楚在使用 J1 12V 电源时必须设置那些跳线。 无论如何,现在很明显我错了 顺便说一句,万一你也可以帮助我,我还有另一个关于在 S32 Design Studio 中安装 S32K396 支持包的案例: https://community.nxp.com/t5/S32K/Fail-to-install-S32K396-development-package-fails/mp/2053684#M46329 非常感谢你的帮助 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 感谢您提供的图片。我注意到,您的主板上的 J4、J6 和 J7 位于 1-2 位置,对应于 JP1 电源,如S32K396-BGA-DC1 连接器和跳线说明表所示,您可以在以下链接中找到该表 由于目前您的设置中 JP1 上没有连接,因此您需要更改跳线位置以确保 MCU 所需的电压。 为此,以及完整的逐步硬件设置,我建议您查看S32K396-BGA-DC1 评估板入门指南,以便能够根据您的硬件设计设置电源,并正确配置电路板上所有必要的跳线。 如果这有帮助,请告诉我们, Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 感谢您的努力。 当我的电路板仅通过 J1 连接器供电(未连接 USB)时,只有 D4 LED 亮起。D1、D2 和 D3 保持关闭状态 当 USB 电缆连接时,即使 J1 未连接,D30 LED 也会亮起 当 USB 和 J10 都连接时,我仍然只有 D4 和 D30 处于打开状态。我正尝试以这种状态下载代码。 如您所见,D2、D3 和 D4 始终处于关闭状态。这是个问题吗? 谢谢 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 您的下载设置似乎正确,因为您选择使用 JTAG 将代码下载到 FLASH 存储器中。 我已尝试在我的设置上运行该示例,我想提一下我已采取的步骤: - 通过 12V CON_1_PWR J1连接器为电路板供电, - 通过SW10启用外部电源,将其切换到1-2位置(请注意,根据电路板的原理图, J3也需要放置在 1-2 位置) 执行这些操作后, D1、D1、D3、D4 LED(MCU 电源输入指示灯)也应亮起。 您能否告诉我们,按照这些步骤操作后,除了电路板上 USB 连接器旁边的 LED 灯亮起之外,MCU 电源输入指示灯是否也亮起? 谢谢! Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 非常感谢您的帮助。 我已经更改了“配置项目模板” 我也下载并安装了 PE Micro 驱动程序(并重新启动了计算机),但不幸的是它并没有解决问题。 您能否确认我的“下载”设置是否正确? 连接失败后,我注意到日志中有一些有趣的东西 这是否意味着 MCU 已在运行? 该板是全新的,所以我猜没有可以在闪存中运行的代码 是否有任何跳线需要设置以告诉 MCU 从 JTAG 而不是闪存启动? 再次感谢您的帮助 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 通过查看您遇到的错误,我认为问题可能与缺少PEmicro 硬件接口驱动程序安装有关。这些驱动程序对于使用板载 OpenSDA 调试器是必需的。 您能否检查这些驱动程序是否已安装?如果没有,您可以从 PEmicro 官方网站下载并安装它们。 此外,如果您打算使用 S32K396-BGA-DC1,您可以直接选择我们为该板提供的默认配置项目,因为 S32K396-Q289 选择与 EVB 的 BGA-DC 版本相匹配。根据该板的硬件特性,为 S32K396-BGA-DC1 提供的配置项目启用了外设、引脚和时钟,因此从该项目开始而不是从已经选择的开始可能会很有用。   请让我们知道这是否有帮助或者是否需要我们提供进一步的详细信息。 Irina
查看全文
无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 尝试通过 UUU 将我从 NXP 下载的 imx 8 nano EVK Linux 映像写入我的 imx 8 nano EVK。我认为这应该是一件非常简单、平常的事情。但它失败了。 我下载了LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK。 使用最新的 UUU,v 1.5.182。 UUU 识别 nano 并开始处理,但很快失败并出现错误:LIBUSB_ERROR_TIMEOUT。 我已重试多次,但每次都失败。 仅供参考:我还有一个 mini EVK,我可以毫无问题地将 mini EVK 图像写入其中。 知道是什么原因导致失败吗?又该如何解决呢? 以下是我的运行输出: PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> .\uuu.exe -lsusb uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.182-0-gda3cd53 Connected Known USB Devices Path Chip Pro Vid Pid BcdVersion Serial_no ==================================================================== 2:1 MX815 SDPS: 0x1FC9 0x013E 0x0001 2D2A6A09DAB58857 PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> .\uuu.exe -V . uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.182-0-gda3cd53 Build in config: Pctl Chip Vid Pid BcdVersion Serial_No ================================================== SDPS: MX8QXP 0x1fc9 0x012f [0x0002..0xffff] SDPS: MX8QM 0x1fc9 0x0129 [0x0002..0xffff] SDPS: MX8DXL 0x1fc9 0x0147 SDPS: MX28 0x15a2 0x004f SDPS: MX815 0x1fc9 0x013e SDPS: MX865 0x1fc9 0x0146 SDPS: MX8ULP 0x1fc9 0x014a SDPS: MX8ULP 0x1fc9 0x014b SDPS: MX93 0x1fc9 0x014e SDPS: MX91 0x1fc9 0x0159 SDPS: MX95 0x1fc9 0x015d SDPS: MX95 0x1fc9 0x015c SDP: MX7D 0x15a2 0x0076 SDP: MX6Q 0x15a2 0x0054 SDP: MX6D 0x15a2 0x0061 SDP: MX6SL 0x15a2 0x0063 SDP: MX6SX 0x15a2 0x0071 SDP: MX6UL 0x15a2 0x007d SDP: MX6ULL 0x15a2 0x0080 SDP: MX6SLL 0x1fc9 0x0128 SDP: MX7ULP 0x1fc9 0x0126 SDP: MXRT106X 0x1fc9 0x0135 SDP: MX8MM 0x1fc9 0x0134 SDP: MX8MQ 0x1fc9 0x012b SDPU: SPL 0x0525 0xb4a4 [0x0000..0x04ff] SDPV: SPL1 0x0525 0xb4a4 [0x0500..0x9998] SDPV: SPL1 0x1fc9 0x0151 [0x0500..0x9998] SDPU: SPL 0x0525 0xb4a4 [0x9999..0x9999] SDPU: SPL 0x3016 0x1001 [0x0000..0x04ff] SDPV: SPL1 0x3016 0x1001 [0x0500..0x9998] FBK: 0x066f 0x9afe FBK: 0x066f 0x9bff FBK: 0x1fc9 0x0153 FB: 0x0525 0xa4a5 FB: 0x18d1 0x0d02 FB: 0x3016 0x0001 FB: 0x1fc9 0x0152 FB: 0x0483 0x0afb Wait for Known USB Device Appear... New USB Device Attached at 2:1-2D2A6A09DAB58857 2:1-2D2A6A09DAB58857>Start Cmd:SDPS: boot -f imx-boot-imx8mnddr3levk-sd.bin-flash_ddr3l_evk 10%2:1-2D2A6A09DAB58857>Fail HID(W): LIBUSB_ERROR_TIMEOUT (-7)(20.05s) libusb: warning [libusb_exit] device 2.0 still referenced libusb: warning [libusb_exit] device 1.0 still referenced libusb: warning [libusb_exit] device 2.6 still referenced libusb: warning [libusb_exit] device 1.1 still referenced libusb: warning [libusb_exit] device 2.2 still referenced PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Windows 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 您的回复促使我更仔细地查看下载选项。我现在看到有两个名称中带有“nano”:i.MX 8M Nano DDR3L EVK 和 i.MX 8M Nano EVK。我猜名称中没有“DDR3”的是DDR4。 使用非 DDR3 下载有效。 仅供参考,我使用了命令: uuu .\LF_v6.6.36-2.1.0_images_IMX8MNEVK.zip 确实希望在线信息能够更好地设计以获得成功。 谢谢你的帮助。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK Hi, 您正在将 DDR3 二进制文件刷入 LPDDR4 板,请尝试刷入正确的LPDDR4 板。 uuu -b imx-boot-imx8mnevk-sd.bin-flash_evk imx-image-full-imx8mnevk.wic 此致 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 再次尝试附加图片。似乎使用 jpg 文件比使用 .zip 文件效果更好。      回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 我确实附加了一个带有图像的 zip 文件,但现在在线程中看不到它。然后我尝试再次回复并附加一个简单的文本文件,但我认为它没有起作用。该文件似乎开始上传;显示在拖放框中,但随后消失了。并且消息“允许的最大附件数”计数保持在 5。因此,我怀疑图片压缩包是否附加在了我上一条消息中。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 也许您指的是顶部和底部的图片。随附的。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK Hi, 感谢您对恩智浦半导体产品的关注, 您能分享一下您的两块板子的顶部和底部的图片吗? 此致
查看全文
如何在 i.MX 配置工具中为 i.mx6ull 分配中断 下午好,亲爱的恩智浦!我该如何在这个工具中分配中断?我已经配置了所有引脚,现在我必须为其分配中断并为各种中断编写自己的中断处理程序。但我无法找到如何以及在何处使用此工具来执行此操作。 我正在使用 Linux,所以我认为我必须以某种方式将引脚声明为中断源,然后编写驱动程序将其分配给该引脚,但现在我不明白如何做到这一点。 聚苯乙烯 很明显我应该把 dtsi 文件放在哪里,但我应该把另外 4 个(iomux_config.c(h))放在哪里,pin_mux.c(h))SDK 中生成的文件? i.MX6 全部 i.MX6UL 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 谢谢你!我是这样想的,那么,我将以 Linux 风格来做这件事) 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 你好, @8Aineri 我问了我们的 Pin 工具成员,他们说中断向量的初始化或来自 GPIO 引脚的中断不是 i.mx 6ULL 引脚工具数据的一部分。 GPIO 中断的初始化是 GPIO 外设初始化的一部分,应该在 GPIO 驱动程序中。 和您提到的一样。 B.R 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 我读过这篇文章,但我找不到关于如何为引脚分配中断的解决方案。也许我应该只将引脚标记为中断,然后手动编写 Linux 驱动程序,但我找不到如何将引脚标记为中断。 我该如何理解这一点 - 我无法在此工具中将引脚标记为中断,我只能看到这个引脚是否可以成为中断,然后我应该在 Linux 设备树中手动执行此操作? 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 你好, @8Aineri 据我所知,配置工具中的 Pin 工具似乎没有您请求的功能(为 i.mx6ull 分配中断),此外,我还会联系所有者仔细检查这一点。 PS:我认为这个文件不用于放入SDK。请参阅附件第3章以进一步了解。
查看全文
FreeRTOS プロジェクトで LPTMR KSDK ドライバーを使用する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetisソフトウェア開発キット(KSDK)は、Kinetisマイクロコントローラ上でアプリケーションを開発するためのソフトウェア・フレームワークです。フレームワークのソフトウェアコンポーネントには、ペリフェラルドライバー、ミドルウェア、およびリアルタイムオペレーティングシステムが含まれます。 KSDKはFreeRTOS OSを提供し、選択されたドライバーは追加のレイヤーの形でFreeRTOSサポートを提供します。このソリューションにより、RTOSベースのアプリケーションへのドライバ統合が容易になります。 FreeRTOS レイヤーを持つドライバーは次のとおりです。 • UART / LPUART / LPSCI • I2C / LPI2C • SPI / LPSPI FreeRTOS OS のドライバーは、標準の KSDK 周辺機器ドライバーの上に構築されたレイヤーで、マルチスレッド (RTOS) 認識を実現します。ラッパーは、I/O 操作が完了するまで呼び出し元のタスクをブロックし、他のタスクをバックグラウンドで実行できるようにする API を提供します。これは、基になるドライバーの非同期 API と RTOS タスク同期オブジェクトを使用して実現されます。基盤となるドライバーは、適切に動作するために有効な割り込みを必要とします。 さらに、KSDKベアメタルドライバーを使用することも可能です。このドキュメントでは、FreeRTOS および SDK 2.0 プロジェクトで LPTMR ドライバーを使用する方法について説明します。この例では、SDK 2.0、FRDMK64F、および FreeRTOS を使用しています。 FreeRTOSプロジェクトを使用して新しいSDK 2.0を作成する方法を知りたい場合は、以下のリンクを確認してください https://community.freescale.com/docs/DOC-330183 GPIOとLPTMRの例: はじめに この例では、青色の LED を 1 秒ごとに切り替えます。この例では、Timer Compare Flagビットをチェックし、このフラグが設定されると青色LEDのステータスが変わります。 サンプルコードの記述 まず、FreeRTOSプロジェクトを使用して新しいSDK 2.0を作成する必要がありますので、以下のリンクを確認してください。      https://community.freescale.com/docs/DOC-330183 2.新しいプロジェクトを作成したら、pin_mux.c を開きますポートクロックを有効にし、必要なピンをGPIOとして構成するためのファイル(FRDM-K64Fの場合、RGB LEDはGPIO信号を介して接続されます:赤からPTB22、青からPTB21、緑からPTE26)。 3.さらに、pin_mux.c で lptmr モジュールのクロックを有効にする必要がありますファイル。 4.main.c でファイルには fsl_lptmr.h を含める必要がありますとfsl_gpio.h. 5.main 関数で、新しいタスクを作成します。このタスクは、LPTMR ドライバーと GPIO ドライバーを初期化します。この例では、新しいタスク関数の名前は task_init です。 /* RTOSタスクを作成 */ xTaskCreate( task_init、                  "Task_Init"、 configMINIMAL_STACK_SIZE、 ヌル task_PRIORITY、                  NULL); 6.task_init関数コードを記述します。 ある。KSDK GPIO ドライバーの使用: GPIO を初期化するには、ユーザー ファイルでピン構成 (入力または出力) を定義します。次に、 GPIO_PinInit() 関数を呼び出します。 今回は青色LEDが接続されているピンPTB21を出力として設定しました。 gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,}; GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config); GPIO ピンをコンフィギュレーションすると、次の GPIO 操作を使用できます。 GPIO出力操作。 GPIO_WritePinOutput  (GPIO_Type *base, uint32_t pin, uint8_t output) GPIO_SetPinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO_ClearPinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO_TogglePinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO 入力操作。 GPIO_ReadPinInput (GPIO_Type ※ベース、uint32_tピン) board.h ファイルには、この操作の定義が含まれています。例えば: /*!< ターゲットLED_BLUEの切り替え */ #define LED_BLUE_TOGGLE() \ GPIO_TogglePinsOutput(BOARD_LED_BLUE_GPIO、1U<< BOARD_LED_BLUE_GPIO_PIN) b.KSDK LPTMR ドライバーを使用する場合: LPTMR_Init () は、アプリケーションの先頭で LPTMR ドライバーを使用して呼び出す必要があります。この関数は lptmr_config_t 構造体を初期化し、この構造体は LPTMR 周辺機器の構成設定を保持します。この構造体を適切な既定値に初期化するには、LPTMR_GetDefaultConfig() 関数を呼び出し、構成構造体インスタンスへのポインターを渡します。config構造体は、フラッシュに存在するようにconstにすることができます。 デフォルト値は次のとおりです。 config->timerMode = kLPTMR_TimerModeTimeCounter; config->pinSelect = kLPTMR_PinSelectInput_0; config->pinPolarity = kLPTMR_PinPolarityActiveHigh; config->enableFreeRunning = false; config->bypassPrescaler = true; config->prescalerClockSource = kLPTMR_PrescalerClock_1; config->value = kLPTMR_Prescale_Glitch_0; LPTMRを設定した後、タイマー期間を設定する必要があります。LPTMR_SetTimerPeriod() は、タイマーが 0 からここで設定されたカウント値と等しくなるまでカウントします。カウント値はCMRレジスタに書き込まれます。 最後に、LPTMR_StarTimer () を使用してタイマーを開始します。この関数を呼び出した後、タイマーはCMRレジスタ値までカウントアップします。タイマがCMR値に達してからインクリメントするたびに、トリガパルスが生成され、タイムアウト割込みフラグが設定されます。タイマー割り込みが有効になっている場合も、割り込みがトリガーされます。 この例では、次の行で LPTMR を構成して開始します。 /* LPTMR の設定 */ LPTMR_GetDefaultConfig(&lptmrConfig); /* LPTMR を初期化します */ LPTMR_Init(LPTMR0, &lptmrConfig); /* タイマー周期を設定 */ LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK)); /* カウント開始 */ LPTMR_StartTimer(LPTMR0);                   c.この例では、Timer Compare Flagビットをチェックし、このフラグが設定されると青色LEDのステータスが変わります。したがって、無限ループでは、LPTMR_GetStatusFlags()関数がチェックします ステータスフラグ (このフラグが設定されている場合は、LED を切り替えて、LPTMR_ClearStatusFlags() 関数を使用してフラグをクリアします。 (1) ながら    {    if (LPTMR_GetStatusFlags(LPTMR0) )           { LED_BLUE_TOGGLE();                      LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag);               } } 7.この時点で、サンプルをビルドしてデバッグできます。 完全なコード GPIO と LPTMR の例 #include #include「ボード.h」 #include「pin_mux.h」 #include 「clock_config.h」 #include「fsl_debug_console.h」 #include 「fsl_device_registers.h」 #include 「fsl_lptmr.h」 #include 「fsl_gpio.h」 /* FreeRTOS カーネルには以下が含まれます。*/ #include「FreeRTOS.h」 #include「task.h」 #include「queue.h」 #include「timers.h」 /* タスクの優先順位。*/ #define task_PRIORITY (configMAX_PRIORITIES-1) /******************************************************************************* *定義 ******************************************************************************/ /* LPTMR ドライバーのソースクロックを取得 */ #define LPTMR_SOURCE_CLOCK CLOCK_GetFreq(kCLOCK_LpoClk) static void task_init(void *pvParameters); /******************************************************************************* * Variables ******************************************************************************/ volatile uint32_t lptmrCounter = 0U; int main(void) {        /* ボード ハードウェアを初期化 します。*/ BOARD_InitPins(); BOARD_BootClockRUN();        BOARD_InitDebugConsole();        /* ここにコードを追加 */        /* RTOSタスクを作成 */ xTaskCreate( task_init、                      "Task_Init"、 configMINIMAL_STACK_SIZE、 ヌル task_PRIORITY、                      NULL); vTaskStartScheduler();        for(;;){ /* メイン関数から離れないようにするための無限ループ */               __asm(「NOP」); /* ループ中のブレークポイント停止として使用するもの */        } } static void task_init(void *pvParameters) {        for (;;){               lptmr_config_t lptmrConfig; PRINTF("初期化タスクを実行しています。\r\n");               /* イニット 出力LEDGPIO。*/               gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,};               GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config); PRINTF("LED BLUE 初期化済み \r\n");               /* LPTMR の設定 */               /*                * lptmrConfig.timerMode = kLPTMR_TimerModeTimeCounter;                * lptmrConfig.pinSelect = kLPTMR_PinSelectInput_0; * lptmrConfig.pinPolarity = kLPTMR_PinPolarityActiveHigh; * lptmrConfig.enableFreeRunning= false;                * lptmrConfig.bypassPrescaler = true; * lptmrConfig.prescalerClockSource= kLPTMR_PrescalerClock_1;                * lptmrConfig.value = kLPTMR_Prescale_Glitch_0;                */               LPTMR_GetDefaultConfig(&lptmrConfig);               /* LPTMR を初期化します */               LPTMR_Init(LPTMR0, &lptmrConfig);               /* タイマー周期を設定 */ LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK)); PRINTF("低電力タイマー モジュールが初期化されました \r\n");               /* カウント開始 */               LPTMR_StartTimer(LPTMR0); (1) ながら {                      if (LPTMR_GetStatusFlags(LPTMR0) ) { lptmrCounter ++; LED_BLUE_TOGGLE(); LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag); } }        } }
查看全文
A71CH - 常见问题解答 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文收集了有关A71CH解决方案的常见问题 (FAQ) , NXP 的物联网安全 IC 支持“即插即用”物联网安全方法。 我该如何开始? 特性 支持包 订单详细信息 我该如何开始? 如何使用 A71CH 开始开发? 如何开始使用 i.MX6UltraLite? 如果我想将我的设备加入 Google Cloud IoT 核心,我该如何开始? 如果我想将我的设备加入 AWS IoT Core,该如何开始? 特性 哪些类型的凭证可以存储在 A71CH 中? 如何使用 A71CH 进行相互认证? 支持包 在哪里可以找到 A71CH 支持材料? A71CH 支持包包括什么? 订单详细信息 如何订购 A71CH Arduino 兼容开发套件? 如何订购 A71CH IC? A71CH
查看全文
构建 SDK 1.3.2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我最近下载了 SDK 1.3.2从飞思卡尔的 SDK下载站点下载并有机会尝试将其安装在我身边的 P3041DS 系统上。ISO 中有很多信息,但我想我会逐步完成初始构建以记录流程。 首先要注意的是,有多个 ISO 映像可用。 我已经有一台 Ubuntu lucid 机器,我用它作为构建机器。所以我不需要虚拟图像。我需要源文件 - 所以我下载了 QorIQ_SDK_V1-3-2_SOURCE_ISO,并且我将在 P3041 上尝试这个,所以我下载了 e500mc 二进制文件。二进制文件不是必需的,但它可以显著加快构建速度。 下载完成后,首先要安装源 ISO 源 ISO 中有一个安装脚本。我运行它并让它做它的事情。值得注意的是,文档目录中包含文档。如果您访问documents/START_HERE.html,您将获得有关 SDK 的基于 html 的文档。而且,如果您继续深入研究并转到documents/sdk_documentation/pdf,您会发现一些有关各种功能的 pdf 文档。文档 QorIQ_SDK_Infocenter.pdf 是从Freescale 信息中心网站获取的 SDK 文档的完整集合。 一旦安装了源,我就对二进制文件执行相同的操作。 确保在源的顶部安装二进制文件(即在同一目录中)。 然后我们调用 FSL poky 脚本 - 来设置构建。 在这个命令中,-m 告诉它你要构建到哪台机器。-j 表示 make 要生成的作业数,-t 表示要并行运行的 bitbake 任务数。 此时我已准备好开始构建。对于想要构建的图像,我有一些选择 - 我将使用核心图像,其中包含一些更常见的包。因此,此时我需要确保我位于 build_p3041ds_release 目录中,并发出命令 bitbake fsl-image-core 这将启动构建过程。 当一切都完成后,我可以在build_p3041ds_release/tmp/demply/images目录中找到我的图像。 就我而言,我有相当多的图像,因为我实际上已经构建了核心和完整的图像。接下来,我必须抓取这些图像并将它们部署到我的目标。 QorIQ P1设备 QorIQ P2设备 QorIQ P3 设备 QorIQ P4设备 QorIQ P5设备
查看全文
MPC5777C针对S32DS双核执行的优化 Hello, 现在我的 MPC5777CEVB 已经有了一个稳定的双核执行环境(顺便说一句,感谢您在之前帖子中的回答!),我正在尝试了解更精细的细节,以便获得该 MCU 的最佳性能和可预测性。在我的实验过程中,我思考了许多问题: - 让 cpu0 从一个 PFLASH 库运行代码,让 cpu1 从另一个 PFLASH 库运行代码,这是否有益(就减少资源争用而言)?在这种情况下,将 PFLASH 分成几个 TLB 条目是否有用? - 对于 SRAM 也有同样的问题:考虑到它分为三个组,有没有将其分成核心的最佳方法?我正在考虑为具有直写缓存策略和平台一致性的共享 64KB 空间设置一个 TLB 条目,然后为 cpu1 设置 192KB,为 cpu0 设置 256KB,但我不知道将一个核心绑定到 XBAR 从属端口 2 并将另一个核心绑定到 XBAR 从属端口 4 是否有任何好处,也不知道是否需要特别注意 XBAR 从属端口 2,因为(如果我理解正确的话)那里有多个存储库。 - 尽管 EVB 带有 MMO3 部件编号,但我打算在实际开发中使用 MMO4 芯片。EVB 能与 MMO4 芯片配合良好吗?我可以以最大频率运行它吗?说到这,一些文档部分指出最大频率为 300MHz,而其他部分则指出最大频率为 306MHz。哪一个是正确的? - 对于 MMO4 部件号,最大 EBI CLKOUT 是否仍保持在 66MHz?在这种情况下,我是否应该将平台时钟除以 3 并使用 50(51?)MHz 作为 CLKOUT? - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? - 当在两个核心上运行一些代码时(都从相同的 Flash 地址读取,一些从相同的 RAM 地址读取,一些读取(以及所有写入)到不同的 RAM 地址),使用循环 XBAR 仲裁策略,cpu0 比 cpu1 更快(~743us vs. ~799us)。当我将其更改为基于优先级时,时间保持大致相同,但两个核心的速度都稍慢一些(~748us 对比 ~805us)。在所有情况下,我都使用每个核心自己的 TBL/TBU 寄存器来测量时间,以最大限度地减少资源争用。为什么循环对两个核心都更好? -最后,在S32DS环境中是否有SDA使用的示例或文档? 谢谢! Ricardo 回复:MPC5777C针对S32DS中的双核执行进行优化 也许您需要按如下方式启用它: https://www.nxp.com.cn/docs/en/release-note/S32SDK_Power_Architecture-RN.pdf 关于中断: 两个核心的中断请求在同一周期内触发。然而,ISR 处理是特定于应用程序的。 回复:MPC5777C针对S32DS中的双核执行进行优化 Hi David, 感谢大家的回答!我将重点讨论那些我可能不理解的内容: - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? 我不确定我是否完全理解这一点,但 INTC 能够向两个核心发送中断请求(INTC_PSRn[PRC_SELn] = 0b)。 确实,我正在向两个核心发送中断。查看 S32DS 知识库中提供的示例时,只有一个核心服务于中断,并且必须设置 PIT_TFLG0[TIF](显然,要重置中断,直到 PIT0 再次设置它)。我想知道中断是否在同一个时钟周期内发送到两个内核,这样如果其中一个内核在 ISR 功能启动时立即设置 PIT_TFLG0[TIF],则不会存在另一个内核“看不到”中断的风险,因为其中一个内核已清除该中断。 -最后,在S32DS环境中是否有SDA使用的示例或文档? “SDA”缩写是什么意思? 我的错!我指的是小数据区。虽然我可以让它们在 GHS 环境中工作,但我不明白 gcc 如何处理它们......它正在创建 .sdata和 .sbss部分并默认在那里分配东西,但它看起来并不像在执行由 r13 索引的访问。 回复:MPC5777C针对S32DS中的双核执行进行优化 嵌入的答案: - 让 cpu0 从一个 PFLASH 库运行代码,让 cpu1 从另一个 PFLASH 库运行代码,这是否有益(就减少资源争用而言)?在这种情况下,将 PFLASH 分成几个 TLB 条目是否有用? 有两个专用闪存端口,它们不根据地址分割,因此不需要创建多个 TLB 条目。 - 对于 SRAM 也有同样的问题:考虑到它分为三个组,有没有将其分成核心的最佳方法?我正在考虑为具有直写缓存策略和平台一致性的共享 64KB 空间设置一个 TLB 条目,然后为 cpu1 设置 192KB,为 cpu0 设置 256KB,但我不知道将一个核心绑定到 XBAR 从属端口 2 并将另一个核心绑定到 XBAR 从属端口 4 是否有任何好处,也不知道是否需要特别注意 XBAR 从属端口 2,因为(如果我理解正确的话)那里有多个存储库。 SRAM 根据地址线 18 分为两半(见表 9-2)。XBAR 从属端口分配)。如果一个核心访问从属端口 2,而第二个核心访问从属端口 4(或其他),则可能会很有益,因为两个访问是并行进行的。 - 尽管 EVB 带有 MMO3 部件编号,但我打算在实际开发中使用 MMO4 芯片。EVB 能与 MMO4 芯片配合良好吗?我可以以最大频率运行它吗?说到这,一些文档部分指出最大频率为 300MHz,而其他部分则指出最大频率为 306MHz。哪一个是正确的? 300MHz 为最大未调制频率,306MHz 为包含频率调制。 - 对于 MMO4 部件号,最大 EBI CLKOUT 是否仍保持在 66MHz?在这种情况下,我是否应该将平台时钟除以 3 并使用 50(51?)MHz 作为 CLKOUT? EBI 最大频率保持不变,这实际上意味着 300MHz 版本必须使用比 264MHz 版本更低的 EBI 频率,因为 CLKOUT 分频器没有提供更多选项。 - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? 我不确定我是否完全理解这一点,但 INTC 能够向两个核心发送中断请求(INTC_PSRn[PRC_SELn] = 0b)。 - 当在两个核心上运行一些代码时(都从相同的 Flash 地址读取,一些从相同的 RAM 地址读取,一些读取(以及所有写入)到不同的 RAM 地址),使用循环 XBAR 仲裁策略,cpu0 比 cpu1 更快(~743us vs. ~799us)。当我将其更改为基于优先级时,时间保持大致相同,但两个核心的速度都稍慢一些(~748us 对比 ~805us)。在所有情况下,我都使用每个核心自己的 TBL/TBU 寄存器来测量时间,以最大限度地减少资源争用。为什么循环对两个核心都更好? 您可能还要注意停车管制。理想情况下,我已经回答过,每个核心访问不同的 SRAM 一半,每个核心访问不同的闪存地址(有内部预取缓冲区,但访问同一地址不会同时运行,可能会导致等待状态)。 -最后,在S32DS环境中是否有SDA使用的示例或文档? “SDA”缩写是什么意思?
查看全文
imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 2020年3月13日:imx_builder_03122020.tgz--- 更改 i.MX8MN 配置。 2019年12月11日:imx_builder_12112019.tgz --- 添加支持 L4.19.35_1.1.0 2019年8月28日:imx_builder_08282019.tgz --- 添加 i.MX8MM 2019年7月3日:imx_builder_07032019.tgz --- 添加 i.MX8QM: build_i.MX8 2020 年 2 月 26 日:imx_builder_02262020 --- 添加 i.MX8MN,为 build_i.MX8、build_i.MX8X 添加 spl m4,带有 L4.14.98_2.0.0_ga、L4.14.98_2.2.0、L4.19.35_1.1.0 imx_builder_02262020: imx_builder |-- atf -> bsp/imx-atf |-- bsp -> REL/rel_imx_4.19.35_1.1.0 |-- 构建 -> build_i.MX8X/L4.19.35_1.1.0 |-- 构建_i.MX6 | |-- L3.0.x | |-- L3.1x.xx | |-- L4.14.xx | |-- L4.19.xx |`-- L4.1.xx |-- 构建_i.MX8 | |-- 在_L4.14.98_2.0.0_ga 之前 | |-- L4.14.98_2.0.0_ga | |-- L4.14.98_2.2.0 |`-- L4.19.35_1.1.0 |-- 构建_i.MX8M | |-- 之前.L4.19.35 |`-- L4.19.35 |-- 构建_i.MX8MM | |-- 之前.L4.19.35 |`-- L4.19.35 |-- 构建_i.MX8MN |`-- L4.19.35 |-- 构建_i.MX8X | |-- 在_L4.14.98_2.0.0_ga 之前 | |-- L4.14.98_2.0.0_ga | |-- L4.14.98_2.2.0 |`-- L4.19.35_1.1.0 |-- dts -> linux/arch/arm/boot/dts |-- dts64 -> linux/arch/arm64/boot/dts/freescale |-- dts_uboot -> u-boot/arch/arm/dts |-- imx-mkimage -> bsp/imx-mkimage |-- linux -> bsp/linux-imx | -- m4_img | |-- m4_1_image.bin->rpmsg_lite_str_echo_rtos_imxcm4.bin | |-- m4_image.bin -> 电源模式开关.bin |`--readme.txt |-- Makefile -> 构建/Makefile |-- 其他 | |-- clk_模块 ||-- cryptodev-linux-1.8 | |-- helloworld_模块 | |-- key_blob_模块 |`-- spi |-- 出 |-- 自述文件 -> 构建/自述文件 |-- 相对 |-- scfw -> bsp/scfw |-- 设置.MK -> 构建/设置.MK |-- 工具链 |`-- scfw |-- u-boot -> bsp/uboot-imx `--版本.MK imx_builder是一组用于构建u-boot、Linux kernel、atf、scfw、imx-mkimage的Makefile。您可以称之为独立构建。 以下是尝试的步骤。 您可以使用 -n 来获取详细的构建步骤。 例如:make atf -n 制作 linux.Image -n 以 L4.14.78_ga 为例: 1. Untar  imx_builder_02282019.tgz 2.阅读里面的Standalone_Build_Preparation.pdf,准备bsp。 3.准备工具链(从 yocto 获取 populate_sdk、从 linaro 获取、从 buildroot 获取等) 4. 按照 SCFW 移植套件准备 scfw 工具链。 5. 按照Standalone_Build_Preparation.pdf 检查构建结构是否正确。 构建结构 以 L4.14.78_1.0.0_ga 为例。 在 REL 中准备 rel_imx_4.14.78_1.0.0_ga 创建指向 REL/rel_imx_4.14.78_1.0.0_ga 的符号链接 创建指向 build_i.MX8X 的符号链接   imx_builder/ |-- atf -> bsp/imx-atf |-- bsp -> REL/rel_imx_4.14.78_1.0.0_ga |-- 构建 -> build_i.MX8X |-- 构建_i.MX6 |-- 构建_i.MX8M |-- 构建_i.MX8X |   |-- Makefile -> Makefile.4.14.78_ga |   |-- Makefile.4.14.78_ga | |-- 自述文件 | |-- 设置_4.14.78_1.0.0_ga.MK | |-- 设置.MK -> 设置_4.14.78_1.0.0_ga.MK | `--版本.MK |-- dts -> linux/arch/arm/boot/dts |-- imx-mkimage -> bsp/imx-mkimage |-- linux -> bsp/linux-imx |-- Makefile -> 构建/Makefile |-- 其他 |-- 出 |-- 自述文件 -> 构建/自述文件 |-- 相对 | ` --rel_imx_4.14.78_1.0.0_ga |       |-- firmware-imx-8.0.bin |       |-- imx-atf |       |-- imx-mkimage | |-- imx-sc-firmware-1.1.bin(可选) | |-- imx-scfw-移植套件-1.1.tar.gz |       |-- linux-imx |       `-- uboot-imx |-- scfw -> bsp/scfw |-- 设置.MK -> 构建/设置.MK |-- 独立构建准备.pdf |-- 工具链 |   `-- scfw |` --gcc-arm-none-eabi-6-2017-q2-更新 |-- u-boot -> bsp/uboot-imx `--VERSION.MK -> 构建/VERSION.MK 概述 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 非常感谢您的脚本。 我有一个类似的,它删除了 linunx-imx、uboot-imx 中的 .git,以使 bsp 变小。 我认为到目前为止它还不是 imx_builder 的一部分。 我最初的想法是让客户了解独立构建。并且很容易看到单个步骤,这在 Yocto 中有点难以阅读。 imx_builder 适合像您这样的专业用户。您可以添加任何新功能,例如准备 bsp。 非常感谢您对我的 imx_builder 感兴趣。 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, BiyongSUN ,谢谢你的更新。 这是用于填充 bsp 目录的脚本(getSw.sh)。使用版本rel_imx_5.4.24_2.1.0,对于固件 imx,i.MX_Linux_Release_Notes.pdf 具有此版本的版本 (8.8)。要使用其他 Linux 版本,请更新所需版本的 TAG 和 FWR 变量。 #!/bin/bash TAG="rel_imx_5.4.24_2.1.0" FWR="8.8" CAF="https://source.codeaurora.org/external/imx" MAD="wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO" wget ${MAD}/firmware-imx-${FWR}.bin for repo in linux-imx uboot-imx imx-atf imx-mkimage; do     git clone ${CAF}/${repo} -b ${TAG}; done ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 在imx_builder的初始版本中,我只是添加了一个非常小的 rootfs 用于测试目的。 并且我决定不再支持rootfs。但我没有删除规则。 实际上,我通过 buildroot 制作了小型测试 rootfs。 根文件系统:rootfs.tar #$(RM)$(ROOTFS_DIR)/dev/null$(OUT_ROOTFS) # fakeroot -- sh -c 'mknod -ma=rw $$0/dev/null c 1 3 && cd $$0 && tar jfvc $$1 *' ${ROOTFS_DIR} ${OUT_ROOTFS} #$(RM)$(OUT_ROOTFS_TAR)$(OUT_ROOTFS_UBI) # 假根 -- ${FS_TAR_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_TAR} # 假根 -- ${FS_UBI_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_UBIFS} ${OUT_ROOTFS_UBI} ${FS_UBI_DIR} 根文件系统.tar: $(RM) $(OUT_ROOTFS_TAR) 假根 -- ${FS_TAR_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_TAR} rootfs.cpio: $(RM) $(OUT_ROOTFS_CPIO) 假根 -- ${FS_CPIO_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_CPIO} 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> imx_builder_03122020.tgz,并构建 i.MX 8MM,Makefile 已为 rootfs.tar 定义目标,但是在 SETTINGS.MK 中缺少定义的${FS_TAR_SCRIPT} : FS_DIR=${PWD}/fs FS_TAR_DIR=${FS_DIR}/tar FS_TAR_SCRIPT=${FS_TAR_DIR}/rootfs.tar.gz.sh imx_builder 中可以提供所有子目录的完整 FS_DIR 和脚本吗? 丢失的: fs/tar fs/ubi fs/cpio 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 是否需要进行任何修改才能启用 imx8qxp 的安全启动?
查看全文
新的 KSDK 1.2 现已推出! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 今天刚刚发布了新的 KSDK 版本 1.2。和 KDS 3.0! 点击此处下载   欲了解更多详情,请访问我们的网站Kinetis MCU 软件开发套件|Freescale和Kinetis Design Studio 集成开发|Freescale   什么是新的   新增的芯片系列支持包括:   MK10D10 MK66F18 MKL34Z4 MK11DA5 MKL02Z4 MKL36Z4 MK20D10 MKL14Z4 MKL43Z4 MK21DA5 MKL15Z4 MKV40F15 MK21FA12 MKL16Z4 MKV43F15 MK26F18 MKL17Z4 MKV44F15 MK30D10 MKL17Z644 MKV45F15 MK40D10 MKL24Z4 MKV46F15 MK50D10 MKL25Z4 MKW01Z4 MK51D10 MKL26Z4 MKW21D5 MK52D10 MKL27Z4 MKW22D5 MK53D10 MKL27Z644 MKW24D5 MK65F18 MKL33Z4 MK24F12 MK63F12   新增的外设支持包括: AOI ENC FLEXBUS FLEXIO LMEM VREF XBAR PWM   文档   Kinetis SDK v.1.2.0 发行说明http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK120RN.pdf?fsrch=1 Kinetis SDK v.1.2API参考手册http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK12APIRM.pdf?fsrch=1 Kinetis SDK v.1.2演示应用用户指南http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK12DEMOUG.pdf?fsrch=1 Kinetis SDK (KSDK) v.1.2入门指南http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK12GSUG.pdf?fsrch=1 MQX ™ RTOS for Kinetis SDK 1.2.0 发行说明http://cache.freescale.com/files/soft_dev_tools/doc/support_info/MQXKSDK120RN.pdf?fsrch=1   将 MQX RTOS 应用程序移植到 Kinetis SDK 的 MQX RTOS http://www.freescale.com/files/soft_dev_tools/doc/support_info/MQXKSDKPUG.pdf   适用于 KDS 3.0。请不要忘记访问新推出的 Kinetis Design Studio V3.0.0   尽情享受! Iva 概述 回复:新的KSDK 1.2。可用! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, Wesley Hunter , 好文章-谢谢分享! 祝你今天过得愉快! Iva 回复:新的KSDK 1.2。可用! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这太棒了。我一直在等待这个,这样我就可以让 KSDK 在 Eclipse Luna 上运行。它终于来了,而且运行良好。如果有人感兴趣的话,我已经整理了一篇关于如何在 Eclipse Luna 上进行设置的博客:工具链:KSDK 1.2.0 搭配 Eclipse 4.4 (Luna) 和 GNU ARM 插件 | Centaurian
查看全文
DRM 屏幕捕获工具 这是DRM(Direct Render Manager)下的屏幕捕获工具。 这也是之前“drmfbcap”(DRM 帧缓冲区捕获)的修订版本。 与基于 FB 的系统不同,在基于 FB 的系统下我们可以通过读取设备节点轻松捕获帧缓冲区,而 DRM 则更加复杂且具有安全保护。没有直接从用户空间读取帧缓冲区数据的方法。 在DRM情况下,我们需要打开DRM设备,查询资源,获取并映射FB对象,然后最终读取缓冲区。 使用此工具,我们可以从 DRM 设备捕获缓冲区内容并将其输出为原始 RGB/YUV 数据。 特征: 捕获所有平面或特定平面,包括隐藏/覆盖的平面或由应用程序直接管理的平面(覆盖)。 支持 RGB 和 YUV(自动检测)。 还支持 Tile 格式(VSI Super-Tile)。 重复模式可以连续捕获帧。 该工具是作为静态链接构建的,在这种情况下,它应该可以在 Linux 和 Android 中运行。 重要提示: Linux 4.x 和 5.x/6.x 之间的 DRM 子系统行为不同。 对于 Linux 4.x ,您可以毫无问题地捕获 RGB 缓冲区。但是,没有针对 YUV(多平面)缓冲区的 API。 要捕获 YUV,请使用“kernel_0001-drm-Add-getfb2-ioctl_L4.14.98.patch”修补内核。 对于 Linux 5.x ,由于安全原因,默认不允许映射/捕获内部缓冲区。为了解决此暂时问题(仅用于调试),请使用“0001-drm-enable-mapping-of-internal-object-for-debugging_L5.x.patch”修补内核。它包含一个小的改变来移除这个保护。 两个补丁均包含在附件中。 要获取有关如何使用此工具的更多详细信息,请尝试使用“-h”选项来打印使用信息。 尽情享受! Android 图形与显示 Linux 回复:DRM 屏幕捕获工具 Hi @jagsgediya , 源代码中包含一些来自第三方的代码,因此,在检查更多许可证之前,我无法发布源代码。 你好@ChayMah , 是 回复:DRM 屏幕捕获工具 大家好, 我可以在内核 6.1 中使用该应用程序吗? 回复:DRM 屏幕捕获工具 您打算开源drmcap 的源代码吗?如果可以的话请告诉我。
查看全文