Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
例 MPC5748G PretendedNetworkingCAN S32DS_1.0 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 詳細説明: *アプリケーションは基本的な初期化を実行し、PLLを最大許容値に設定します *周波数 * * ※LPU_STOPへのモード遷移が実行されます。CAN_0 は、 * ウェイクアップとして標準IDE = 0のメッセージを使用してLPU_RUN LPU_STOP *事前に選択された一致条件。LPU_STOPからウェイクアップした後、ユーザーは ※LED1が点滅しています。   * * 変更されたファイル: mem.ld, sections.ld,startup.s、ファイルz2_restart.sを追加 * * * ------------------------------------------------------------------------------ *テストHW:MPC5748G-324DS、MPC574xGマザーボード ※MCU:PPC5748GMMN6A 1N81M * Fsys:PLL0 160MHz * Debugger:        Lauterbach Trace32 *                  PeMicro USB-ML-PPCNEXUS ※対象:internal_FLASH(デバッグモード、リリースモード) * EVB接続:デフォルト * * * ******************************************************************************** <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 詳細説明: *アプリケーションは基本的な初期化を実行し、PLLを最大許容値に設定します *周波数 * * ※LPU_STOPへのモード遷移が実行されます。CAN_0 は、 * ウェイクアップとして標準IDE = 0のメッセージを使用してLPU_RUN LPU_STOP *事前に選択された一致条件。LPU_STOPからウェイクアップした後、ユーザーは ※LED1が点滅しています。   * * 変更されたファイル: mem.ld, sections.ld,startup.s、ファイルz2_restart.sを追加 * * * ------------------------------------------------------------------------------ *テストHW:MPC5748G-324DS、MPC574xGマザーボード ※MCU:PPC5748GMMN6A 1N81M * Fsys:PLL0 160MHz * Debugger:        Lauterbach Trace32 *                  PeMicro USB-ML-PPCNEXUS ※対象:internal_FLASH(デバッグモード、リリースモード) * EVB接続:デフォルト * * * ******************************************************************************** 全般 Re: PretendedNetworkingCAN S32DS_1.0 の例 MPC5748G <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, U-multilinkを使用してこのコードをテストできますか?このツールを使用すると、適切にデバッグできません。
查看全文
PN7150 NFCリーダーとUDOO NEOデモ Overview ビデオ 必須項目 リンク Overview このデモでは、UDOO NEOカードとPN7150の開発キットを組み合わせてNFCリーダーをロードする方法を示します。 PN7150ARDキットは、Arduino互換インターフェースプラットフォームと互換性のある高性能の完全NFC準拠拡張ボードです。リーダーモード、P2Pモード、カードエミュレーションモードの各規格に準拠しています。このボードは、NFCデバイスとの高い相互運用性レベルを保証するために、高性能RFアンテナを内蔵しています。 ビデオ (マイビデオで視聴) 必須項目 UDOO NEO 少なくとも4GBまたは8GBのメモリサイズの互換性のあるMicroSDカード マイクロUSBケーブル UDOO Neo デモ画像ファイル PN7150 NFCコントローラボード リンク ステップバイステップガイド(すべてのリンクを含む):https://www.nxp.com/docs/en/application-note/AN11841.pdf  NXP製品 リンク PN7150プラグアンドプレイNFCコントローラー用開発キット Arduino用NFC開発キットなど |NXPの  モバイル
查看全文
Freescale i.MX6 DRAM端口应用指南-DDR3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 该论文的中文版已于7月份在《中国集成电路》杂志上发表。 请通过以下链接查看中文版本。 飞思卡尔i.MX6平台DRAM接口高阶应用指导-DDR3篇 i.MX6_全部
查看全文
Freescale i.MX6 DRAMポートアプリケーションガイド - DDR3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> この論文の中国語版は、China Integrated Circuit誌の7月に掲載されました。 中国語版は以下のリンクからご覧ください。 飞思卡尔i.MX6平台DRAM接口高阶应用指导-DDR3篇 i.MX6_All
查看全文
i.MX 6 D/Q/DL/S/SL Android jb4.3_1.1.1发布 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> i.MX 6 D/Q/DL/S/SL Android JB4.3_1.1.1补丁版本现已在www.freescale.com上发布 ·         目标硬件板 哦   i.MX6DL SABRE SD 板 哦   i.MX6Q SABRE SD 板 o   i.MX6DQ SABRE AI board 哦   i.MX6DL SABRE AI 板 哦   i.MX6SL EVK板 此补丁版本基于 i.MX 6 Android JB 4.3_1.1.0-GABSP 发布。 ·         发布说明 哦   升级 GPU 内核和库以提高 GPU 稳定性 哦   处理 Android SDK 构建失败 哦   改进FSL OMX 下表描述了此版本的内容。      版本 描述 补丁 包含此版本中的补丁。补丁在“补丁描述”中描述。 文档 包含以下文件: • i.MX 6 Android JB 4.3_1.1.1补丁发布说明:本文档。 ·         补丁说明 请查阅发行说明。 Android i.MX6_全部
查看全文
MPC5775K DCF配置器 详细描述:                 此配置工具简化了 MPC5775K 设备的 DCF 记录计算。                 查看HowToUse表以获取简单指南,然后使用DCF表                 说明: -必须启用宏!   BR, Petr
查看全文
Sigfox 基站框图 描述 特性 结构框图 产品 工具 描述 Sigfox 是一家成立于 2009 年的法国公司,致力于构建无线网络来连接物联网设备。他们最初的重点是水表等工业/专业应用。Sigfox 最近一直将其技术应用于智能手表和家庭警报器等消费应用。该应用程序的关键参数是要求连续且安全地交换少量数据。 无线基站是一种将其他设备相互连接和/或连接到更广阔区域的收发器。在这个特定的应用中,我们正在实现一个 Sigfox 基站。 特性 低功耗 安全 少量数据 安全传输少量数据 结构框图 产品 类别名称1: MCU 产品网址 1 Layerscape LS1012A 物联网通信处理器 | NXP 产品描述 1 QorIQ ® LS1012A 处理器针对电池供电或 USB 供电、空间受限的网络和物联网应用进行了优化。 类别名称2: 无线连接 产品网址 1 低功耗多通道UHF RF无线平台 | NXP 产品描述 1 OL2385 设备是一种带有嵌入式 MCU 的射频收发器,专为需要非常高的双向射频通信链路预算的各种工业和家庭应用而设计。 类别名称 3: 电源管理 产品网址 1 适用于 COMM 处理器的 VR5100 多输出 DC-DC | NXP 产品描述 1 VR5100 是一款高性能、多输出 DC-DC 稳压器,旨在为 LS1012A 和 LS1024A 等单核或双核 LS1 处理器供电。 类别名称 4: 外设 产品网址 1 逻辑控制高侧电源开关 | NXP 产品描述 1 NX5P2190是一款先进的电流限制可调型电源开关。 它包括欠压和过压锁定、过流、过温、反向偏置和浪涌电流保护电路。 产品网址 2  TJA1101 | 第二代 PHY 收发器 | NXP 产品描述 2 TJA1101 可通过至少 15 米的非屏蔽双绞线 (UTP) 电缆为每个端口提供 100Mbit/s 的发送和接收能力。 工具 产品 链接 OM2385/SF001 - OL2385无线sub-GHz收发器SIGFOX开发套件,带有KL43Z OM2385/SF001 - SIGFOX 开发套件 |恩智浦 Layerscape FRWY-LS1012A电路板 FRWY-LS1012A开发平台|恩智浦 KITVR5100FRDMEVM: VR5100电源管理集成电路评估套件 VR5100 电源管理集成电路评估套件 | NXP 框图 移动设备
查看全文
KW36 - 長い特性値の書き込みと読み取り はじめに Bluetooth LEのMTU(Maximum Transmission Unit)は、リモートデバイスに、ローカルがそのようなチャネルで処理できる最大バイト数を示す情報パラメータです。たとえば、KW36のATT_MTUは247バイトに固定されています。一部のアプリケーションでは、GATT データベースで長い特性を定義する必要があり、特性の長さがクライアントとサーバーの Bluetooth LE デバイスによってネゴシエートされた MTU を超える場合があります。このシナリオでは、Bluetooth LE 仕様で、対象の特性を書き込んだり読み取ったりする手順が定義されています。要約すると、それはで構成されています 特定のコマンドを使用して、同じ特性値に対して複数の書き込みと読み取りを実行します。「長特性値の書込み」手順では、これらのコマンドはATT_PREPARE_WRITE_REQおよびATT_EXECUTE_WRITE_REQされます。「長い特性値を読み取る」手順の場合、これらのコマンドはATT_READ_REQされ、ATT_READ_BLOB_REQされます。このドキュメントでは、クライアントデバイスとサーバーデバイスの観点から、長い特性値を書き込んだり読み取ったりする方法の例を紹介します。 特性値を書き込んだり読み取ったりする API 特性値の書込み GattClient_WriteCharacteristicValue API は、書き込み操作を実行するために使用されます。これは、GATT クライアント デバイスによって実装されます。  次の表では、入力パラメータについて説明します。 入力パラメータ 形容 deviceId_t deviceId ピア デバイスのデバイス ID。 gattCharacteristic_t * p特性 gattCharacteristic 構造体型へのポインター。この構造体には、"value.handle" の特性値の有効なハンドルが含まれている必要があります畑。書き込む特性値のハンドルは、通常、サービスディスカバリ手順の後に取得されます。 uint16_t値の長さ この値は、aValue が指す配列の長さを示します。 const uint8_t * aValue GATT データベースに書き込まれる値を含む配列へのポインター。 レスポンスのないbool_t true の場合、アプリケーションが "応答なしの書き込み" を実行すること、つまり、コマンドがATT_WRITE_CMDまたはATT_SIGNED_WRITE_CMDされるタイミングを意味します。 bool_t signedWrite withoutResponse と signedWrite の両方が true の場合、コマンドは ATT_SIGNED_WRITE_CMD になります。withoutResponse が false の場合、このパラメータは無視されます。 bool_t doReliableLongCharWrites アプリケーションが長い特性値を書き込む必要がある場合は、このフィールドを true に設定する必要があります。 const uint8_t * aCsrk withoutResponse と signedWrite の両方が true の場合、このポインターにはデータに署名するための CSRK が含まれている必要があります。それ以外の場合、このパラメータは無視されます。 特性値の読込 GattClient_ReadCharacteristicValue API は、読み取り操作を実行するために使用されます。これは、GATT クライアント デバイスによって実装されます。 次の表では、入力パラメータについて説明します。 入力パラメータ 形容 deviceId_t deviceId ピア デバイスのデバイス ID。 gattCharacteristic_t * pIoCharacteristic gattCharacteristic 構造体型へのポインター。この構造体には、"value.handle" の特性値の有効なハンドルが含まれている必要があります畑。書き込む特性値のハンドルは、通常、サービスディスカバリ手順の後に取得されます。同様に、"value.paValue"この構造体のフィールドは、ピアから読み取られた特性値を含む配列を指す必要があります。 unit16_t maxReadBytes 読み込む特性値の長さ。 この API は長い特性を処理するため、特別なパラメーターや構成について心配する必要はありません。 次のセクションでは、長い特性の書き込み方法と読み取り方法の機能的な例を示します。この例は、温度コレクターと温度センサー SDK の例に基づいています。この例では、GATT データベースでカスタム・サービスを作成する方法と、その特性を検出する方法も示しています。 Bluetooth LEサーバー(温度センサー) gatt_uuid128.h の変更 この例で使用する「カスタムサービス」の 128 ビット UUID を定義します。次のコードを追加します。 /* Custom service */ UUID128(uuid_service_custom, 0xE0, 0x1C, 0x4B, 0x5E, 0x1E, 0xEB, 0xA1, 0x5C, 0xEE, 0xF4, 0x5E, 0xBA, 0x00, 0x01, 0xFF, 0x01) UUID128(uuid_char_custom, 0xE0, 0x1C, 0x4B, 0x5E, 0x1E, 0xEB, 0xA1, 0x5C, 0xEE, 0xF4, 0x5E, 0xBA, 0x01, 0x01, 0xFF, 0x01)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ gatt_db.h の変更 この例では、私たちのサービスには1つの特性しかなく、書き込みまたは読み取りが可能で、可変長は400バイトに制限されています(KW36のATT_MTUは247バイトであるため、この長さでは、長い書き込みと読み取りが保証されます)。次のコードを追加します。 PRIMARY_SERVICE_UUID128(service_custom, uuid_service_custom) CHARACTERISTIC_UUID128(char_custom, uuid_char_custom, (gGattCharPropWrite_c | gGattCharPropRead_c)) VALUE_UUID128_VARLEN(value_custom, uuid_char_custom, (gPermissionFlagWritable_c | gPermissionFlagReadable_c), 400, 1)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ app_preinclude.h の変更 長い特性の書き込みと読み取りに関する最も重要な考慮事項の 1 つは、これに必要なメモリ割り当てです。現在の "AppPoolsDetails_c" 設定 ("_block_size_" と "_number_of_blocks_") をインクリメントする必要があります。「_block_size_」が4バイトに揃えられていることを確認してください。アプリケーションで機能する構成を見つけたら、MKW3xA/KW3xZアプリケーションノートのメモリプールオプティマイザーの手順に従って、メモリリソースを無駄にしない最適な構成を見つけてください。この例では、「AppPoolsDetails_c」を次のように構成します。 /* Defines pools by block size and number of blocks. Must be aligned to 4 bytes.*/ #define AppPoolsDetails_c \ _block_size_ 264 _number_of_blocks_ 8 _eol_‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ Bluetooth LEクライアント(温度コレクター) gatt_uuid128.h の変更 この例で使用する「カスタムサービス」の 128 ビット UUID を定義します。次のコードを追加します。 /* Custom service */ UUID128(uuid_service_custom, 0xE0, 0x1C, 0x4B, 0x5E, 0x1E, 0xEB, 0xA1, 0x5C, 0xEE, 0xF4, 0x5E, 0xBA, 0x00, 0x01, 0xFF, 0x01) UUID128(uuid_char_custom, 0xE0, 0x1C, 0x4B, 0x5E, 0x1E, 0xEB, 0xA1, 0x5C, 0xEE, 0xF4, 0x5E, 0xBA, 0x01, 0x01, 0xFF, 0x01)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ temperature_collector.c の変更点 1. 「プライベートタイプ定義」セクションで次の変数を定義します。 typedef struct customServiceConfig_tag { uint16_t hService; uint16_t hCharacteristic; } customServiceConfig_t; typedef struct appCustomInfo_tag { tmcConfig_t tempClientConfig; customServiceConfig_t customServiceClientConfig; }appCustomInfo_t; typedef enum { mCustomServiceWrite = 0, mCustomServiceRead }customServiceState_t;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 2. 「プライベートメモリ宣言」セクションで、400バイトの配列を2つ追加し、1つは送信用、もう1つはサーバーからデータを受信します。 /* Dummy array for custom service */ uint8_t mWriteDummyArray[400]; uint8_t mReadDummyArray[400];‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 3. 「プライベート関数プロトタイプ」セクションで新しい関数を定義し、特性値を書き込んだり読み取ったりします。 static void BleApp_SendReceiveCustomService (customServiceState_t state);‍‍‍‍ 4.「BleApp_Config」関数を見つけ、ここに次のコードを追加して、「mWriteDummyArray」に既知のパターンを埋めてから、カスタム特性を書き込みます。 static void BleApp_Config(void) { uint16_t fill_pattern; /* Fill pattern to write long characteristic */ for (fill_pattern = 0; fill_pattern<400; fill_pattern++) { mWriteDummyArray[fill_pattern] = (uint8_t)fill_pattern; } /* Configure as GAP Central */ BleConnManager_GapCommonConfig(); ... ... }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 5.「BleApp_StoreServiceHandles」機能を見つけます。この関数を変更して、カスタム・サービスをサービス・ディスカバリー・プロシージャーに含めます。これは、カスタム特性のハンドルが GattClient_WriteCharacteristicValue API と  GattClient_ReadCharacteristicValue API によって使用されるため、そのハンドルを保存するためです。  static void BleApp_StoreServiceHandles ( gattService_t *pService ) { uint8_t i,j; if ((pService->uuidType == gBleUuidType128_c) && FLib_MemCmp(pService->uuid.uuid128, uuid_service_temperature, 16)) { /* Found Temperature Service */ mPeerInformation.customInfo.tempClientConfig.hService = pService->startHandle; for (i = 0; i < pService->cNumCharacteristics; i++) { if ((pService->aCharacteristics[i].value.uuidType == gBleUuidType16_c) && (pService->aCharacteristics[i].value.uuid.uuid16 == gBleSig_Temperature_d)) { /* Found Temperature Char */ mPeerInformation.customInfo.tempClientConfig.hTemperature = pService->aCharacteristics[i].value.handle; for (j = 0; j < pService->aCharacteristics[i].cNumDescriptors; j++) { if (pService->aCharacteristics[i].aDescriptors[j].uuidType == gBleUuidType16_c) { switch (pService->aCharacteristics[i].aDescriptors[j].uuid.uuid16) { /* Found Temperature Char Presentation Format Descriptor */ case gBleSig_CharPresFormatDescriptor_d: { mPeerInformation.customInfo.tempClientConfig.hTempDesc = pService->aCharacteristics[i].aDescriptors[j].handle; break; } /* Found Temperature Char CCCD */ case gBleSig_CCCD_d: { mPeerInformation.customInfo.tempClientConfig.hTempCccd = pService->aCharacteristics[i].aDescriptors[j].handle; break; } default: ; /* No action required */ break; } } } } } } else if ((pService->uuidType == gBleUuidType128_c) && FLib_MemCmp(pService->uuid.uuid128, uuid_service_custom, 16)) { /* Found Custom Service */ mPeerInformation.customInfo.customServiceClientConfig.hService = pService->startHandle; if (pService->cNumCharacteristics > 0U && pService->aCharacteristics != NULL) { /* Found Custom Characteristic */ mPeerInformation.customInfo.customServiceClientConfig.hCharacteristic = pService->aCharacteristics[0].value.handle; } } else { ; } }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 6.以下に示すように「BleApp_SendReceiveCustomService」を開発します。この関数は、長い操作を使用してカスタム特性値を書き込んだり読み込んだりするために使用されます。この関数に注目して、 GattClient_WriteCharacteristicValue and GattClient_ReadCharacteristicValue APIを使用して長い特性値を書き込んだり読み取ったりする例を次に示します。「特性」構造体は、最後のAPIを使用する前に入力され、カスタム特性のハンドルとピアから読み取られた値を受け取る宛先アドレスが含まれていることに注意してください。 GattClient_WriteCharacteristicValue を使用した長い書き込みを許可するには、「doReliableLongCharWrites」フィールドをTRUEにする必要がある ことに注意してください 。 static void BleApp_SendReceiveCustomService (customServiceState_t state) { bleResult_t bleResult; gattCharacteristic_t characteristic; /* Verify if there is a valid peer */ if (gInvalidDeviceId_c != mPeerInformation.deviceId) { /* Fill the characteristic struct with a read destiny and the custom service handle */ characteristic.value.handle = mPeerInformation.customInfo.customServiceClientConfig.hCharacteristic; characteristic.value.paValue = &mReadDummyArray[0]; /* Try to write the custom characteristic value */ if(mCustomServiceWrite == state) { bleResult = GattClient_WriteCharacteristicValue(mPeerInformation.deviceId, &characteristic, (uint16_t)400, &mWriteDummyArray[0], FALSE, FALSE, TRUE, NULL); /* An error occurred while trying to write the custom characteristic value, disconnect */ if(gBleSuccess_c != bleResult) { (void)Gap_Disconnect(mPeerInformation.deviceId); } } /* Try to read the custom characteristic value */ else { bleResult = GattClient_ReadCharacteristicValue(mPeerInformation.deviceId, &characteristic, (uint16_t)400); /* An error occurred while trying to read the custom characteristic value, disconnect */ if(gBleSuccess_c != bleResult) { (void)Gap_Disconnect(mPeerInformation.deviceId); } } } }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 7. 「BleApp_GattClientCallback」を以下のように変更します。この関数では、入力パラメータ「state」に応じて特性を書き込んだり読み込んだりする「BleApp_SendReceiveCustomService」を実装しています。この例の想定される動作は、まず、mWriteDummyArray に含まれる 400 バイトのパターンをカスタム特性値に書き込み、その直後に温度サービスの特性記述子 (gGattProcWriteCharacteristicDescriptor_c イベントのこのコールバックによって示されます) を書き込むことです。書き込みが正常に実行されると、このコールバックでは「gGattProcWriteCharacteristicValue_c」イベントで示されるため、ここで関数を実行して特性値を読み取ることができます。次に、読み取りが完了すると「gGattProcReadCharacteristicValue_c」イベントがトリガーされ、ここでは、書き込まれた値とGATTサーバーから読み取られた値を比較し、両方が同じ場合は、緑色のRGB LEDが点灯し、長い特性が書き込まれ、正常に読み取られたことを示します。 static void BleApp_GattClientCallback( deviceId_t serverDeviceId, gattProcedureType_t procedureType, gattProcedureResult_t procedureResult, bleResult_t error ) { if (procedureResult == gGattProcError_c) { attErrorCode_t attError = (attErrorCode_t)(uint8_t)(error); if (attError == gAttErrCodeInsufficientEncryption_c || attError == gAttErrCodeInsufficientAuthorization_c || attError == gAttErrCodeInsufficientAuthentication_c) { /* Start Pairing Procedure */ (void)Gap_Pair(serverDeviceId, &gPairingParameters); } BleApp_StateMachineHandler(serverDeviceId, mAppEvt_GattProcError_c); } else { if (procedureResult == gGattProcSuccess_c) { switch(procedureType) { case gGattProcReadCharacteristicDescriptor_c: { if (mpCharProcBuffer != NULL) { /* Store the value of the descriptor */ BleApp_StoreDescValues(mpCharProcBuffer); } break; } case gGattProcWriteCharacteristicDescriptor_c: { /* Try to write to the custom service */ BleApp_SendReceiveCustomService(mCustomServiceWrite); } break; case gGattProcWriteCharacteristicValue_c: { /* If write to the custom service was completed, try to read the custom service */ BleApp_SendReceiveCustomService(mCustomServiceRead); } break; case gGattProcReadCharacteristicValue_c: { /* If read to the custom service was completed, compare write and read buffers */ if(FLib_MemCmp(&mWriteDummyArray[0], &mReadDummyArray[0], 400)) { Led3On(); } else { (void)Gap_Disconnect(mPeerInformation.deviceId); } } break; default: { ; /* No action required */ break; } } BleApp_StateMachineHandler(serverDeviceId, mAppEvt_GattProcComplete_c); } } /* Signal Service Discovery Module */ BleServDisc_SignalGattClientEvent(serverDeviceId, procedureType, procedureResult, error); }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ app_preinclude.h の変更 長い特性の書き込みと読み取りに関する最も重要な考慮事項の 1 つは、これに必要なメモリ割り当てです。現在の "AppPoolsDetails_c" 設定 ("_block_size_" と "_number_of_blocks_") をインクリメントする必要があります。「_block_size_」が4バイトに揃えられていることを確認してください。プールの現在の構成がアプリケーション要件を満たさない場合、「GattClient_WriteCharacteristicValue」または「GattClient_ReadCharacteristicValue 」の戻り値が「gBleOutOfMemory_c」ではなく「」である場合に知ることができますgBleSuccess_c」(その場合、デバイスは「temperature_collector.cの変更」のステップ6のコードに従ってピアから切断されます)。アプリケーションで機能する構成を見つけたら、 MKW3xA/KW3xZアプリケーションノートのメモリプールオプティマイザーの手順に従って、メモリリソースを無駄にしない最適な構成を見つけてください。この例では、「AppPoolsDetails_c」を次のように構成します。 /* Defines pools by block size and number of blocks. Must be aligned to 4 bytes.*/ #define AppPoolsDetails_c \ _block_size_ 112 _number_of_blocks_ 6 _eol_ \ _block_size_ 256 _number_of_blocks_ 3 _eol_ \ _block_size_ 280 _number_of_blocks_ 2 _eol_ \ _block_size_ 432 _number_of_blocks_ 1 _eol_‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ このトピックに関するご質問はお気軽にお問い合わせください。 BLEソフトウェア kW KW35 |36
查看全文
ビデオ - クラウド開発チュートリアル 6/6: リモート構成サポートの追加 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MQX用iDigiコネクタのチュートリアル6/6: リモート設定サポートの追加(6/6) - iDigi Device Cloud 詳細と無料ダウンロードは http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KINETIS_IDIGI_M2M
查看全文
LS2088ARDB - 如何在 QSPI NOR 闪存中部署 TF-A 二进制文件 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Cortex-A 可信固件 (TF-A) 是 EL3 安全固件的一个实现。TF-A 在安全固件中取代了 PPA 的角色。 在 LS2088ARDB 中,无法使用命令在并行 NOR 启动和 QSPI NOR 启动之间切换启动选项。可以通过调整参考设计板上的 DIP 开关设置和跳线设置来完成启动选项的切换。有关详细信息,请参阅Layerscape 软件开发套件用户指南。 要从 原有启动流程(含 PPA)迁移到 TF-A 启动流程,您需要编译 TF-A 二进制文件 bl2_. pbl 和 fip.bin ,然后将这些二进制文件烧录至开发板上的特定启动介质上。 对于 QSPI NOR 闪存启动,您需要编译以下 TF-A 二进制文件。 TF-A 二进制名称 组件 bl2_qspi.pbl BL2 二进制:平台初始化二进制 用于 QSPI NOR 闪存的 RCW 二进制文件 fip.bin BL31:安全运行时固件 BL32:可信操作系统,例如OPTEE(可选) BL33:U-Boot/UEFI 镜像 按照以下步骤编译和部署 TF-A 二进制文件( bl2_qspi.pbl 和 QSPI NOR 闪存中的 文件 (.fip.bin) 是 用于将文件复制到 QSPI NOR 闪存的程序包中 编译 RCW 二进制文件 编译 U-Boot 二进制文件 [可选] 编译 OPTEE 二进制文件 编译 TF-A 二进制文件 ( bl2_qspi.pbl和fip.bin)用于 QSPI NOR 闪存 将 TF-A 二进制文件编程到 QSPI NOR 闪存 步骤 1:编译 RCW 二进制文件 您需要编译rcw_2000_qspi.bin 用于构建bl2_qspi.pbl 的二进制文件二进制。 克隆rcw存储库并编译 PBL 二进制文件。  $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/rcw $ cd rcw $ git checkout -b 。 例如, $ git checkout -b LSDK-19.09 LSDK-19.09 $ cd ls2088ardb 如果需要,请对 rcw 文件进行更改。 $ make LS2088ARDB 上 QSPI NOR 闪存的已编译 PBL 二进制文件rcw_2000_qspi.bin可在rcw/ls2088ardb/FFFFFFFF_PP_HH_0x2a_0x41中找到 有关包含 RCW 源文件和二进制文件的目录的命名约定的说明,请参阅rcw/ls2088ardb/README文件。 步骤 2:编译 U-Boot 二进制文件 你需要编译u-boot.bin构建fip.bin 的二进制文件二进制。 克隆u-boot 存储库并为 TF-A 编译 U-Boot 二进制文件。 $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git $ cd u-boot $ git checkout -b LSDK-. 例如, $ git checkout -b LSDK-19.09 LSDK-19.09 $ 导出ARCH=arm64 $ 导出 CROSS_COMPILE= aarch64-linux-gnu- $ make distclean $ make ls2088ardb_tfa_defconfig $ make 如果make命令显示错误 “*** 您的 GCC 版本早于 6.0 且不受支持” ,请确保您使用 Ubuntu 18.04 64 位版本来构建 LSDK 18.12 及更高版本的 U-Boot 二进制文件。 已编译的 U-Boot 映像u-boot .bin可在以下位置获取 u-boot / 。 步骤 3:[可选]编译 OP-TEE 二进制文件 您需要编译 tee.bin 二进制文件,以构建含 OPTEE 的fip.bin 。然而,OPTEE 是可选组件,您可以跳过编译 OPTEE 的步骤,如果您希望构建不包含 OPTEE 的 FIP 二进制文件。 克隆 optee_os 代码库并构建 OPTEE 二进制文件。 $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/optee_os $ cd optee_os $ git checkout -b LSDK- 。 例如, $ git checkout -b LSDK-19.09 LSDK-19.09 $ export ARCH=arm $ export CROSS_COMPILE=aarch64-linux-gnu- $ make CFG_ARM64_core=y 平台=ls-ls2088ardb $ aarch64-linux-gnu-objcopy -v -O binary out/arm-plat-ls/core/tee.elf out/arm-plat-ls/core/tee.bin 编译生成的 OPTEE 镜像 tee.bin,位于optee_os/out/arm-plat-ls/core/。 步骤 4:为 QSPI NOR 闪存编译 TF-A 二进制文件 克隆 atf 存储库并编译 TF-A 二进制 文件 bl2_qspi.pbl 和 fip.bin 。 $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/atf $ cd atf $ git checkout -b LSDK-. 例如, $ git checkout -b LSDK-19.09 LSDK-19.09 $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- Build BL2 binary with OPTEE. $ make PLAT=ls2088ardb bl2 SPD=opteed BOOT_MODE=qspi BL32= / tee.bin pbl RCW= /rcw_2000_qspi.bin 已编译的 BL2 二进制文件bl2.bin和bl2_qspi.pbl可在atf/build/ls2088ardb/release/处找到。 对于 BL2 源代码或 RCW 二进制文件的任何更新,都需要重新编译bl2_qspi.pbl二进制文件。 在没有OPTEE的情况下编译BL2二进制文件: make PLAT=ls2088ardb bl2 BOOT_MODE=qspi pbl RCW= /rcw_2000_qspi.bin               使用OPTEE构建FIP二进制文件 ,无需可信板启动。 $ make PLAT=ls2088ardb fip BL33= / u-boot.bin SPD=opteed BL32= / tee.bin 已编译的 BL31 和 FIP 二进制文件bl31.bin 、 fip .bin可在atf/build/ls2088ardb/release/处找到。 对于 BL31、BL32 或 BL33 二进制文件的任何更新,需要重新编译 fip.bin二进制文件。 要编译不包含OPTEE且不依赖可信板启动的FIP 二进制文件: make PLAT=ls2088ardb fip BOOT_MODE=sd BL33= /u-boot.bin 要使用可信板启动编译 FIP 二进制文件,请参阅 readme /plat/nxp/README.TRUSTED_BOOT 步骤 5:将 TF-A 二进制文件编程到 QSPI NOR 闪存 引导 LS2088ARDB从 QSPI 启动。确保已设置开关和跳线,以便从 QSPI 启动开发板。 QSPI: SW5[1:8] = 1111 1111 SW3[1:8] = 0011 0001 SW4[1:8] = 0011 1111 SW6[1:8] = 1111 1111 SW7[1:8] = 0100 1010 SW9[1:8] = 0100 0100 SW8[1:8] = 0111 1111 除了上述开关设置之外,还要确保以下跳线设置正确(适用于 RDB Rev E 及更高版本)。 J8 = 1-2 用于 QSPI 启动,通过板载 QSPI 闪存 J8 = 2-3 用于 QSPI 启动,通过 QSPI 仿真器 J14 = 2-3,用于 QSPI 启动 对于 LS2088ARDB,在启动日志中,您将看到: 主板:LS2088AE Rev1.1-RDB,主板架构:V0,主板版本:A,从 vBank 启动:0 TF-A 二进制文件可以从 TFTP 服务器或大容量存储设备(SD、USB 或 SATA)加载到 LS2088ARDB。 选项 1:从 TFTP 服务器加载 TF-A 二进制文件 设置以太网连接 主板启动后,U-Boot 会打印出已启用的以太网接口列表。 DPMAC1@xgmii, DPMAC2@xgmii, DPMAC3@xgmii, DPMAC4@xgmii, DPMAC5@xgmii, DPMAC6@xgmii, DPMAC7@xgmii, DPMAC8@xgmii 将服务器 IP 地址设置为您已配置 TFTP 服务器的主机的 IP 地址。 => setenv serverip 将ethact和ethprime设置为连接到 TFTP 服务器的以太网接口。 看 LS2088ARDB以太网端口映射 用于将机箱前面板上显示的以太网端口名称与 U-Boot 和 Linux 中的端口名称进行映射。 => setenv ethprime 例如: => setenv ethprime DPMAC3@xgmii => setenv ethact 例如: => setenv ethact DPMAC3@xgmii 设置板子的IP地址。您可以设置静态 IP 地址,或者,如果主板可以连接到 DHCP 服务器,则可以使用 DHCP 命令。 静态 IP 地址分配: => setenv ipaddr => setenv netmask => setenv gatewayip 动态 IP 地址分配: => dhcp 保存设置。 =>  saveenv 检查电路板与 TFTP 服务器之间的连接。 => ping $serverip 使用DPMAC3@xgmii设备 主机 192.168.1.1 是活跃的。 从TFTP服务器加载TF-A二进制文件 有关 TF-A 二进制文件的闪存映像布局的详细信息,请参阅TF-A 启动流程的 LSDK 内存布局。 编程 QSPI NOR 闪存: => sf 探针 0:0 Flash bl2_qspi.pbl: => tftp 0xa0000000 bl2_qspi.pbl => sf 擦除 0x0 +$filesize && sf 写入 0xa0000000 0x0 $filesize  Flash fip.bin: => tftp 0xa0000000 fip.bin => sf 擦除 0x100000 +$filesize && sf 写入 0xa0000000 0x100000 $filesize 从QSPI NOR 闪存启动: =>重置 LS2088ARDB 将使用 TF-A 启动。在启动日志中,您将看到: => NOTICE: UDIMM 18ASF1G72AZ-2G3B1 注意:16 GB DDR4,64 位,CL=15,ECC 开启,256B,CS0+CS1 注意:UDIMM 18ASF1G72AZ-2G3B1 注意:4 GB DDR4,32 位,CL=11,ECC 开启,CS0+CS1 注意:BL2:v1.5(发布):LSDK-19.09 通知:BL2:建造时间:2019年11月11日 15:19:13 注意:BL31:v1.5(发布):LSDK-19.09 通知:BL31:建造时间:2019年11月11日 15:21:14 通知:欢迎来到 LS2088 BL31 阶段 U-Boot 2019.04(2019年11月11日 - 15:12:53 +0530) SoC:LS2088AE Rev1.1(0x87090011) 时钟配置: CPU0(A72):2000 MHz CPU1(A72):2000 MHz CPU2(A72):2000 MHz CPU3(A72):2000 MHz CPU4(A72):2000 MHz CPU5(A72):2000 MHz CPU6(A72):2000 MHz CPU7(A72):2000 MHz 总线:800 MHz DDR:2133.333 MT/s DP-DDR:1600 MT/s 复位配置字(RCW): 00000000: 503040c0 50500050 00000000 00000000 00000010: 00000000 00000000 00a00000 00000000 00000020: 01e01180 00002581 00000000 00000000 00000030: 00400c0b 00000000 00000000 00000000 00000040: 00000000 00000000 00000000 00000000 00000050: 00000000 00000000 00000000 00000000 00000060: 00000000 00000000 00027000 00000000 00000070: 412a0000 00040000 型号:Freescale Layerscape 2080a RDB Board 主板:LS2088AE Rev1.1-RDB,主板架构:V0,主板版本:A,从 vBank 启动:0 选项二:从大容量存储设备(SD 卡、USB 设备或 SATA 硬盘)的分区加载图像 选择要使用的大容量存储设备。 => mmc rescan => mmc 信息 或者 => usb start => usb info 或者 => scsi scan => scsi info 可选 – 列出存储设备上的文件 => ls mmc 例如: => ls mmc 0:2 或者 => ls usb 例如: => ls usb 0:1 或者 => ls scsi 例如: => ls scsi 0:2 如果 ls 命令运行失败,请在 U-Boot 提示符下输入 ls,检查 QSPI NOR 闪存中的 U-Boot 是否支持该命令: => ls ls - 列出目录中的文件(默认) 用法: ls [ [目录]] - 列出设备类型 [interface] 和实例 [dev] 上分区 [part] 的目录 [directory] 中的文件。 如果 U-Boot 不支持此命令,则更新 QSPI NOR 闪存中的复合固件映像。 有关更新 QSPI NOR 闪存中的复合固件映像的步骤,请参阅 Layerscape 软件开发套件用户指南 。 如果使用 LSDK flex-installer 命令格式化/创建 SD 卡,请使用以下命令: => 加载 [ [ [ [字节数 [位置]]]]] 例如: =>加载 mmc 0:2 $load_addr bl2_qspi.pbl 如果 SD 卡是在 Windows PC 上格式化/创建的,请使用以下命令: => fatload [ [ [ [字节数 [位置]]]]] 例如: =>胖加载 mmc 0:2 $load_addr bl2_qspi.pbl 如果 SD 卡是在 Linux PC 上格式化/创建的,请使用以下命令: => ext2load [ [ [ [字节数 [位置]]]]] 例如: => ext2load mmc 0:2 $load_addr bl2_qspi.pbl 还要注意,LSDK flex-installer 命令将图像放在 IInd 分区上,因此在加载命令中使用 0:2。如果 SD 卡在 Windows PC 或 Linux PC 上仅格式化为单个分区,则在 fatload/ext2load 命令中应使用 0 而不是 0:2。 加载 bl2_qspi.pbl来自存储设备的图像 => load mmc 0:2 0xa0000000  => 打印文件大小 例如: => load mmc 0:2 0xa0000000 bl2_qspi.pbl => 打印文件大小 文件大小=14379 或者 => load usb 0:2 0xa0000000  => 打印文件大小 或者 => load scsi 0:2 0xa0000000  => 打印文件大小 程序 bl2_qspi.pbl 到 QSPI NOR 闪存: => sf 擦除 0x0 +$filesize && sf 写入 0xa0000000 0x0 $filesize  加载fip.bin 来自存储设备的图像 => load mmc 0:2 0xa0000000  => 打印文件大小 例如: => load mmc 0:2 0xa0000000 fip.bin => 打印文件大小 文件大小=131510 或者 => load usb 0:2 0xa0000000 => 打印文件大小 或者 => load scsi 0:2 0xa0000000  => 打印文件大小 程序 fip.bin到QSPI NOR 闪存: => sf 擦除 0x100000 +$filesize && sf 写入 0xa0000000 0x100000 $filesize 从QSPI NOR 闪存启动: => 重置 LS2088ARDB 将使用 TF-A 启动。 QorIQ LS1设备
查看全文
MAC57D5xxに基づく車載インストルメントクラスターソリューション <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 最新のデュアルコアARMベースのインストルメントクラスターソリューションの機能を見て、WVGA TFTディスプレイにプレミアム品質のグラフィックスを備えたハイエンドクラスターを表示します。     顔立ち デュアルコアのARMベースのインストルメントクラスターソリューションで、WVGA TFTディスプレイにプレミアム品質のグラフィックスを備えたハイエンドクラスターを表示します。 GPU搭載インストルメントクラスタ制御32ビットマイコン、2Dグラフィックスプロセッシングユニット(ラスタ演算、ベクタ演算付) リンク MAC57D5xx:インストルメントクラスタ用車載DISマイコン ブロック図   オートモーティブ
查看全文
i.MX 8QM MEK - IMX-AUD-IO - Audio out <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 关于在 i.MX 8QuadMax MEK 开发板上使用 4.19.35-1.1.0 进行音频测试的简要说明BSP。 硬件: - 将 MCIMX8QM-CPU 连接到 MCIMX8-8X-BB。 - 将 IMX-AUD-IO 连接到MCIMX8-8X-BB 上的音频插槽 1。 - MCIMX8-8X -BB上的 J47 上的 2 和 3 短路 - 将外部有源扬声器连接到IMX-AUD-IO上的 RCA 连接器 Audio OUT FR 和/或 Audio OUT FL - 可选地,将耳机连接到 MCIMX8QM-CPU 上的 J15 测试: 给板上电。 aplay -l 显示可用的音频接口。 root@imx8qmmek:~# aplay -l **** 播放硬件设备列表 **** 卡 0:cs42888audio [cs42888-audio],设备 0:HiFi cs42888-0 [] 子设备:1/1 子设备#0:子设备#0 卡 0:cs42888audio [cs42888-audio],设备 1:HiFi-ASRC-FE (*) [] 子设备:1/1 子设备#0:子设备#0 卡 1:wm8960audio [wm8960-audio],设备 0:HiFi wm8960-hifi-0 [] 子设备:1/1 子设备#0:子设备#0 卡 2:imxaudmix [imx-audmix],设备 0:HiFi-AUDMIX-FE (*) [] 子设备:1/1 子设备#0:子设备#0 卡 2:imxaudmix [imx-audmix],设备 1:HiFi-AUDMIX-FE (*) [] 子设备:1/1 子设备#0:子设备#0 通过 cs42888 在有源扬声器上播放文件: root@imx8qmmek:~# aplay -Dhw:0,0 test.wav 播放WAVE‘test.wav ’:有符号 16 位 Little Endian,速率 48000 Hz,立体声 通过wm8960在耳机上播放文件: root@imx8qmmek:~# aplay -Dhw:1,0 test.wav i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus
查看全文
AD/ADAS Overview <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本次会议将介绍高级驾驶辅助系统 (ADAS) 和自动驾驶背后的市场和技术趋势,并介绍恩智浦提供的一些解决方案,使未来的汽车能够感知、思考和行动。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本次会议将介绍高级驾驶辅助系统 (ADAS) 和自动驾驶背后的市场和技术趋势,并介绍恩智浦提供的一些解决方案,使未来的汽车能够感知、思考和行动。
查看全文
增强功能-5G + ARM 边缘服务器 图表 恩智浦产品 Overview   5G时代将给无线行业带来变革,也为最终用户带来新的利益。其中一个变化是对网络基础设施功能进行新的划分,将曾经单一的基站分为三个部分:无线电单元(RU)、分布式单元(DU)和集中式单元(CU)。DU 与一个或多个 RU 关联,执行上层 PHY 和媒体访问功能。它兼具标准 Linux 计算机和实时系统的特点,可以在现场部署。 NXP 在 2020 年消费电子展上展示了一个可运行的 5G 系统,其中包括一个 DU,重点介绍了 Layerscape LX2160A 处理器如何满足这些要求。这款 16 核设备集成了多个高速 PCI Express 接口和运行速度高达 100Gbps 的以太网端口,在节能的封装内提供所需的计算性能和 I/O。NXP 还展示了其 Layerscape Access 可编程基带处理器如何帮助实现客户端、小型基站、中继器、家庭无线链路和 CU 系统加速器的固定无线接入设计。这些可编程设备可帮助移动运营商快速部署开放无线接入网络。NXP 拥有从天线到处理器的解决方案。 图表   恩智浦产品 产品名称 QorIQ LX2160A开发板 | 恩智浦 QorIQ ® LS2088A开发板 | 恩智浦 通信基础设施 工业控制
查看全文
QorIQ L2-7 SDN 交换机 - 将 OpenFlow 扩展至第 7 层处理 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 该演示基于 Centec Networks 屡获殊荣的 V350 架顶式 (ToR) SDN 白盒交换机,该交换机配备 QorIQ 主机处理器。该主机处理器的作用超越了 OpenFlow v1.3 代理,以支持 OpenFlow 可编程范例内的 L4-7 处理。     特征 L2-7 SDN 交换机 - 将 OpenFlow ™扩展至第 7 层处理 基于 QorIQ 平台的 OpenFlow Agent + L4-7 处理 Centec 网络支持 Open vSwitch (OVS) 卸载到架顶式交换机 机架顶部 OVS 卸载提供更好的可扩展性、效率和可靠性 特色恩智浦产品 P1010 T2081 链接 SDN     通信基础设施
查看全文
S32K时钟机制与配置 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 首先让我们看一下时钟树: 核心时钟高达112M,总线时钟高达56M,Flash时钟高达28M。 时钟来源:系统OSC、慢速IRC、快速IRC和系统PLL 1. OSC SCG_SOSCCFG 2. PLL配置 公式: SPLL_CLK = (VCO_CLK)/2 VCO_CLK = SOSC_CLK/(PREDIV + 1) *(MULT + 16) 3. SCG_SPLLCSR 无效SystemClockInit(无效) { SCG->SOSCCFG = 0x3C; SCG->SOSCCSR |= 1<<0; /* SOSCEN=1 启用 SOSC 时钟 */ /*等待时钟激活*/ while((SCG->SOSCCSR & SCG_SOSCCSR_SOSCVLD_MASK) == 0); SCG->SPLLCSR &= ~(0x1<<0) ; /* SPLLEN=0: 禁用 PLL*/ SCG->SPLLCFG &= ~(0x7<<8); /* 预测=0: 1 */ SCG->SPLLCFG |= 0xCU<<16; /* MULT=12: 28 PLL VCO = 8/1*(12+16) = 224M */ SCG->SPLLCSR |= 0x1<<0; /* SPLLEN=1: 启用 PLL */ /*等待PLL激活*/ while((SCG->SPLLCSR & SCG_SPLLCSR_SPLLVLD_MASK) == 0); SCG->RCCR |= SCG_RCCR_DIVCORE(0); /* DIVCORE=0: 1,CORE/SYS_CLK 112MHz */ SCG->RCCR |= SCG_RCCR_DIVBUS(1); /* DIVBUS=1: 2, BUS_CLK 56MHz */ SCG->RCCR |= SCG_RCCR_DIVSLOW(3); /* DIVSLOW=2: 4 FLASH_CLK 为 28MHz */ SCG->RCCR &= 0xFEFFFFFF; /* 初始设置为 SIRC,以便 LSB 可以设置为“0” */ SCG->RCCR |= SCG_RCCR_SCS(6); /* SCS=6: 系统时钟系统 PLL */ }
查看全文
方法 : KDS で新しい MQX RTOS for KSDK プロジェクトを作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 皆さん、こんにちは。 KDS3.0およびKSDK1.2を使用して、このガイド の更新 バージョンを添付してください。MQXプロジェクト用の新規プロジェクトウィザードはないため、手動で作成する必要があります。これらのガイドでは、それを行うための2つの異なる方法について説明します。 以前のバージョンではご不便と混乱を招き、大変申し訳ございません。 RTOS(ベアボード)を使用しない新しいKSDKプロジェクトの作成については、次のドキュメントを参照してください。 初めてのKSDK1.2を書くKDS3.0 でのアプリケーション - Hello World と GPIO 割り込み付きトグル LED 従来のMQX RTOSプロジェクトをMQX RTOS for KSDKプロジェクトに移植する方法については、以下のドキュメントを参照してください。 http://www.freescale.com/files/soft_dev_tools/doc/support_info/MQXKSDKPUG.pdf?fsrch=1 MQX for KSDK1.2 での新規 C++ プロジェクトの作成については、以下を参照してください。以下のドキュメントをご覧ください。 MQX RTOS for KSDK1.2を使用したC++プロジェクトの作成方法 FreeRTOS と KSDK1.2 の使用開始方法については、次のドキュメントを参照してください。 方法: KSDS1.2 用の新しい FreeRTOS を作成するKDS3.0 のプロジェクト よろしくお願いいたします。 Carlos Musich テクニカルサポートエンジニア Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Carlos, ありがとうございました。最初の解決策は、何もないよりはましでした - 私のフラストレーションを示したことをお詫びします。時間があるときにウィザードと更新された提案を試してみます。私は近づいてきましたが、いずれにせよMQXについてもっと学ぶ必要があります。 私はできる限りの解決策を試しており、ここにバックアップして役立つものを投稿します。 よろしくお願いします Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Turboman, ここでは、プロジェクト生成ツールをダウンロードできます。まだベータ版であることに注意してください。 www.freescale.com/files/soft_dev_tools/software/app_software/application_development_framework/KSDK-Project-Generator.zip 次のドキュメントも興味深いかもしれません: KDS3.0 プロジェクトに lwIP を追加する方法 よろしくお願いします。 カルロス Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> もどかしい!とても近いのに、まだ落とし穴があります。 新しいプロジェクトのpdfは、セクション2.8で「これで新しいプロジェクトは完全に自己依存し、実行する準備ができました」と書かれています。 悪い。 新しいプロジェクトは、元のプロジェクトと同じ ファイル を参照します。 仮想フォルダ (main.c) に新しい物理ファイルを作成できません。だから、私は半分修正されたデモ/サンプルコードで、どうにかして最初からやり直す必要があります。 KDS 用の新しい MQX プロジェクト・ウィザードはいつ利用可能になりますか? 私が新製品を作っていて、LWIP K64F pingデモで必要なものにかなり近いものを手に入れたと想像してみてください。デモを変更するだけですか?それとも、新しいプロジェクトを最初から作成しますか? Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 心配ありません Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私はそれを見逃しました。それは恥ずかしいことです。 どうもありがとうございます。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> A:ステップ3.5で、仮想フォルダ構造が手動で再作成されることを示しています。 ステップ3.6では、フォルダを削除する必要があるProject_Settingsが示されています。 最後に、プロジェクトはデモのコピーと同じように見える必要があります。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ドキュメントのセクション 3 の手順に従ってプロジェクトを最初からビルドしようとすると、サンプル プロジェクトとは大幅に異なる結果が得られます。新しいプロジェクト ウィザードは、サンプル プロジェクトにないサブディレクトリ "Startup_Code" を持つディレクトリ "Project_Settings" を作成します。このディレクトリ内のファイルは、-nostartfiles リンカ・スイッチが設定されている場合でも、リンカ・コマンドに含まれます。その結果、ベクタ テーブルは MQX ライブラリからではなく、これらのファイルから入力され、プロジェクトは MQX を開始しません。 MQXプロジェクトをゼロから構築するための手順は廃止されていますか? デモからコピーするのではなく、ゼロからビルドされたサンプル プロジェクトはありますか? Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 万が一の参考までに、Kinetis SDKのMQX RTOSへの移植に関する詳細を掲載した新しいガイドをご用意しました。これには、RTCS ライブラリと MFS ライブラリをプロジェクトに追加するためのパスと設定が含まれています。 方法: MQX RTOS v4.x から MQX RTOS for KSDK v1.2 への移植 感謝 マック Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 追加の注意点: RTCSライブラリを追加し、そのディレクトリをインクルードした後、最初にPLATFORM_SDK_ENABLED=1をコンパイラプリプロセッサに追加する必要があることがわかりました(インクルードディレクトリとlibの場所も同様に。しかし、それについては後で詳しく説明します)。 その後、__aeabi_d2izが未定義で、libmにあるというエラーが発生しました。この投稿(__aeabi_d2iz )に基づいて、リンカライブラリでは、libmがlibgccにあるものを参照しているため、 gcc は mの後に配置する必要があることがわかりました。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> コメントありがとうございます、私はそれを修正します。見えない柱には気づきませんでした。 また、環境変数やその他のライブラリを追加するためのガイドラインも含めます。 スペースがない限り、パスに引用符を追加する必要はありません。 よろしくお願いします。 カルロス Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> まずは朗報です。 この新しいガイドと新しいツールは機能します!いくつかの基本的なテストのプロジェクトでは、前のプロジェクトのような割り込み検出の問題なしに実行できます。また、問題なくコンパイルするために必要なすべてのインクルード、プリプロセッサ設定、およびリンカ コマンドもリストされています。 中途半端なニュース: ここにRTCS / MFS / ETCを含めることについてはまだ言及されていませんが、一般的な方法の概要を説明しているので、自分でそれを行うことができます。翌日か翌々日には、私が知っているコンポーネントを追加する方法を示すコメントをここに書くかもしれません。 また、相対パスの代わりに絶対パスを使用するという決定は、私のKSDKがC:/にインストールされていないため、少し面倒でした。しかし、KSDK 1.2 は KSDK_PATH 環境変数自体も書き込まないので、相対パスを適切に使用するために手動で書き出す必要がありました。 凶報: PDFのフォーマットは、コードの一部をコピーして貼り付けるのにひどいです。インクルードディレクトリには非表示の列があり、ディレクトリをコピーしてチャンクに貼り付け、一部の部分が繰り返されます。私はそれらの多くを自分で修正しなければなりませんでした。 他の人を助けるために、ここに固定フォーマットのものの一部を貼り付けます。注: また、「変数の構築」で定義されたPROJECT_KSDK_PATH変数を使用して相対パスに切り替えました。私はそれらをコードフォーマットで配置したかったのですが、新しいコミュニティサイト投稿ツールでオプションを見つけることができません。 3.9a 物理フォルダ "../BSP_Files" "../Config_Files" "../Config_Files/common」と入力します。 "../Debug_Console" "../KSDK_Files" "${PROJECT_KSDK_PATH}\rtos\mqx\mqx\source\include" 「${PROJECT_KSDK_PATH}\platform\devices\MK64F12\startup」 「${PROJECT_KSDK_PATH}\platform\devices\MK64F12\include」 「${PROJECT_KSDK_PATH}\platform」 「${PROJECT_KSDK_PATH}\platform\devices」 "${PROJECT_KSDK_PATH}\platform\CMSIS\Include" 「${PROJECT_KSDK_PATH}\platform\hal\inc」 "${PROJECT_KSDK_PATH}\platform\drivers\inc" 「${PROJECT_KSDK_PATH}\platform\drivers\src\mpu」 "${PROJECT_KSDK_PATH}\platform\drivers\src\uart" 「${PROJECT_KSDK_PATH}\platform\utilities\inc」 「${PROJECT_KSDK_PATH}\platform\osa\inc」 「${PROJECT_KSDK_PATH}\platform\system\inc」 「${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\config」 "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx" "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx_stdlib" 3.9b 仮想フォルダ "${PROJECT_KSDK_PATH}\rtos\mqx\config\mcu\MK64F12" "${PROJECT_KSDK_PATH}\rtos\mqx\config\board\frdmk64f" "${PROJECT_KSDK_PATH}\rtos\mqx\config\common" "${PROJECT_KSDK_PATH}\rtos\mqx\mqx\source\include" "${PROJECT_KSDK_PATH}\rtos\mqx\mqx\source\bsp" 「${PROJECT_KSDK_PATH}\platform\utilities\src」 「${PROJECT_KSDK_PATH}\platform\utilities\inc」 「${PROJECT_KSDK_PATH}\examples\frdmk64f」 「${PROJECT_KSDK_PATH}\platform\devices\MK64F12\startup」 「${PROJECT_KSDK_PATH}\platform\devices\MK64F12\include」 「${PROJECT_KSDK_PATH}\platform」 「${PROJECT_KSDK_PATH}\platform\devices」 "${PROJECT_KSDK_PATH}\platform\CMSIS\Include" 「${PROJECT_KSDK_PATH}\platform\hal\inc」 "${PROJECT_KSDK_PATH}\platform\drivers\inc" 「${PROJECT_KSDK_PATH}\platform\drivers\src\mpu」 "${PROJECT_KSDK_PATH}\platform\drivers\src\uart" 「${PROJECT_KSDK_PATH}\platform\utilities\inc」 「${PROJECT_KSDK_PATH}\platform\osa\inc」 「${PROJECT_KSDK_PATH}\platform\system\inc」 「${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\config」 "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx" "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx_stdlib" 3.11 リンクライブラリパス ksdk_platform_mqx _mqx_stdlib _mqx gcc c SUPC ++の m ノシス 「${PROJECT_KSDK_PATH}\lib\ksdk_mqx_lib\kds\K64F12\debug」 "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx_stdlib" "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx" 3.12 ライブラリのフルパス "${PROJECT_KSDK_PATH}\lib\ksdk_mqx_lib\kds\K64F12\debug\libksdk_platform_mqx.a" "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx_stdlib\lib_mqx_stdlib.a" "${PROJECT_KSDK_PATH}\rtos\mqx\lib\frdmk64f.kds\debug\mqx\lib_mqx.a" 3.18 -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --undefined=__isr_vector -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200 3.19 #include #include #include /* タスクID */ #define HELLO_TASK 5 #define WORLD_TASK 6 extern void hello_task(uint32_t); エクスターンボイドworld_task(uint32_t); 定数 TASK_TEMPLATE_STRUCT MQX_template_list[] = { /* タスクインデックス、関数、スタック、優先度、名前、属性、パラメータ、タイムスライス */   {WORLD_TASK, world_task, 700, 9, "world", MQX_AUTO_START_TASK, 0, 0},   {HELLO_TASK, hello_task, 700, 8, "hello", 0, 0, 0},   {0} }; /*タスク*-----------------------------------------------------* * タスク名 : world_task *コメント: ※このタスクでは、hello_taskを作成してから「ワールド」を印刷します。 * *END*-----------------------------------------------------*/ ボイドworld_task(uint32_t initial_data) {   _task_id hello_task_id; hello_task_id = _task_create(0, HELLO_TASK, 0); if(hello_task_id == MQX_NULL_TASK_ID)   { printf("\n hello_taskを作成できませんでした\n");   }   else   { printf(" ワールド \n");   } _task_block(); } /*タスク*-----------------------------------------------------* * タスク名 : hello_task *コメント: * このタスクは「Hello」を出力します。 * *END*-----------------------------------------------------*/ void hello_task(uint32_t initial_data) {   printf("\n Hello\n"); _task_block(); } /* EOF */ Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Sean, たぶん明日。しかし、確かに金曜日までです。 よろしくお願いします。 カルロス Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 申し訳ありませんが、このガイドの新しいバージョンは、KSDK1.2に関連しています解放。ガイドの新しいバージョンはいつ利用可能になりますか? Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 現在入手可能です。 https://www.freescale.com/kds Kinetisソフトウェア開発キット マイクロコントローラ|フリースケール よろしくお願いします。 David Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちはカルロス、KSDK1.2の新しいバージョンがどれくらい離れているか知っていますかです。 ありがとうございます ショーン Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 皆さん、こんにちは このドキュメントを公開してからしばらくして、これらのエラーを見つけました。私は調査を続け、ゼロから作成された完全に機能するプロジェクトがあることを知っています。添付されています。 これを修正し、KSDK1.2とKDS3.0で新しいバージョンをすぐに公開します。 ご不便をおかけして申し訳ございません。 カルロス Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> テストしていただきありがとうございます。 昨日、このプロジェクトの変更に数時間を費やしましたが、残念ながら成功しませんでした。 間違った動作の理由は明らかです:コンパイラ/リンカは、MQXライブラリからこれらのコンポーネントを選択するのではなく、SDKプロジェクトのスタートアップコードとベクトルテーブルをどういうわけか好みます。悪いことに、これまでMQXコードを実装するためにリンカーを「納得させる」方法が見つからなかったことです(例:boot.s)元のSDKの代わりに。 RadekS Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello RadekS, 短いバージョン: 変更をテストしましたが、問題は解決しませんでした。 「Hello World」は、常に端末に問題なく印刷されています。問題は、"Hello World" の実行が速すぎて問題が明らかにならないことです。テキストを長い文字列に置き換えると、実行が途中で停止することがわかります(SysTick_Handler()が呼び出されようとするときに賭ける5msのマークで)。または、printf ステートメントの 1 つに _time_delay(10) 呼び出しを追加します。 長いバージョン: これは、新しいプロジェクトと既存のサンプルプロジェクトとの紛らわしい違いの1つを説明するのに役立ちます:既存のサンプルには.aしかありませんでしたこのガイドで説明されているライブラリやライブラリディレクトリではなく、リンクされているファイル。サンプルプロジェクトには、入力をラップする -Xlinker --start-group ${INPUTS} -Xlinker --end-group もあり、これは上記のコマンドと同じことを行っているようです。また、RTCS/MFS を追加するときに必要だった -z muldefs オプションを追加する必要もなくなります。サンプルプロジェクトには muldefs オプションが追加されていますが、リンカーオプションは「 -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --undefined=__isr_vector」 に加えて「クロスリファレンス (-Xlinker --cref)」 が選択されています。ただし、コンパイルする必要はなさそうで、冗長なだけかもしれません。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私の視点から見ると、割り込みとSysTickの問題は副作用のように見えます。 KDSガイドの「 How To: Create a New MQX RTOS for KSDK Project 」を試してみました。 さらに、Cross Arm C Compiler ==> Preprocessorシンボルを追加します。 「CPU_MK64FN1M0VMD12=1」 "FSL_RTOS_MQX=1""" 「_AEABI_LC_CTYPE=C」 「__STRICT_ANSI__=1」 "_DEBUG=1" また、Cross Arm C Compiler ==> Optimization を "GNU ISO C99 (-std=gnu99)" として設定します。 しかし、ステップ3.15で止まりました。この手順でプロジェクトをビルドできましたが、それらがないと、ビルドがエラーを引き起こします(シリアルインターフェイスへの参照はありません)。ステップ 3.15 はステップ 3.13 と 3.14 を一緒に行う必要があるため、奇妙でした。 これにより、問題はコンパイラの依存関係にあることがわかります(Marianに感謝します)。 提案された解決策: Cross Arm C++ リンカのコマンドラインパターンに "-Wl,--start-group" と "-Wl,--end-group" の推奨行オプションを追加して変更してください。 ${COMMAND} ${cross_toolchain_flags} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} -Wl,--start-group ${INPUTS} -Wl,--end-group これにより、 複数のライブラリ間の循環参照が解決されます。 これらの設定では、ステップ3.15は必要なく、コードは私の側で正しく機能します。ターミナルに「Hello World」と表示されます。 あなたの側でテストしていただけませんか? お役に立てれば幸いです。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私は何かを掴んだと思いました:ここで生成したプロジェクトとhttpsrv_frdmk64fプロジェクトを比較すると、いくつかの注目すべきリンカー設定が異なることに気づきました。 [プロパティ] -> [C/C++ ビルド] -[> 設定] -> [ツール設定] -> [クロス ARM C リンカー] -> [全般] で、次の操作を行います。 サンプルプロジェクトでは、「標準のスタートファイルを使用しない(-nostartfiles)」と「デフォルトのライブラリを使用しない(-nodefaultlibs)」がチェックされています。 このガイドで作成されたプロジェクトは そうではありません。ただし、それらを有効にすると、次のエラーが発生します。 "./Project_Settings/Startup_Code/startup_MK64F12.o:関数 '_irq_clear_end'内: D:\Development\13214-ELMU\trunk\ETCCode\ELMU_KDS_K64\ELMU_KDS_K64\Debug/../Project_Settings/Startup_Code/startup_MK64F12.S:349: '_start'への未定義の参照 したがって、startup_MK64F12で_startの定義が見つかりません。S ファイル。このファイルもサンプル プロジェクトに含まれており、エラーは発生しません。これは、この設定によって、必要な関数 (SysTick_Handler など) が正しく参照されていないことが明らかになっているだけである可能性があります。 [プロパティ] -> [C/C++ ビルド] -[> 設定] -> [ツール設定] -> [クロス ARM C リンカー] -[> その他] で、次の操作を行います。 サンプル プロジェクト Cross ARM Cリンカを使用 「クロスリファレンス (-Xlinker --cref)」 にチェックを入れました。 その他のリンカフラグには、"-Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --undefined=__isr_vector " が含まれます。 その他のオブジェクトには、次の追加ファイルが含まれます。 ${eclipse_home}/../ツールチェーン/lib/gcc/arm-none-eabi/4.8.0/m4/fp/v4-sp-d16/libgcc.a ${eclipse_home}/../ツールチェーン/arm-none-eabi/lib/m4/fp/v4-sp-d16/libc.a ${eclipse_home}/../ツールチェーン/arm-none-eabi/lib/m4/fp/v4-sp-d16/libsupc++.a ${eclipse_home}/../ツールチェーン/arm-none-eabi/lib/m4/fp/v4-sp-d16/libm.a カスタムプロジェクト ARM C++ リンカを相互使用 「クロスリファレンス (-Xlinker --cref)」はチェックされていません。 他のリンカフラグには、 "-nanolibc -z muldefs" (複数の定義エラーを阻止するために私が追加した -z muldefs) が含まれています。 上記のarm-none-eabi libファイルは一切含まれていません。 ただし、これらの設定を一致させて変更しても問題は解決しません。次に、C ++リンカの代わりにCリンカを使用するように強制できるかどうかを見ていきます。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> クリス、私はあなたの問題を事前にはっきり読んでいなかったはずです。私はかなり長い間この問題に取り組んでおり、なぜ私のプロジェクトがランダムに停止するのかを理解しようとしています。私はこのコミュニティの投稿を始めて、多くのことを試しました(Re:Printfが印刷の途中で失敗し、ファームウェアの実行が停止しますか?その関数を追加した後、コードを適切に実行できるようになりました。 しかし、あなたと同じように、私はこれが決して安全な解決策だとは感じていません。ティックハートビートを無効にすることで、MQXが正常に機能しなくなるようです。MQXが任意のタイミングで内部的にティックを使用する場合(タスクの切り替えなど)そうすると、それらの機能が壊れる可能性があります。DavidSさん、これが事実かどうか、または機能させないために何が欠けている可能性があるか教えていただけますか?これは、プロジェクトの実行に5ms以上かかる人には起こるようで、この方法で有用なものをプログラムするのが難しくなります。 編集:私はちょうど恐ろしい考えを持っていました。この内部割り込みが正しくリンクされていない場合、他に何が見つからないかは誰にもわかりません。また、他の奇妙で微妙な障害を引き起こす可能性があります。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> また、そうした後、ライブラリヘッダーを含めるときに複数の定義エラーがポップアップし始めるなど、いくつかの問題に遭遇しました(Re:arm-none-eabiがmqxと競合する:stdio.hの複数の定義などがコンパイラの問題を引き起こしています)。これが理想的な解決策かどうかはわかりませんが、コンポーネントを追加してコンパイルすることができました。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私も全く同じことを考えています。また、回答をいただければ幸いです! Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello, Kris 私もMQX-SDKでこの問題を解決する方法を見つけるのに苦労しています。問題がSysTick_Handlerによって引き起こされる可能性があるとは思いもしませんでした。ヒントをありがとう。main.cに含めたときファイル、それは私にも働きました。しかし、この回避策が本当に問題を解決するのか、それとも単に問題を隠しているのかはわかりません。残念ながら、ソフトウェア開発中に、これによりバグがさらに発生する可能性があります。ですから、このコミュニティでIvaが提案した方法、 https://community.freescale.com/docs/DOC-104144 を使用する方が快適で安全だと感じています。 この方法では、既存のプロジェクトをmqx/examplesフォルダから同じフォルダにクローンして、プロジェクトの参照として使用できるようにします。エラーが発生しにくくなります。 あなたや他の誰かが問題を解決する方法を見つけた場合は、私に知らせてください。同じ問題に直面している人は多いのではないでしょうか。 ありがとうございます Marco Coelho Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> カルロスさん、ありがとうございました。 これは非常に役に立ちました、そしてあなたのガイドとこれらのコメントの間で、私は予想外の多くのステップと私がKSDKに含まれているMQXマニュアルのいずれにも文書化されていないステップの多くに従って新しいプロジェクトを実行することができました。そこで、私の質問にたどり着きました。 これを複製して、RTCS、MFS、またはその他のコンポーネントをプロジェクトに含めるには、どうすればよいですか。驚いたことに、RTCSのドキュメントには、プロジェクトに組み込む方法について何も言及されておらず、機能が何であるかについてのみ言及されています。「${PROJECT_KSDK_PATH}/tcpip/rtcs/lib/frdmk64f.kds/debug/rtcs」を含むディレクトリと関連するlib_rtcs.aファイルだけではできません。これにより、RTCS プロジェクトの特定の #defines が新しいプロジェクトで正しく読み取られず、コンパイルが停止します。また、rtcs_user_config.hをコピーするべきだという印象を受けています作成したConfig_filesディレクトリにファイルを作成しますが、これ以上コピーする必要があるかどうかはわかりません。 ありがとうございます ショーン Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> はい、MQX ライブラリはクリーン インストール後にデフォルト設定でコンパイルされ、プロジェクトにリンクされています。チュートリアルの指示に従いました。私が知る限り、MQXは2つの「hello」タスクと「world」タスクで正常に動作しています。 ハンドラの有無にかかわらず、コンパイルエラーや複数の定義エラーは発生しませんが、ハンドラを含めないと、SysTick割り込みが初めて発生したときにDefaultHandler()クラッシュが発生します。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello Kris Simonsen: 実際には、SysTickハンドラの追加に関するあなたの解決策は奇妙です。MQXプロジェクトは期待どおりに機能していますか?タスクは1つ以上ありますか? ハンドラーは MQX ライブラリーの一部としてコンパイルされ、_boot で宣言されます 。S;Davidが述べたように、SysTickはMQXスケジューラのタイムベースとして使用されます。プロジェクトで定義すると、複数の定義エラーが表示されるはずで、何らかの理由でコンパイルされた場合は、MQX SysTickハンドラーをオーバーライドすることになります。mqxライブラリを追加しましたか(lib_mqx.a)あなたのプロジェクトに? また、上記のMyke Predkoによるコメントを読んでください、チュートリアルにはプリプロセッサのマクロ定義がいくつか欠けているようです。これについてはカルロスに知らせます。 敬具 ホルヘ・ゴンザレス Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私がまだ理解するのに苦労しているのは、このプロジェクトが、まったく同じMQX初期化コードとBSP設定ファイルを使用するデモプロジェクトとどのように異なるかということです。これらのプロジェクトにはSystick_Handlerがないため、割り込みを無効にしているに違いないと推測しますが、このチュートリアルでは割り込みがまだ発生し、ハンドラを追加する必要があります。 どう違いますか。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 良いデバッグKris.修正を共有してくれてありがとう。 Systickタイマーは、200Hzまたは5msごとのRTOS TICK(心拍)に使用されます。 よろしくお願いします。 David Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 更新: 割り込みは、欠落しているSystick_Handlerから発生していると判断されました。これをmain.cに追加すると、プログラムが実行されます。 ボイド SysTick_Handler(ボイド) {} なぜこの割り込みが有効になっているのか、MQXで必要なのかはわかりませんが、このプロジェクトを動作させるにはハンドラが必要でした。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> カルロス、私はこのチュートリアルに正確に従いました(それは非常によく書かれています)が、結果のプログラムはまだIRQベクトルに問題があるようです。 FRDM-K64Fボードを使用しています。 プロジェクトは警告なしに正常にコンパイルされ、正常にプログラムされて実行を開始しますが、プロジェクトを開始した直後にハードフォールト/未処理の割り込みが発生するようです。私はこの障害の原因を特定するために多くのことを試しましたが、無駄でした。このプロジェクトでは、他の何も実行できません。 エラー発生時のスタックトレースとレジスタを次に示します。 必要なすべてのライブラリは、デフォルト設定でコンパイルされています。フラグが設定されていないため、実際にはWDOG割り込みではないことを確認しました-また、WDOG_EWM_IRQのハンドラを含めると、それは起動せず、DefaultHandlerに行く他の未定義の割り込みの1つが代わりに逆アセンブル画面に表示されます。これはベクトルの問題またはMQXとのメモリ競合である可能性があるように思われますが、わかりません。 この手順は、使用可能なベースライン プロジェクトにはならないと思うので、確認してください。 これをまとめてくれてありがとう、うまくいけば誰かが問題が何であるかを整理することができます。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、カルロス・エンリケ: FRDM-KL25 はまだサポートされていません。これは、4月末または5月初旬に 予定されているKSDK v1.2 の次のリリースに付属しています。 敬具 ホルヘ・ゴンザレス Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Carlos Musich: このチュートリアルをボードFrdm-KL25Zで使用できますか?、ボードFrdm-K64Fしか表示されないため、 感謝 カルロス・エンリケ Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> これは、2つの問題のいずれかである可能性があります。最初に見ていくのは、「FRDM-K22FでMQX USBデモを実行する方法」でカバーされています。図書館の問題が議論されている場所。 ライブラリがファイル システムにある場合は、C/C++ ビルド リンカー セクションのプロジェクト プロパティを確認し、ライブラリが一覧表示されていること、およびライブラリへのパスが正しいことを確認します。 これがお役に立てば幸いです! Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Myke これを見つけていただきありがとうございます...。私もまったく同じエラーが発生したため、プリプロセッサの定義は 間違いなく必要であり、Carlosの命令には含まれていません。 このエラーの原因となっている可能性のあるアイデアはありますか? make: *** ターゲットを 'C:/Freescale/KSDK_1.1.0/lib/ksdk_mqx_lib/K22F51212/Debug/libksdk_platform_mqx.a' にするルールはありません。「xxxxxxxxxxx.elf」が必要です。止める。 みんなを解決しました......プロセッサ名の前に /kds フォルダがありませんでした。 私のプロジェクトの正しいパスを以下に示します。 `C:/Freescale/KSDK_1.1.0/lib/ksdk_mqx_lib/kds/K22F51212/Debug/libksdk_platform_mqx.a' Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、みんな。 ビルドすると、次のエラーが発生します。 < >が見つかりません 例と同じボードを選択したので、まったく同じことを行いました。 何か提案はありますか? どうぞよろしくお願いいたします。 Alberto Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Myke, 私はただ彼らのデモを実行させようとしていただけです。KDS/KSDK/PE/MQXの組み合わせが弱気であるという意見には同意します。この組み合わせを初めて知ったとき、「素晴らしいことだ」と思いましたが、フリースケールの道のりは長いことがわかりました。 私にとって、PEの側面は重要であり、あるデザインから別のデザインにプロジェクトを迅速に移行できる必要があります。しかし、ドキュメントがまばらですぐに古くなってしまうため、これはうまくいっていません。今のところは、このスレッドの冒頭で紹介した資料に基づいて構築することにしました。つまり、 FRDM-K22Fについては、Freescale MQX RTOS 4.1 の資料に戻り、必要に応じてコードの一部を「借用」します。(主な問題は、ダウンロードに KDS 用のものが含まれていないことです。そのため、移行する必要があります。また、PEをまったく使用していないようです-本当に残念です! その間、フリースケールがそれをまとめて、トータルパッケージを提供できることを願っています。それは製品ラインにとって本当の恩恵となるでしょう。 KSD/KSDK/PE/MQXの使用に基づいてこの記事が書き直されるのを見るのは素晴らしいことです。それはソフトウェアがすべきことをするでしょう:物事をセットアップする面倒なものを取り除き、私たちに仕事に取り掛からせてください! Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi David, デバイス モード、特に USB 双方向 HID の実装に興味があります。 上で引用した例では、例の.wsdを持ち込んでいましたかそれとも、自分でゼロからプロジェクトを作っていたのですか?私は定型アプリケーションが非常にうまく機能することがわかったので尋ねていますが、あなた自身のKDS / KSDK(MQX用)を考え出すのはクマです。 myke Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> host_msd_fatfs_frdmk22f_mqx_frdmk22fでスループットテストを試すをご覧ください ホストモードとデバイスモードのどちらに興味があるかは述べられていませんが、デバイスモードのデモをFRDM-K22Fボードで動作させることができました。私はその数字にかなり感銘を受け、より一般的なアプリケーションで動作するように取り組んでいます。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Marco, プリプロセッサの設定がお役に立ててうれしいです。 フリースケールのエンジニアから、この点でKDS / KSDK(MQXを使用)を簡単に操作できるように取り組んでいると言われました-スタックのUSB部分を使用したい(これが私が 議論を始めた理由です https://community.freescale.com/thread/342700)これはうまくいけば、すぐにいくらかの牽引力を得るでしょう。 KDS/KSDKのUSBスタックに詳しい方がいらっしゃいましたら、ディスカッションにお答えください。 myke Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Myke, あなたとまったく同じエラーがあります。貴重なご参加いただき、誠にありがとうございました!私がどれだけ一生懸命取り組んだか想像もつかないでしょう。 しかし、同時に、これらのシンボルがMQXヘッダーファイルとライブラリのリンクおよびコンパイル中に自動的に含まれるのではなく、なぜ「プリプロセッサ設定」に手動で含める必要があるのか、まだ疑問に思っています... KSDKチームのどなたか説明していただけますか? よろしくお願いいたします。 Marco Coelho Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Carlos, まず第一に、優れた記事です! 私は手順に従いましたが、FRDM-K22Fの場合、コンパイルするとエラーが発生します。 ===== 'ビルド ファイル: ../ソース/ユーティリティ/fsl_debug_console.c' 「呼び出し:Cross ARM C Compiler」 arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -D"CPU_MK22FN512VDC12" -I"../sources" -I"../ソース/ボード" -I"../sources/BSP_Files" -i"../sources/Config_Files" -i"../sources/Config_Files/common" -i"../sources/utilities" -I"C:\Freescale\KSDK_1.1.0/rtos/mqx/lib/frdmk22f.kds/debug/mqx" -I"C:\Freescale\KSDK_1.1.0/rtos/mqx/mqx/source/bsp"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/include"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/lib/frdmk22f.kds/debug/config" -I"C:\フリースケール\KSDK_1.1.0/platform/hal/inc"-I"C:\Freescale\KSDK_1.1.0/platform/drivers/inc"-I"C:\Freescale\KSDK_1.1.0/platform/osa/inc"-I"C:\Freescale\KSDK_1.1.0/platform/system/inc"-I"../Project_Settings/Startup_Code" -I"../SDK/platform/CMSIS/Include" -I"../SDK/platform/CMSIS/Include/device" -I"../SDK/platform/CMSIS/Include/device/MK22F51212" -I"C:\Freescale\KSDK_1.1.0/platform/utilities/inc"-I"C:\フリースケール\KSDK_1.1.0/platform/utilities/src"-std=c99 -MMD -MP -MF"ソース/ユーティリティ/fsl_debug_console.d"-MT「ソース/ユーティリティ/fsl_debug_console.o」-c -o "ソース/ユーティリティ/fsl_debug_console.o""../sources/utilities/fsl_debug_console.c" arm-none-eabi-gcc:致命的なエラー: 入力ファイルがありません コンパイルが終了しました。 make: *** [ソース/ユーティリティ/fsl_debug_console.o]エラー 1 ==== このファイルは、ハードドライブとプロジェクトの両方のSources/Utilitiesフォルダにあります。だから、私の問題はプロジェクトが "../Sources/Utilities" これを確認する方法はありますか? Windowsエクスプローラでは、私のファイル構造は次のとおりです。 私が見落としていたものが見えますか?感謝。 うん、よく調べて見た。インクルードパスの引用符(")を忘れました。参照: "../Sources/BSP_Files" (下線に注意してください)。 この後、Myke Predko が行ったのと同じ問題に遭遇し、同じ方法でプリプロセッサ ディレクティブを編集して修正しました。 Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> さて、Help ==> Install New SoftwareからMQXプラグインを追加した後も、すべてが機能します... そして、上部に「MQX」ドロップダウンがあるので、すべてが順調だと思います。 カルロス(そして他の誰でも)、 プロジェクトのために他に何かする必要がありますか? ありがとう、 myke Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 成功!(と思う)。 KSDK 1.1.0にある「hello_frdmk64f」プロジェクトのコンパイラのプロパティを見てみましたMQX の例では、Cross Arm C Compiler ==> プリプロセッサに次のものが含まれていることがわかりました。 CPU_MK64FN1M0VMD12=1 FSL_RTOS_MQX=1 _AEABI_LC_CTYPE=C __STRICT_ANSI__=1 _DEBUG=1 Carlosの指示から構築されたプロジェクトでは、次のものがあります。 「CPU_MK64FN1M0VMD12」 そこで、その行を残してから、サンプルアプリケーションから他の行をコピーして... ビルドして実行します。 さて、次のステップは、実行中に操作を確認できるように、タスク認識デバッガーを追加しようとしています。 myke Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> もう少し掘り下げて、fsl_debug_console.hで、「setvbuf」と「IONBF」の問題の前に次の行を見つけました。 #if ((defined(__GNUC__)) && (!defined(FSL_RTOS_MQX))) && (!defined(__KSDK_STDLIB__)) 私は、*どこかで*「FLS_RTOS_MQX」フラグを設定するだろうと思っていました(これはこれがMQXプロジェクトであることを示していると私は推測します)-__KSDK_STDLIB__言うまでもありません。 これは私の問題でしょうか、もしそうなら、このフラグはどこで設定されますか? ありがとう、 myke Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Carlos, プロジェクトの説明はここで非常によく見えますが、私はそれを機能させることができません。私は2台のPCで2回同じ結果でそれを行いました - それは標準のインクルードファイル(下記参照)にある情報を探しているようですが、これらのインクルードはソースから呼び出されず、インクルードファイルもこれらのインクルードファイルへのパスはビルドプロパティの一部ではありません。 私はFreescaleのWebサイトから最新バージョンのKDSとKSDKを使用しており、このスレッドの上部にあるドキュメントの指示に明示的に従っています。 13ページ(セクション3.15まで)の手順を実行すると、次の違いが見られました。 3.7 BSP_Files私が「はい」と言っているいくつかのパスステートメントを生成します。これらはセクション3.10で見ることができます 3.8 パスは「C:\Freescale\KSDK_1.1.0\rtos\mqx\config\board\ 」にすべきですか?オリジナルは一致していないようです。 3.12 PDFの指示の10ページのスクリーンショットの順序と一致するように、インクルードを再配置しました。注 : 手順 3.7 で生成されたインクルードは、これらのインクルードの後にあります。 3.15 PDFの指示の12ページのスクリーンショットの順序と一致するようにライブラリリストを再配置しました。 3.7で生成されている余分なパスステートメントが問題を引き起こしているとは思いませんか? 私がビルドすると、次のようになります。 17:08:34 **** プロジェクトK64_MQX_KSDK_Exampleの構成デバッグのビルド **** すべて作る 'ビルド ファイル: ../ソース/ユーティリティ/fsl_debug_console.c' 「呼び出し:Cross ARM C Compiler」 arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -D"CPU_MK64FN1M0VMD12" -I"../sources" -I"../ソース/ボード" -I"../sources/BSP_Files" -i"../sources/Config_Files" -i"../sources/Config_Files/common" -i"../sources/utilities" -I"C:\Freescale\KSDK_1.1.0/rtos/mqx/lib/frdmk64f.kds/debug/mqx" -I"C:\Freescale\KSDK_1.1.0/rtos/mqx/mqx/source/bsp"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/include"-I"C:\Freescale\KSDK_1.1.0/rtos/mqx/lib/frdmk64f.kds/debug/config" -I"C:\フリースケール\KSDK_1.1.0/platform/hal/inc"-I"C:\Freescale\KSDK_1.1.0/platform/drivers/inc"-I"C:\Freescale\KSDK_1.1.0/platform/osa/inc"-I"C:\Freescale\KSDK_1.1.0/platform/system/inc"-I"../Project_Settings/Startup_Code" -I"../SDK/platform/CMSIS/Include" -I"../SDK/platform/CMSIS/Include/device" -I"../SDK/platform/CMSIS/Include/device/MK64F12" -I"C:\Freescale\KSDK_1.1.0/platform/utilities/inc"-I"C:\フリースケール\KSDK_1.1.0/platform/utilities/src"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/drivers/nio_serial"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/string"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/config/common"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/psp/cortex_m/core/M4"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx_stdlib/source/include"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/kernel"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/src"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/bsp"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/drivers/nio_serial/src"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx_stdlib/source/strings"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/psp/cortex_m"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/drivers/nio_tty/src"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/drivers/nio_dummy/src"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/psp/cortex_m/cpu"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/fs"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx_stdlib/source/stdio"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/psp/cortex_m/compiler/gcc_arm"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/drivers/nio_tty"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/nio/drivers/nio_dummy"-I"C:\フリースケール\KSDK_1.1.0/rtos/mqx/mqx/source/include"-std=c99 -MMD -MP -MF"ソース/ユーティリティ/fsl_debug_console.d"-MT「ソース/ユーティリティ/fsl_debug_console.o」-c -o "ソース/ユーティリティ/fsl_debug_console.o""../sources/utilities/fsl_debug_console.c" C:\Freescale\KSDK_1.1.0/rtos/mqx/mqx_stdlib/source/include/std_prv.h:30:0からインクルードされたファイルでは、 C:\ Freescale \ KSDK_1.1.0 / rtos / mqx / mqx_stdlib / source / include / stdio.h:32から、 差出人。。/ソース/ユーティリティ/fsl_debug_console.c:32: C:\Freescale\KSDK_1.1.0/rtos/mqx/lib/frdmk64f.kds/debug/mqx/nio.h:122:1:エラー: 不明なタイプ名 'ssize_t' ssize_t _nio_read(int fd, void *buf, size_t nbytes); ^ C:\Freescale\KSDK_1.1.0/rtos/mqx/lib/frdmk64f.kds/debug/mqx/nio.h:132:1:エラー: 不明なタイプ名 'ssize_t' ssize_t _nio_write(int fd, const void *buf, size_t nbytes); ^ ../sources/utilities/fsl_debug_console.c:関数 'DbgConsole_Init' では、次のようになります。 ../Sources/Utilities/fsl_debug_console.c:214:5:警告:関数 'setvbuf'の暗黙の宣言[-Wimplicit-function-declaration]      setvbuf(stdout, NULL, _IONBF, 0);      ^ ../Sources/Utilities/fsl_debug_console.c:214:27:エラー:'_IONBF'が宣言されていません(この関数で最初に使用      setvbuf(stdout, NULL, _IONBF, 0);                            ^ ../sources/utilities/fsl_debug_console.c:214:27: 注:宣言されていない各識別子は、それが出現する関数ごとに一度だけ報告されます make: *** [ソース/ユーティリティ/fsl_debug_console.o]エラー 1 17:08:34 ビルド完了 (479ms を要しました) 「ssize_t」で検索を行うことは、C:/Freescale/KDS_2.0.0/toolchain/arm-none-eabi/include/sys/types.hで定義されています。 「_IONBF」はC:/Freescale/KDS_2.0.0/toolchain/arm-none-eabi/include/stdlib.hで定義されています。 また、"setvbuf" は C:/Freescale/KDS_2.0.0/toolchain/arm-none-eabi/include/stdio.h で定義されています。 プロジェクト==>プロパティ==>C / C ++ビルド==>設定==>クロスARM Cコンパイラ==>出力を変更せずにインクルードのビルドパスに「C:/ Freescale / KDS_2 1.0.0 / toolchain / arm-none-eabi / include」を追加してみました(出力を変更せずにクロスARM Cコンパイラ==インクルード(インクルードファイルが見つからないエラーメッセージがあると思っていたので、これは驚きではありませんでした。 上記のエラーにインクルードファイルを追加しようとしますが、私が間違っていることについて何か提案はありますか? ありがとう、 myke Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi David, 最後に、私は引用に悩まされました。すべての引用符を書き直すと、アプリケーションが機能します。 ありがとうございました。 よろしくお願いします。 Daniel Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Daniel, 「KDS.pdf での KSDK プロジェクト用の新しい MQX RTOS の作成」の手順に従っていましたか? 1.5 次のライブラリをビルドする必要があります: 1.5.1 MQX用プラットフォームライブラリ、'libksdk_platform_mqx.a' • このプロジェクトは、"$/lib/ksdk_mqx_lib/kds/ 1.5.2 MQX Library, 'lib_mqx.a' にあります。 • このプロジェクトは "$/rtos/mqx/mqx/build/kds/mqx_" 1.5.3 にあります。MQXスタンダードライブラリ「lib_mqx_stdlib.a」 • このプロジェクトは「$/rtos/mqx/mqx_stdlib/build/kds/mqx_stdlib_」にあります。 注意: KDSでのKSDKおよびMQXライブラリの構築については、MQX for KSDKのインストール・パスC:\Freescale\KSDK_1.1.0\rtos\mqx\doc\toolsにある「Getting Started with Freescale MQX™ RTOS for Kinetis SDK and Kinetis Design Studio IDE」の「3 MQ RTOSライブラリの構築」の章を参照してください。 よろしくお願いします。 David Re: How To: KDS で KSDK プロジェクト用の新しい MQX RTOS を作成する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 親愛なるカルロス、 マニュアルをありがとう。私はそれに従うことを試みましたが、プロジェクトを構築したときに、このエラーが発生します。 make: *** ターゲットを 'C:/Freescale/KSDK_1.1.0/lib/ksdk_mqx_lib/K64F12/Debug/libksdk_platform_mqx.a' にするルールはありません。「Enrutadora.elf」が必要でした。止める。 そして、私はそれをどのように解決するのかわかりません。 よろしくお願いいたします。
查看全文
patch-ltib-ubuntu12.04.sh <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Ubuntu12.04のltibフォルダにパッチを適用するスクリプト。 手順: $ cp patch-ltib-ubuntu12.04.sh $ cd $ chmod +x patch-ltib-ubuntu12.04.sh $./patch-ltib-ubuntu12.04.sh <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Ubuntu12.04のltibフォルダにパッチを適用するスクリプト。 手順: $ cp patch-ltib-ubuntu12.04.sh $ cd $ chmod +x patch-ltib-ubuntu12.04.sh $./patch-ltib-ubuntu12.04.sh
查看全文
T_Box <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 描述 特性 结构框图 产品 工具 描述 随着当今世界新技术的发展,汽车行业现在能够实施新设备,让驾驶员能够更广泛地控制汽车。这些设备可以提供车辆监控、汽车安全、GPS 优化驾驶路径等远程诊断服务以及许多其他服务。 T-Box作为无线网关为车辆提供远程通信接口。 它可以提供: 交通数据采集 行驶轨迹记录 导航、新闻、天气等信息推送等资讯娱乐服务 车辆故障监测 车辆远程控制(开锁、空调控制、车窗控制、发射器扭矩限制、发动机启动和停止) 驾驶行为分析 4G无线热点共享等服务 特性 EMC控制器支持SDRAM CAN控制器(从2通道以上到3通道以上) 小型封装(从LQFP到BGA) 更多 I/O 引脚(更多 UART、SPI、I2C)。 低功耗(GPIO唤醒和RTC唤醒) 高性价比 结构框图 产品 类别名称1: MCU 产品网址 1 LPC1778FET208|Arm Cortex-M3|32-bit MCU | NXP  产品描述 1 LPC1778FET208 是一款低功耗、经济高效的 MCU,具有高达 512 KB 的闪存、96 KB 的 SRAM、4 KB 的 EEPROM 和各种连接外设,包括多达五个 UART、三个 SPI/SSP 和三个I²C。 产品网址 2 LPC540XX 系列微控制器 (MCU) | NXP 产品描述 2 LPC54S016 提供节能和独特的架构、先进的 HMI 和灵活的通信外设,为下一代物联网提供实时性能。 类别名称2: 收发器 产品网址 1 TJA1041A | 高速CAN收发器 | NXP 产品描述 1 TJA1041A主要用于车用高速CAN应用(最大1 Mbit/s)。 产品网址 2 TJA1043 | 高速CAN收发器 | 恩智浦 产品描述 2 TJA1043 收发器专为汽车行业的高速 CAN 应用而设计,为 CAN 协议控制器(带有微控制器)提供差分发送和接收能力。 产品网址 3 TJA1051 | 高速CAN收发器 | 恩智浦 产品描述 3 TJA1051 收发器专为汽车行业的高速 CAN 应用而设计,为 CAN 协议控制器(带有微控制器)提供差分发送和接收能力。 类别名称 3: 外设 产品网址 1 MC33972 | 带抑制唤醒功能的 MSDI | NXP 产品描述 1 具有抑制唤醒功能的 33972 多开关检测接口 (MSDI) 设计用于检测最多 22 个开关触点的闭合和打开。 该设备还具有 22 对 1 模拟多路复用器,用于读取 输入为模拟量。 产品网址 2 微型实时时钟/日历 | NXP 产品描述 2 PCF85063TP是一款CMOS实时时钟(RTC)和日历,最适合低功耗应用。 偏移寄存器允许对时钟进行精细调整。 产品网址 3 ±2g/±4g/±8g, Low g, 14-Bit Accelerometer | NXP  产品描述 3 FXLS8471Q加速度传感器的用途广泛,具有噪声密度低、板载偏移小、温度性能好和灵敏度高等特点,非常适合工业、消费电子和汽车领域的各种高性能低重力应用。 产品网址 4 高速CAN核心系统基础芯片 | NXP 产品描述 4 UJA1076A支持用于通过使用高速CAN作为主网络接口进行电源和传感器外设控制的网络应用。 工具 产品 链接 OM13001: EA LPC1788 评估板 EA LPC1788 评估板 | 恩智浦 LPC54S018M-EVK: LPCXpresso54S018M开发板 LPCXpresso54S018M开发板 | NXP OM11059A:I²C RTC PCF85063TP 和 PCF85063ATL 演示板 I²C RTC PCF85063TP 和 PCF85063ATL 演示板 | NXP 适用于 FXLS8471Q 三轴线性加速度计的传感器工具箱开发板 FXLS8471Q 3 轴加速度计开发板 | NXP 汽车电子 框图
查看全文
Enabling CLBlast on i.MX8MQ and i.MX8QM QXP for Yocto Project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> [Chinese translation] See attachment   Original link: https://community.nxp.com/docs/DOC-341473 i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus
查看全文