Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Experts, The customer's new BMS project wants to use S32K358 + FS27 + BMS GEN2 SDK. I learned from the BMS team that: BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05 and BMS GEN2 SL SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05 will be available next week. This supports S32K3 RTD 6.0.0 integration. The BMS GEN2 SDK will be migrated to S32K3 RTD 6.0.0 in BMS release v1.0.0 somewhere in Q1 '26. In other words, the BMS GEN2 SDK will be compatible with S32K3 RTD 6.0.0 in the near future. The customer needs a 24V platform and therefore wants to use FS27 instead of FS26. I found the following two versions of FS27 from Automotive SW - SBC/PMIC - Real Time Drivers: S32K3xx SBC FS27 R21-11 0.8.0 based on S32K3 RTD 5.0.0 SBC FS27 R23-11 1.0.0 based on S32K3 RTD 7.0.0 Q1. The customer is concerned that the drivers for FS27 and BMS GEN2 SDK are incompatible because the S32K3 RTD versions do not appear to be consistent.  If S32K3 RTD 6.0.0 is selected in the BMS GEN2 SDK, will there be any problems if the customer uses S32K3xx SBC FS27 R21-11 0.8.0 or SBC FS27 R23-11 1.0.0? Q2. Does the FS27 have a driver based on S32K3 RTD 6.0.0? Would you please help me? Thank you for the help in advance! Best Regards, Robin Here is the information of customer: Contact Name                TengHsaing Wen Email (Contact)              [email protected] Company                        XINGMOBILITY AA SW - External Device Priority: MEDIUM Source: Direct Customer Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Viktor, Thank you for your information. The "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05" based on S32K3 RTD 6.0.0 is not yet available for download. Once it becomes available for download, I will at least test whether it can be compiled successfully. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hello Robin, there is no dedicated release for RTD 6.0.0, but the latest version (FS27 1.0.0) should be backwards compatible with it. In case of any issues, please let us know. Best regards, Viktor Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD The topic has been redirect to the team to investigate it. Contact point: Razvan Tilimpea / Cristian Durla or Viktor Obr Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Viktor, "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05" is now available for download.  The customer questioned whether the AUTOSAR versions of the two drivers, R23-11 and R21-11, would differ significantly and cause compatibility issues if they were paired with SBC FS27 R23-11 1.0.0. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi @viktorobr , "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD06" is now available for download.  The customer questioned whether the AUTOSAR versions of the two drivers, R23-11 and R21-11, would differ significantly and cause compatibility issues if they were paired with SBC FS27 R23-11 1.0.0. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Robin, compatibility between different Autosar versions is tricky, we would have to compare all of the drivers used by both of the components you try to integrate and I'm not 100% familiar with the BMS SDK. I can tell you that between the FS27 versions and the drivers it uses we didn't notice major changes between R21-11 and R23-11, there might be some minor differences that will appear right away when you combine the components in one project (version specific macros etc.), but from functional point of view it should still behave the same. Best regards, Viktor
記事全体を表示
i.MX RT1061 Serial non-QuadSPI NOR flash boot Hi, I have a project using the i.MX RT1061 with a W25Q128JVSIQ external flash. I'm looking to also support the W25Q128JVSIM (due to availability). However, the W25Q128JVSIM doesn't come with the QE-bit (Quad Enable) locked to enabled. When trying to boot from it I see what I assume is the boot ROM trying to execute a Fast Read Quad I/O without first enabling the QE-bit (see screenshots for the two first commands sent). It seems to first read the FlexSPI Configuration Block (which is expected), but then the quad read fails and nothing happens (bootloader isn't started). I suspect I have to ensure the QE-bit is enabled during production for this to work, but I was curious whether the i.MX RT1061 supports booting from non-QuadSPI NOR flash at all? It kind of seems that only Quad and Octal flash are supported (see screenshot for BOOT_CFG1 fuse)? Thanks, Daniel i.MXRT 106x Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hi @Habib_MS, Thanks for your reply! Hmm...my understanding was that the quad_mode_setting would only be applied when calling flexspi_nor_get_config, am I misunderstanding something? Is there a way to configure the BootROM to access the flash as QuadSPI through the FlexSPI Configuration Block? Thanks, Daniel Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hello @MulattoKid, Booting from non (serial)‑QuadSPI NOR flash is supported. for more details about which flash devices are supported, please refer to Chapter 9.6 “Boot devices” in the RM. I also understand that you highlighted the BOOT_CFG1[3:2] bits in your image. These fields are used by the auto‑probe mechanism, as described in their definition. Therefore, these bits only provide additional information about the flash device rather than controlling its configuration. Concerning the QE bit configuration of the QSPI NOR flash: normally, selecting the correct boot option configuration is sufficient. BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot I've found why the BootROM sends quad read commands right after reading the FCB: it's because our bootloader had a custom LUT specified in the FCB. Changing the LUT entry for reading also changed the SPI traffic. As mentioned, the reason I'm looking at this is that I want to be able to support both W25Q128JVSIQ and W25Q128JVSIM, with W25Q128JVSIM not having the QE bit set by default from the factory. I want to set the QE bit during our own production. The way I've been investigating is through using a JLink script to control the FLexSPI peripheral directly. However, I'm having some trouble. I have a command sequence for reading out the Status Register-2 of the W25Q128JVSIM, but it only works if the MCU has first booted into our application (which it fails to do unless the QE bit is already set). If the flash is empty and the BootROM doesn't have anything to boot the JLink script doesn't work, so I'm wondering if there's anything additional setup that's required to configure the FlexSPI peripheral? Here's the script for reference: ExitOnError 1 Device MIMXRT1061xxx5B SelectInterface SWD Speed 4000 Connect halt // Enable clock w4 0x400FC078, 0xFFFFFFFF // Reset module w4 0x402A8000, 0x00000002 sleep 20 w4 0x402A8000, 0x00000000 sleep 20 // Clear errors w4 0x402A8014, 0xFFFFFFFF w4 0x402A80B4, 0xFFFFFFFF sleep 20 // 2) Update LUT to include Read Status Register 2 and Write Status Register 2 commands w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x2 // Unlock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // LUT entry structure (i.MX RT1060 reference manual rev3, p.1709): // [31:26] = opcode1 // [25:24] = num_pads1 // [23:16] = operand1 // [15:10] = opcode0 // [ 9: 8] = num_pads0 // [ 7: 0] = operand0 // #include // // #define OPERAND_0(x) (x << 0) // #define NUMPADS_0(x) (x << 8) // #define OPCODE_0(x) (x << 10) // #define OPERAND_1(x) (x << 16) // #define NUMPADS_1(x) (x << 24) // #define OPCODE_1(x) (x << 26) // // #define kFLEXSPI_Command_STOP 0x0 // #define kFLEXSPI_Command_SDR 0x1 // #define kFLEXSPI_Command_RADDR_SDR 0x2 // #define kFLEXSPI_Command_WRITE_SDR 0x8 // #define kFLEXSPI_Command_READ_SDR 0x9 // #define kFLEXSPI_1PAD 0x0 // // #define FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1) (OPERAND_0(op0) | NUMPADS_0(pad0) | OPCODE_0(cmd0) | OPERAND_1(op1) | NUMPADS_1(pad1) | OPCODE_1(cmd1)) // // int main() // { // printf("WriteEnable: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x06, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0)); // printf("ReadStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x35, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04)); // printf("WriteStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x31, kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x04)); // // return 0; // } // Each command sequence in the LUT is 4 entires with each entry being 4 bytes (one word) w4 0x402A82E0, 0x24040435 // LUT[14 * 4] = Read Status Register-2 command sequence sleep 20 w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x1 // Lock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // Read Status Register-2 w4 0x402A8080, 0x80000000 // Clear sequence pointer for port A w4 0x402A8014, 0x1F // Clear pending status w4 0x402A80A0, 0x0 // Set base address w4 0x402A80B8, 0x1 // Reset RX FIFO w4 0x402A80A4, 0xE0001 // SEQID=14, SEQNUM=1, 1 byte w4 0x402A80B0, 0x00000001 // Trigger IP command sleep 50 Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hello @dafela, You can use the FlexSPI NOR APIs to enable the QE bit, using the configuration mentioned in my previous message. For additional details on the different methods available to enable the QE bit, please refer to item 19 in this post. You can also find more information about the FlexSPI ROM API in Section 9.13.2 of the RM. On the other hand, if you need guidance on using J-Link, this post provides a general overview along with several useful considerations that may help you. BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Thanks, I'll take a look
記事全体を表示
MMA8693 加速度计的参考寄存器设置 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我能否使用 MMA8693 找到新项目的参考寄存器设置? 现在我只想让它感知到明显的动作。(例如:停止 → 移动) 我想可能是在图形用户界面上找到的。 加速度传感器 Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,HJ、 对不起,我昨天不在办公室,耽误了您的回复。 无论选择的动态范围如何,运动和瞬态检测功能的阈值分辨率都是 0.0625g/LSB,而且无法提高。您说得没错,瞬态检测功能只适用于 MMA8652FC,而且除非 HPF_BYP 位被设置,否则它分析的是高通滤波数据。 此致, 托马斯 Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,托马斯、 我删除了之前的问题,因为我找到了问题所在。 门槛有问题。 我还有一个问题。 是否有可能使 MMA8653 不受重力等直流因素的影响而变得更加灵敏? 我想,如果使用 MMA8652 及其 HPF,可能会很容易。 但我的客户想用 MMA8653 找到路。 请给我一点提示。 谢谢! Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢! Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,HJ、 能否请您说明所用加速度计的确切零件编号?如果是 MMA8653FC,则可以使用嵌入式移动侦测功能。有关该功能的更多信息,包括寄存器设置示例,请参阅AN4070。 希望对您有所帮助。 此致, 托马斯 PS: 如果我的回答有助于解决您的问题,请标记为"正确" 或 "有帮助"。谢谢。
記事全体を表示
CIFAR10 TFLM Quick Build Guide catalogs I. Overview II. Environment Preparation 2.1 Virtual environment 2.2 Using Google Colab III. Core Steps 3.1 CIFAR10 dataset 3.2 Model creation 3.3 Model Training 3.4 Model Transformation 3.5 Inference Validation 3.6 Benchmark Performance 3.7 Full Implementation 3.7 Simplified version (Colab) IV. TFLite Micro Deployment V. Quick Verification Application Examples VII. Conclusion Reference Spoiler (Highlight to read) more details, please see the attachment. more details, please see the attachment. I. Overview CIFAR-10 : Alex Krizhevsky, University of Toronto The CIFAR-10 public dataset, and one of the most classic and commonly used entry-level benchmark datasets in computer vision, contains 60,000 32x32 color images (50,000 training, 10,000 testing) in 10 categories, such as airplanes, cars, birds, cats, and more. tflm_cifar10 : Demonstrates how to run a CIFAR-10 image classification model in real-time on a microcontroller from NXP using the TensorFlow Lite Micro framework. That is, a pre-trained convolutional neural network model for the CIFAR-10 dataset is deployed to the MCU, giving it the ability to recognize 10 classes of common objects (airplanes, cars, birds, cats, etc.). Model: a lightweight CNN model with 3 convolutional layers, ReLU activation layer, pooling layer and a fully connected layer. Input: 32x32 pixel color image. Output: probability that an image belongs to one of the 10 categories in CIFAR-10. This document: provides the complete process of building for the CIFAR10 dataset, from the dataset, model training transformation, deployment of inference of the rapid implementation of the program, can be used as an example of the tflm_cifar10 (inference-based) front complement, this paper does not involve the deployment and optimization of the end-side. ... """ CIFAR10 快速训练、测试、部署与推理完整流程 """ import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 减少TensorFlow日志 import tensorflow as tf import numpy as np import time import matplotlib.pyplot as plt print(f"TensorFlow版本: {tf.__version__}") print(f"NumPy版本: {np.__version__}") class CIFAR10QuickPipeline: def __init__(self): """初始化管道""" self.model = None self.tflite_model = None def load_data(self, sample_size=1000): """加载简化数据集""" print("\n1. 加载CIFAR10数据集...") (x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data() # 预处理 x_train = x_train.astype('float32') / 255.0 x_test = x_test.astype('float32') / 255.0 # 使用少量数据(快速训练) x_train_small = x_train[:sample_size] y_train_small = y_train[:sample_size] x_test_small = x_test[:200] y_test_small = y_test[:200] # 转换为独热编码 y_train_onehot = tf.keras.utils.to_categorical(y_train_small, 10) y_test_onehot = tf.keras.utils.to_categorical(y_test_small, 10) print(f"训练数据: {x_train_small.shape}") print(f"测试数据: {x_test_small.shape}") return (x_train_small, y_train_onehot), (x_test_small, y_test_onehot) def create_simple_model(self): """创建简化CNN模型""" print("\n2. 创建简单CNN模型...") model = tf.keras.Sequential([ # 输入层 tf.keras.layers.Input(shape=(32, 32, 3)), # 卷积层1 tf.keras.layers.Conv2D(8, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 卷积层2 tf.keras.layers.Conv2D(16, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 全连接层 tf.keras.layers.Flatten(), tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile( optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'] ) model.summary() self.model = model return model def train_model(self, x_train, y_train, x_test, y_test, epochs=10): """训练模型""" print("\n3. 训练模型...") # 回调函数:早停 callbacks = [ tf.keras.callbacks.EarlyStopping( monitor='val_loss', patience=3, restore_best_weights=True ) ] history = self.model.fit( x_train, y_train, epochs=epochs, batch_size=32, validation_data=(x_test, y_test), callbacks=callbacks, verbose=1 ) # 评估模型 test_loss, test_acc = self.model.evaluate(x_test, y_test, verbose=0) print(f"\n测试准确率: {test_acc:.4f}") return history def convert_to_tflite(self): """转换为TFLite格式""" print("\n4. 转换为TFLite格式...") # 转换为TFLite converter = tf.lite.TFLiteConverter.from_keras_model(self.model) # 优化配置 converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_types = [tf.float32] # 转换 tflite_model = converter.convert() # 保存模型 with open('cifar10_model.tflite', 'wb') as f: f.write(tflite_model) # 保存为字节数组(用于嵌入式部署) self.save_as_c_array(tflite_model) self.tflite_model = tflite_model model_size = len(tflite_model) / 1024 print(f"模型大小: {model_size:.1f} KB") return tflite_model def save_as_c_array(self, tflite_model): """保存为C数组格式""" c_array = '// 自动生成的CIFAR10模型数组\n' c_array += '#include \n\n' c_array += 'const unsigned char cifar10_model_tflite[] = {\n' # 每行显示12个字节 for i in range(0, len(tflite_model), 12): line_bytes = tflite_model[i:i+12] c_array += ' ' + ', '.join(f'0x{b:02x}' for b in line_bytes) + ',\n' c_array += '};\n\n' c_array += f'const unsigned int cifar10_model_tflite_len = {len(tflite_model)};\n' with open('cifar10_model_array.h', 'w') as f: f.write(c_array) print("C数组已保存: cifar10_model_array.h") def test_tflite_inference(self, x_test, y_test, num_tests=10): """测试TFLite推理""" print(f"\n5. 测试TFLite推理 ({num_tests}个样本)...") if self.tflite_model is None: with open('cifar10_model.tflite', 'rb') as f: self.tflite_model = f.read() # 加载TFLite模型 interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() # 类别名称 class_names = ['飞机', '汽车', '鸟', '猫', '鹿', '狗', '青蛙', '马', '船', '卡车'] correct = 0 times = [] for i in range(min(num_tests, len(x_test))): # 准备输入 input_data = x_test[i:i+1] # 推理 start_time = time.perf_counter() interpreter.set_tensor(input_details[0]['index'], input_data) interpreter.invoke() inference_time = time.perf_counter() - start_time times.append(inference_time) # 获取输出 output = interpreter.get_tensor(output_details[0]['index']) predicted_class = np.argmax(output[0]) actual_class = np.argmax(y_test[i]) # 检查是否正确 if predicted_class == actual_class: correct += 1 print(f"样本 {i+1}: 预测={class_names[predicted_class]:<5} " f"实际={class_names[actual_class]:<5} " f"时间={inference_time*1000:.1f}ms " f"{'✓' if predicted_class == actual_class else '✗'}") accuracy = correct / num_tests avg_time = np.mean(times) * 1000 print(f"\n推理统计:") print(f" 准确率: {accuracy:.1%} ({correct}/{num_tests})") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return accuracy, avg_time def benchmark_performance(self, x_test): """性能基准测试""" print("\n6. 性能基准测试...") interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() # 预热 test_input = x_test[0:1] for _ in range(10): interpreter.set_tensor(input_details[0]['index'], test_input) interpreter.invoke() # 基准测试 num_runs = 100 start_time = time.perf_counter() for _ in range(num_runs): interpreter.invoke() total_time = time.perf_counter() - start_time avg_time = total_time / num_runs * 1000 print(f"基准测试结果:") print(f" 总推理次数: {num_runs}") print(f" 总时间: {total_time*1000:.1f}ms") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return avg_time def save_model_summary(self): """保存模型摘要""" summary = [] self.model.summary(print_fn=lambda x: summary.append(x)) with open('model_summary.txt', 'w') as f: f.write('\n'.join(summary)) f.write(f"\n\n模型信息:") f.write(f"\n参数数量: {self.model.count_params():,}") f.write(f"\n保存时间: {time.ctime()}") print("模型摘要已保存: model_summary.txt") def main(): """主函数""" print("=" * 60) print("CIFAR10 快速训练、测试、部署管道") print("=" * 60) # 创建管道 pipeline = CIFAR10QuickPipeline() # 1. 加载数据 (x_train, y_train), (x_test, y_test) = pipeline.load_data(sample_size=2000) # 2. 创建模型 pipeline.create_simple_model() # 3. 训练模型 history = pipeline.train_model(x_train, y_train, x_test, y_test, epochs=15) # 4. 保存模型摘要 pipeline.save_model_summary() # 5. 转换为TFLite pipeline.convert_to_tflite() # 6. 测试推理 pipeline.test_tflite_inference(x_test, y_test, num_tests=20) # 7. 性能测试 pipeline.benchmark_performance(x_test) print("\n" + "=" * 60) print("流程完成!生成的文件:") print(" 1. cifar10_model.tflite - TFLite模型") print(" 2. cifar10_model_array.h - C数组格式") print(" 3. model_summary.txt - 模型摘要") print("=" * 60) if __name__ == "__main__": main() ... VII. Conclusion The purpose of this paper is to take a common image classification scenario (CIFAR10) as an example, so that readers can quickly understand the complete process from data building, model creation, training, inference and validation, which can be used as an example of the tflm_cifar10 (end-side inference-based) front complement, this paper does not involve the end-side deployment and optimization.
記事全体を表示
RT1170 以太网中的自由缓冲区超出范围问题 您好, 我正在尝试从自定义板上的自定义项目中执行基本的以太网测试。作为该项目(该项目集成了不同的模块,如SD卡、CAN、GPIO、ADC、以太网和EEPROM)的一部分,基本的以太网发送和接收有待验证。但我在 ping 发送前遇到"freed buffer out of range 错误" 。我已经完成了与以太网有关的所有基本初始化和配置。我看到出现错误的原因是函数"ethernetif_rx_free" (enet_ethernetif_kinetis.c) 中的 LWIP_ASSERT("Freed buffer out of range", ((idx>= 0)&& (idx< ENET_RXBUFF_NUM))); 其中的 idx 值为负数。这一完整的功能可在 EVK 套件上使用。 还能缺少什么?请提出建议。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 大家好 这个问题也发生在我的 RT1024 客户板上,当我在某个地方放了一个断点然后它就停止了,然后恢复正常运行更有可能导致这个错误。 此致敬礼! Ping Re: Freed Buffer out of Range Issue in Ethernet for RT1170 如果示例项目在您的自定义板中运行良好,则问题似乎出在软件方面。 您使用的不是 FreeRTOS 对吗? 似乎有什么东西干扰了示例的行为,可能是缺少某些配置,或者只是示例流程受到应用程序其他部分的影响。 我建议你尝试使用最新的软件开发工具包版本,即2.15.000。如果您的问题在此版本中仍然出现,那么恐怕您的应用程序流程出现了问题。 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 是的,在自定义板中实现合并的源代码时会出现问题。但是,没有与其他接口合并的 Ethernet_PING 的单个来源在自定义板中运行良好。当以太网的单个源与其余接口合并时,就会出现问题。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 如果我没有理解错的话,当您运行 SDK 示例时,它是可以工作的。但当您添加自定义应用程序时,问题就出现了。你能确认吗? 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 实际上,以太网的各个源代码在自定义板中运行良好。当我尝试集成代码时,以太网无法正常工作。我观察到EIR 寄存器的第 25 (RXF)、26 (TXB) 和 27 (TXF) 位被设置为 0,RDAR 寄存器的第 24 位被更新为 0,但在以太网的工作代码中,这些寄存器被设置为 "1"。 我怀疑这些寄存器更新是由中断处理的,但我无法在自定义项目代码库中找到负责这些更新的特定处理程序。请帮帮我。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 请仔细检查是否有任何外围更改(例如:......)。为了让 EVK 示例在您的定制硬件中运行,您的项目中需要哪些外围实例? 如果您已经验证了这一点,看来问题出在硬件方面。 您是否已经用 HDG 验证了您的设计? 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 我使用的是 SDK 11.6.1 版。我正在尝试测试 lwip_ping_bm_cm7 示例。在 EVK 中运行正常。 但是,当尝试将所有源代码与以太网连接时,它在自定义板上不起作用。如果我们面临"Freed Buffer out of range" ,可能会出现什么问题?请帮我解决这个问题。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 您使用的是哪个版本的 SDK? 您用来测试的 SDK 示例是什么? 如果我理解正确,应用程序在 EVK 中运行正常,对吗? 此致, 丹尼尔
記事全体を表示
S32K344 Current Consumption during FOTA Could you advise an estimate for S32K344 current consumption during FOTA? We need it for an SBC component calculation exercise for customer support. In my understanding, there is no official NXP value specifically for “FOTA current consumption”, but based on Application note(AN14068) and behavior of the S32K3 family, FOTA current should be estimated using normal RUN‑mode current, because FOTA activates many high‑power blocks? S32K3 S32K344-WB  Re: S32K344 Current Consumption during FOTA Thank you for the clear instructions! I will guide to customer Re: S32K344 Current Consumption during FOTA Hi @YukoKinto, You are correct, there are no official values for FOTA current consumption, however, you can estimate it using the S32K Power Estimation Tool (PET).  Typically, a FOTA process uses the core running at/or near full frequency, along with: Flash operations (high current domain V25 + V11 load) QSPI if external flash image handling is used. HSE security engine if image authentication is enabled. Communication stack, such as CAN‑FD or Ethernet. With this, we can configure a bare-bones PET profile: Obviously, this will greatly depend on power supply, operating temperature, other peripherals at use, etc. Also keep in mind that current consumption may peak when flashing (Program/Erase Typ current consumption is 3.9mA). You can use this as a rough estimate and test the actual consumption once you have the FW working in the MCU. For an even closer estimate, you can separate the profiles for your FOTA stages: Download/Reception, Authentication, Flash programming, Verification. Note: The tool does not consider factors such as floating signals, external components, or voltage regulator efficiency. The data provided in the tool are estimations only based on ideal conditions. Actual results may vary. Best regards, Julián Re: S32K344 Current Consumption during FOTA Hi @narsimh_kamath, Yes! That seems okay for a rough estimate. Of course, this is without taking into consideration HW design and IOs being used. There are also some useful tips on the S32K3 Low Power Management AN and demos document (Hardware considerations, current measurement, etc.). Glad the feedback was helpful! Best regards, Julián Re: S32K344 Current Consumption during FOTA Hi @Julián_AragónM - thanks a lot for the extremely helpful feedback! The indicative estimate is valuable as all we need for now is maybe a ballpark. I will run with an assumption for now that during FOTA, the power consumption due to S32K344 is tentatively < 1W (1000 mW). Pls let me know if you a risk in this assessment.  @YukoKinto - thanks for initiating.
記事全体を表示
PCIe: i.MX 95: 複数の MSI IRQ ベクトルを割り当てる こんにちは、 PCIe2 インスタンス経由でコネクテッドされた i.MX95 ベースのシステムで ATH12K Wi-Fi モジュールを使用しています。 linux-imx lf‑6.12.y ベースのカーネルではこのセットアップは失敗しますが、lf‑6.6.y ベースのカーネルでは期待どおりに動作します。 カーネル ドライバは 16 個の MSI 割り込みを正常に要求し、受信します。しかし、その後、Wi-Fi モジュールの起動に失敗します。 [ 5.888139] ath12k_pci 0001:01:00.0:iommuグループ5に追加 [ 5.888506] ath12k_pci 0001:01:00.0:BAR 0 [mem 0xa10000000-0xa101fffff 64bit]: 割り当て済み [ 5.888553] ath12k_pci 0001:01:00.0:有効化デバイス (0000 -> 0002) [ 5.889315] ath12k_pci 0001:01:00.0:MSIベクター: 16 [ 5.889334] ath12k_pci 0001:01:00.0:ハードウェア名: wcn7850 hw2.0 [ 6.475718] ath12k_pci 0001:01:00.0:チップID 0x2 チップファミリー 0x4 ボードID 0xff soc_id 0x40170200 [ 6.475743] ath12k_pci 0001:01:00.0:fw_version 0x110cffff fw_build_timestamp 2025-06-25 09:26 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3 [ 7.647106] ath12k_pci 0001:01:00.0:制御応答完了、ポーリングを受信できませんでした。 [ 8.675241] ath12k_pci 0001:01:00.0:サービス接続タイムアウト [ 8.681002] ath12k_pci 0001:01:00.0:HTTへの接続に失敗しました: -110 [ 8.692180] ath12k_pci 0001:01:00.0:コアの起動に失敗しました: -110 カーネルメーリングリスト[1]では別のPCIeデバイスに関する関連した議論がありましたが、まだ私たちのシステムで動作する構成には至っていません。 どうすれば最善の進め方でしょうか? 再開まで今しばらくお待ちください。 最大 [1] https://lore.kernel.org/all/1819305.VLH7GnMWUR@steina-w/ Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors こんにちは、 i,MX95 はまだ初期段階であり、一部の構成はデザインされていません。しかし、PCIe2経由でATH12Kを搭載したi.MX95は lf-6.12.y ですが、 lf-6.6.y で作業中ですこれは、新しいカーネルの PCIe または Wi-Fi スタックにおける回帰またはドライバー相互作用の変更を示唆しており、PCIe パワーマネージメント (ASPM)、MSI マッピング、または ATH12K の特定の PCIe エンドポイントの癖に関係している可能性があります。多くの場合、カーネル パッチを適用するか、新しいカーネルのブート引数で ASPM を無効にすることで解決できます。dmesg で PCIe エラーを確認し、デバイスツリーを比較し、NXP/Linux カーネル メーリング リストで関連するコミットを探します。  考えられる原因とトラブルシューティングの手順を次に示します。 1. カーネルログを確認する ( dmesg ) PCIe エラーを探す: 障害が発生した lf-6.12.y カーネルの dmesg で、「PCI」、「MSI」、「ATH12K」、「Error」、「Firmware」、または「Timeout」メッセージを検索します。 ファームウェアのロード: ath12k ファームウェアが正しくロードされているかどうか、および初期化中にエラーが発生していないかどうかを確認します。  2. PCIe電源管理(ASPM) 一般的な問題:新しいカーネルでは、多くの場合、Active State パワーマネージメント (ASPM) がデフォルトで有効になっています。これにより、組み込みシステム上の ATH12K などの PCIe デバイス、特に古いファームウェア/ハードウェアで問題が発生する可能性があります。 ASPM を無効にしてみてください:カーネル ブート引数 (U-Boot または GRUB など) に pcie_aspm=off を追加して、再度テストします。  3. Devicetree/DTBの違い DTB の比較:両方のカーネル ( .dtb ファイル) で使用されるデバイス ツリー BLOB (DTB) を生成して比較します。特に割り込み、電源ドメイン、または互換性プロパティに関連する、 pci2 の PCIe ノードの変更を探します。  4. カーネルドライバー/ファームウェアの回帰 特定のコミット: ATH12K ドライバ ( ath12k )、 mac80211 、または lf-6.12.y のコア PCIe/Arm コードによって、セットアップを壊す変更が導入された可能性があります。 メーリング リストを検索: ath12k 、 i.MX95 、およびそれ以降のカーネル (6.12+) に関するパッチやディスカッションについては、Linux カーネル メーリング リスト (LKML) および NXP のリストを確認してください。  5. MSIの取り扱い 割り込み再マッピング:割り込みを受信すると、その処理方法 (MSI-X と MSI、割り込み再マッピング) が微妙に変わる場合があります。 proc/interrupts で割り込みをチェックします。カーネル間で割り込みの分布またはカウントが異なるかどうかを確認します。  6. ファームウェアブロブ ファームウェア バージョン:新しいカーネルのドライバと互換性のある、ATH12K 用の正しいファームウェアを使用していることを確認します。新しいドライバには新しいファームウェアが必要になる場合があります。  要約すると、 dmesg から始めてASPMを無効にしてみてください。これらは、組み込みプラットフォームの新しいカーネルでPCIe Wi-Fiの障害が発生する最も一般的な原因です。   よろしくお願いします。 Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors 提案は問題をデバッグするための良い指針でしたが、解決策を見つけることができませんでした。つまり、すべての MSI IRQ ベクトルがドライバ内の IRQ ルーチンをトリガーしたわけではありません。 最終的には、ath12k ドライバーを変更して、1 つの MSI IRQ のみを要求するようにすることで、この問題を回避しました。 現在の Linux マスターにはこの問題は発生しないことに注意してください。 よろしくお願いします。 最大
記事全体を表示
S32DS3.5 デバッグ s32g274 PEMicro を使用 S32g274 M7 コア用の S32DS3.5 デバッグ ツールを使用して、CAN などの外部ペリフェラルのレジスタの値を表示するにはどうすればよいですか? Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご投稿ありがとうございます。 次の方法を試してみることをお勧めします。 私の側でテストしたところ、問題なく動作しました お役に立てれば幸いです。 BR チェイン Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご返信ありがとうございます。 これは新しい質問であり、このトピックのタイトルとは直接関係がないため、他のユーザーが検索/参照しやすいように、次回は新しい投稿を作成することをお勧めします。ご理解のほどよろしくお願いいたします。 この問題に関しては、私の意見では、最初の elf (ブートローダーなど) をロードし、第 2 段階にジャンプする前にブレークポイントを挿入し、さらに image2 (アプリケーションなど) のシンボルもロードして、デバッグをさらに続行することができます。 BR チェイン Re: S32DS3.5 debug s32g274 use PEMicro ブートローダの実行後に APP プログラムにジャンプし、APP プログラムにブレークポイントを追加したいと考えています。デバッグの設定方法を知りたいです。 Re: S32DS3.5 debug s32g274 use PEMicro もう一つ問題があります。S32G274 の M コア用のブートローダーと APP プログラムを持っています。S32DS コンパイラを使用して、ブートローダの APP へのジャンプとその後の動作をデバッグおよびテストするにはどうすればよいですか? Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご返信ありがとうございます。 あなたが言及したようなケースでは、たとえば、通常はブートローダを QSPI にフラッシュし、M コア アプリケーションの先頭に無限ループを追加し、QSPI 経由でボードを起動してデバッガ経由でボードを接続し、最後に M コア elf をロードしてさらにデバッグします。このようなCASEをデバッグするには、他にもいくつかの方法があるはずですが、これは単なる例です。 BR チェイン
記事全体を表示
iMX93の全コアにZephyrを搭載 こんにちは、 iMX93 のすべてのコアで RTOS を実行したいと考えています。それは可能ですか? Zephyr の Web サイトを見ると、FRDM-IMX93 ボードの M33 コアで Zephyr を実行するプロジェクトがあるようです。また、A55 コアで Zephyr を実行するプロジェクトもあります。 しかし、両方実行することはできますか?両方の A55 プロセッサで別々の Zephyr プロジェクトを実行できますか? チップの初期化はどのように機能しますか。クロックやメモリコントローラの初期化のようなものですか?誰がそんなことをするのでしょうか? 不可能な場合は、MCUXPresso を使用して M33 コア上で RTOS を実行し、チップを初期化することはできますか?両方の A55 コアに Zephyr を使用しますか? すべてのコアで RTOS を実行する方法は何ですか? Re: Zephyr on all cores of a iMX93 こんにちは@simmania 2x A55 で実行される 2 つの Zephyr プロジェクトの場合、これはサポートされません。サポートされているフレームワークは、Linux を実行する A55 --> Jailhouse --> Zephyr を実行するその他の A55 であるため、Jailhouse がハードウェアのアイソレータを管理する必要があります。 不可能な場合は、MCUXPresso を使用して M33 コア上で RTOS を実行し、チップを初期化することはできますか?両方の A55 コアに Zephyr を使用しますか? --> i.MX93は、ブートROMからM33を起動する低消費電力ブートをサポートしています。目的を達成するには、SDKのコードを大幅に書き換える必要があります。根本的な問題は、DDRを誰が初期化するかです。ドキュメントによると、U-Bootを維持するのが最適な選択です。U-BootはM33とA55プロセッサの両方でZephyrを同時にロードできるためです。 https://docs.zephyrproject.org/latest/boards/nxp/imx93_evk/doc/index.html よろしくお願いします、 志明 Re: Zephyr on all cores of a iMX93 NXPの社員によると、銛を使えば可能だという。 NXPのテクニカルサポートは、それは不可能だと言っています。 非常に紛らわしい。 Re: Zephyr on all cores of a iMX93 iMX93のAコアとmコアの両方がZephyrリリースをサポートしています。ZephyrランディングページにアクセスしてMPU Zephyr使用ガイドを入手してください。Aコアとmコアの両方でZephyrを同時に実行したい場合は、NXPのHarpoonリリースを探してください。 https://www.nxp.com/design/design-center/software/embedded-software/zephyr-os-for-edge-connected-devices:ZEPHYR-OS-EDGE Re: Zephyr on all cores of a iMX93 Harpoonのドキュメントで、以下の記述を見つけました。 Harpoonは、Linuxディストリビューション上で並列動作する1つ(または複数)のCortex-Aコア上で動作するRTOS上で、リアルタイム処理能力が要求されるアプリケーションを開発するための環境を提供し、64ビットArmアーキテクチャを活用して高いパフォーマンスを実現します。 つまり、一部のコアではまだLinuxが必要なのです。つまり、iMX93の全コアでZephyrを実行することは不可能のようだ。 Re: Zephyr on all cores of a iMX93 @simmania コアユーザーガイドはこちら UG10199:NXP MPU Cortex-Aコア Zephyrユーザーガイド | NXPセミコンダクターズ Zephyrのウェブページには、すでに93 Aコアとmコアのサポートについて記載されています。 i.MX93 EVK — Zephyrプロジェクトドキュメント 銛ユーザーガイド UG10170:Harpoonユーザーガイド|NXPセミコンダクターズ Re: Zephyr on all cores of a iMX93 ご回答ありがとうございます。 しかし、私たちはまだiMX93を使った開発を行っておらず、私たちにとってはまだ明確な答えが出ていません。 私たちは現在、新しいプロジェクトで使用するハードウェアを選定しているところです。今私たちが知りたいのは、Linuxを必要とせずにZephyrをすべてのコアで実行できるかどうかだけです。 Re: Zephyr on all cores of a iMX93 @simmania 1 つの A コアで Harpoon を実行し、別の A コアで Zephyr を実行し、mcore で Zephyr を実行することもできます。あるいは、A コアでネイティブ Zephyr を実行し、mcore Zephyr を実行する BootROM を使用することもできます。 プログラム flash.bin を UUU を使用して SD/eMMC に書き込む — MCUXpresso SDK ドキュメントを参照してください。 ステップ4でzephyr.binをimx-mkimage/i.MX9のm33_image.binにコピーしてフラッシュbinを作成します 対応するLinux BSPリリースからブートイメージとimx-mkimageソースリポジトリを入手してください。imx-mkimage/i.MX9に配置する必要のあるブートイメージは以下のとおりです。 - u-boot-imx93evk.bin-sd (rename to u-boot.bin) - u-boot-spl.bin-imx93evk-sd (rename to u-boot-spl.bin) - bl31-imx93.bin (rename to bl31.bin) - mx93a0-ahab-container.img - lpddr4_dmem_1d_v202201.bin - lpddr4_dmem_2d_v202201.bin - lpddr4_imem_1d_v202201.bin - lpddr4_imem_2d_v202201.bin Re: Zephyr on all cores of a iMX93 実際、私はついにFRDM iMX93上で、両方のA55コアを使用してSMPでZephyrを動作させることに成功しました。鍵は「```west flash -r spsdk``` でした」でした。 Re: Zephyr on all cores of a iMX93 リアルタイムエッジソフトウェアユーザーガイドの第3.3章「柔軟なリアルタイムシステム」を参照してください。 表30は、i.MX 93プラットフォーム上で実行可能なすべてのAMPシステムを示しています。 また、 hetogeneous-multicore は、これらの可能なすべての AMP システムを実行するためのハローワールドの例を提供します。たとえば、i.MX 93 は構築でき、Realtime Edge も次の事前構築済みバイナリ イメージを提供します。 i.MX93の各Cortex-Aコアで2つのZephyrを実行するための重要な技術的ポイント: 1. リソースの割り当て 第3.3.2.2章の技術的なポイントを参照し、リソースの競合を避けるために、これら2つのZephyrインスタンスには異なるUARTとRAMメモリを使用してください。 heterogeneous-multicoreを使用せずに Zephyr のサンプルを構築することもできますが、リソース割り当ての方法についてはheterogeneous-multicoreを参照することができます。 2. 起動方法 現在、ubootコマンドを使用してこれら2つのZephyrインストールを起動できます。最初のZephyrは「cpu release」コマンドを使用して起動し、次に「go」コマンドを使用して起動します。詳細については、ユーザーガイドを参照してください。 また、Real-time Edgeで提供されるCortex-Aコアの統合ライフマネジメントをサポートするには、TF-A、U-BootなどのReal-time Edgeリポジトリを使用する必要があります。 そして、次回のRealtime Edgeリリース(7月リリース予定)では、「高速起動」という新機能が提供されます。この新機能により、TF-Aはこれら2つのZephyrインスタンスを1秒未満で起動できるようになります。 この件に関して他に何かお手伝いが必要な場合は、遠慮なくお知らせください。ありがとうございます。 Re: Zephyr on all cores of a iMX93 それは素晴らしいですね! 銛を使う?しかし、Harpoonのドキュメントにはこう書かれている。 「システムはLinux上で起動し、Jailhouseハイパーバイザがハードウェアを分割して、LinuxとゲストRTOSを並行して実行します。」 私たちは、LinuxなしでZephyrがすべてのコアで動作することを望んでいます。 Re: Zephyr on all cores of a iMX93 答えはイエスですが、これ以上の詳細情報は提供できません。さらに質問がある場合は、 @Jiafei_Pan までお問い合わせください。 Re: Zephyr on all cores of a iMX93 同時に2つのZephyrアプリケーションを実行することについて話しているのですか、それともSMPを使用して両方のコアをスケジューリングに利用できるようにしているアプリケーションについて話しているのですか? 2番目のケースには非常に興味があるのですが、うまく動作させることができません。 Re: Zephyr on all cores of a iMX93 @Jiafei_Pan さん、Harpoon を導入せずに A コアと mcore 上で 2 つの Zephyr を実行できるようにする方法について何か情報を提供していただけますか。ありがとう!
記事全体を表示
FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hello everyone, I'm seeking some clarification regarding the peripheral and the oscillator clock frequencies fed to the canFD module. Is my understanding correct that the peripheral clock is the CAN_CLK_ROOT in CMM that can be muxed and divided to have different frequencies, while the oscillator clock is the static 24MHz clock from the crystal oscillator? If so, does that mean that the duration of 1 time quanta is fixed to 41.67 ns which is what goes into the bit timing calculations? This doesn't seem right to me so I'd appreciate it if anyone can correct my confusion. I see that some of the equations in the RM involve both of these clocks. Thank you, Lam  i.MXRT 106x Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hi again @mayliu1 , so if fSYS is the system clock frequency, would it be AHB_CLK_ROOT, which is 420Mhz in my case? if so, is it involved in the calculation of the time quanta? I don't suppose so but the language, particularly the use of the words oscillator and peripheral, is a little bit confusing to me. I initially did think that the time quanta was directly derived from just the flexCAN clock. Best Regards, Lam Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hi @LamK , Thank you so much for your interest in our products and for using our community. In IMXRT1060RM, it describe as below shown. fCANCLK is the Protocol Engine (PE) Clock , it can be configured via CAN_CLK_ROOT. fSYS is the frequency of operation of the system clock. Also, the duration TQ is not  fixed to 41.67 ns, it  involve both the CAN engine clock and the  PRESDIV parameter.    For more detail information about Clock, I suggest you can check Clocks in  Config Tools . Best Regards MayLiu Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Hi @LamK , Thanks for your updated information. Regarding your question: so if fSYS is the system clock frequency, would it be AHB_CLK_ROOT, which is 420Mhz in my case? I do not think so. Please check the IMXRT1060RM. Best Regards MayLiu Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification Ok thank you @mayliu1, I could have found that information about the clocks in the Clock Consumers tab, looks pretty useful. Ultimately I was concerned that the fSYS could be involved in the calculation of time quanta when I saw the equation NumClkBit which made me equate peripheral clocks with time quanta, which wasn't the case and was where my confusion come from. Thank you for your help again. Best Regards, Lam Re: FlexCAN3FD fSYS (CHI) vs. fCANCLK (PE) clarification You are welcome.
記事全体を表示
FreeMASTER Plugin Config Failure I was able to successfully conduct the CAN communication connection test in Figure 1, but after clicking OK, the fault as shown in Figure 2 occurred. How can I solve this problem? In addition, I have used mbdt for freemaster development on S32K344, but I have not succeeded in polling mode CAN communication. Is it not supported? If it is supported, could you provide me with a sample, preferably for the S32K3 series Re: FreeMASTER Plugin Config Failure Now I have also implemented the polling mode and tested the connection of the can based freemaster. The effect is the same as the above picture. I will continue to seek help Re: FreeMASTER Plugin Config Failure Hi @zuozuo, Are you using the MATLAB or S32 Design Studio as your primary development environment ? In the later case - did you try the example applications that come with FreeMASTER Driver Update site ? In case you are using MATLAB, a dedicated team is handling the MatLAB Toolbox and I will move your query to MBDT community space. Re: FreeMASTER Plugin Config Failure quickly ran from another computer with an earlier version of the pc side software and it worked fine. so i manually copied the connection string to the Option field and it worked. so the issue is either on the 1.16.0 or the PC admin previlage..  Re: FreeMASTER Plugin Config Failure Hello, one thing to try is to re-register the CAN communication plug-in in your system. Please close the FreeMASTER, and navigate to installation location. Then run the register.bat "As administrator". See more details in one of the earlier posts in this forum. Regards, Michal Re: FreeMASTER Plugin Config Failure Hi, Michal, thanks for the hint but it does not seem to work. by pasting a plain text string i could open the port. the computer that i had an older version of Freemaster 3.2 no longer works after i upgraded it to the latest version. i ran the register.bat as admin but the same error message appears. now two computers give me the same error. Re: FreeMASTER Plugin Config Failure Hello, according to the method shown in your picture, I am using the freemaster3.2 version of the host computer. I have tried on both a Windows 11 and a Windows 10 computer, but neither worked, Re: FreeMASTER Plugin Config Failure I use the mbed toolchain to generate the underlying driver code for freemaster. Currently, both polling mode and interrupt mode can successfully connect with the host computer, and there are no issues with the slave computer. The only problem is that the freemaster host computer cannot save its own configuration options in the freemaster host computer project。 Re: FreeMASTER Plugin Config Failure I use the matlab toolchain to generate the underlying driver code for freemaster. Currently, both polling mode and interrupt mode can successfully connect with the host computer, and there are no issues with the slave computer. The only problem is that the freemaster host computer cannot save its own configuration options in the freemaster host computer project. Re: FreeMASTER Plugin Config Failure Hello the CAN plugin version 1.16.0 (in FreeMASTER 3.2.6.3) indeed adds the CAN-FD support for ZLG and some other vendors. It also adds support for the new ZLG ZCAN library. After  the registrer.bat has been run, we can be sure the plug-in is correctly registered in the system.   I cannot replicate the issues you are facing. The connection string for the ZCAN devices appears normally in my  case:  drv=ZCAN;port=1;bitrate=500000;cmdid=0x7aa;rspid=0x7aa;tmo=500 Please try the following: Paste the ZCAN string to the Options dialog manually and then open the plug-in configuration. Then close it without making any changes. Will it still show the error? Just as an experiment, try to enable the CAN-FD mode for the USBCANFD_200U device and press OK. Try to select another CAN driver, for example IXXAT, even if you do not have any physical device, then press OK. Please let me know if it shows the error in all 3 cases. Thanks, Michal Re: FreeMASTER Plugin Config Failure Hello zuozuo, I am facing the same issue. can you please share any example model with me or just tell me how I can resolve the issue. I also noticed one thing, when there is only one CAN instance with single TX and Rx CAN object ID its working, but when we add more can instances each having tx CAN objectId and rx CAN objectId its not working, if you have solution please share with me. Thanks. Re: FreeMASTER Plugin Config Failure Thank you for your reply. I tested the above three steps, and each of them would report the error: "The plugin configuration dialog failed. Try to specify the connectstring manually". Additionally, I have run register.bat in administrator mode. Re: FreeMASTER Plugin Config Failure Hello! 1. I manually added the information you provided to the command bar, then clicked "configure", and after entering, I clicked "ok", everything was normal. 2. Since I manually added the command information you provided correctly, everything has been normal. Whether I check or uncheck "canfd" is normal, even if I clear the command line, reconfigure it, and then click "ok", everything is still normal. 3. I use Kvaser, and everything is normal Re: FreeMASTER Plugin Config Failure I am using PEAK CAN and still face this issue. Can you share simulink model. My S32DS studio example is working in Design Studio. Re: FreeMASTER Plugin Config Failure I use kvaser for CAN connection and testing, and everything works successfully; however, when I use the zlg driver, the aforementioned issues occur. Re: FreeMASTER Plugin Config Failure Hello, we are trying to analyze and resolve the issue, but unfortunately we were not able to replicate it on any of our test platforms. Please use the manually-edited connect string until this is fixed. One question: when ZLG/ZCAN driver is selected, does the error appear when you press  the CANCEL button in the plug-in dialog? Thanks, Michal Re: FreeMASTER Plugin Config Failure I am using the PEAK CAN Re: FreeMASTER Plugin Config Failure Hello,  we have identified the problem in FreeMASTER CAN plug-in and we are working on a fix. It appeared the plug-in has internally depended on Kvaser CAN driver and was not working correctly when Kvaser software was missing. It appears the Kvaser files are required even if using ZLG or any other CAN interface. Before the fix is released in the upcoming FreeMASTER 3.2.7, a quick workaround is to install the latest Kvaser driver pack to your Windows system. You can download the Kvaser drivers here. Thanks to all of you who had reported the issue and described the symptoms. Please reply to this message if installing the latest Kvaser drivers does not help to resolve the issue. Thanks, Michal Re: FreeMASTER Plugin Config Failure Yes,It's useful. Re: FreeMASTER Plugin Config Failure Hello, theoretically yes, you may need to install Kvaser drivers even in case you use a PEAK device. The dependency on some Kvaser files causes the Plug-in configuration dialog to fail when creating a connection string regardless of the device selected. It may happen by some lucky coincidence that the issue will not appear with PEAK or other devices, but if it does, installing the Kvaser driver shall always help. This issue will be fixed in future FreeMASTER version. Regards, Michal Re: FreeMASTER Plugin Config Failure Even for PEAK-CAN we need to do this? Re: FreeMASTER Plugin Config Failure Note that the version 3.2.7 has been released. The issue discussed in this thread shall now be fixed. Regards, Michal
記事全体を表示
RW612 - WiFi 信道状态信息(CSI) 我目前正试图从 FRDM-RW612 中提取 CSI 数据。我假设我缺少导致 CSI 回调无法运行的关键元器件,因为错误配置参数确实会导致固件宣布错误,例如频道配置不正确等。不幸的是,我仍然无法获得 CSI 的任何回调。 如有任何帮助,我们将不胜感激! Re: RW612 - WiFi Channel State Information (CSI) 亲爱的@rb_ots、 我们为客户提供了《渠道状态信息 (CSI) 应用笔记》。(AN14281) 该应用程序可指导您逐步在 FRDM-RW612 上进行 CSI 测试。 您可以通过链接访问 AN,这是一份在线文件。 https://docs.nxp.com/bundle/AN14281/page/topics/about_this_document.html 请试试看 此致, 卫东 Re: RW612 - WiFi Channel State Information (CSI) 是的!这正是我要找的东西,帮了我大忙。
記事全体を表示
如何:使用 NXP Vision SDK 示例项目中的现有代码在 S32DS 中创建新的 Makefile 项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文档详细介绍了如何在 S32 Design Studio 中创建新项目,以及如何使用 NXP Vision SDK 示例项目中提供的现有代码和 makefile 进行构建。如果您使用来自任何其他来源的代码创建新的 makefile 项目,则过程可能会有所不同。 在从现有代码创建新的 makefile 项目之前,我们需要向环境变量 PATH 添加一些路径和几个新的环境变量。添加这些路径和变量主要有 3 种方法。哪种方法取决于您的需要。 方法 1 路径和变量可以单独添加到每个项目。如果您只希望这些更改影响少数项目,这将很有用。或者如果您的项目需要不同的路径和变量。注意:这些更改将在项目创建后进行(如下面的步骤 15 - 17 所示) 方法 2 路径和变量可以添加到 S32DS 内的整个工作区。这些在 S32DS 之外是不可见的,因此不会影响整个 Windows 环境。如果您有大量对路径和变量有共同要求的项目,并且不希望它们在 S32DS 之外的任何工具中可见,这将非常有用。 方法 3 路径和变量可以全局添加到 Windows 环境中,并将影响所有已安装的工具。不推荐使用这种方法。 选择方法后,将以下路径添加到 PATH 变量(使用 S32DS 的默认安装设置显示的路径): C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm32-eabi\bin C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm64-eabi\bin C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm64-linux\bin C:\NXP\S32DS.3.1\S32DS\build_tools\msys32\mingw32\bin 或者在 Eclipse 中(可以使用变量,如果 S32DS 安装布局在未来版本中发生变化,则无需更新这些变量) ${S32DS_ARM32_TOOLCHAIN_DIR} ${S32DS_ARM64_LINUX_TOOLCHAIN_DIR} ${S32DS_ARM64_TOOLCHAIN_DIR} ${S32DS_GCC_TOOCHAIN_DIR} 还需要添加以下 Windows 系统变量: 变量名称:S32V234_SDK_ROOT 变量值:C:\NXP\S32DS_Vision_v2018.R1\S32DS\s32v234_sdk 变量名称:APU_TOOLS 变量值:C:\NXP\S32DS_Vision_v2018.R1\S32DS\APUC 以下步骤演示了基于上述方法 1 的过程。 1)启动S32DS for Vision 2)点击“新建” 3)选择“使用现有代码的 Makefile 项目” 4)选择下一步 5)输入项目名称。 6)对于“现有代码位置”, a)选择“浏览… ”,然后选择目录C:\NXP\S32DS.3.1\S32DS\software\VSDK_S32V2_RTM_1_3_0\s32v234_sdk\demos\isp\isp_sonyimx224_rgb_yuv_gs8    b) Click OK 7)对于“索引器设置工具链”,选择与您所需的构建配置相匹配的选项。对于我们这里的示例,我们将选择“ ARM Linux 64 位目标二进制工具链”。有关工具链选项的更多详细信息,请参阅 Vision 扩展包用户指南。这设置了一些工具链路径,但稍后我们将根据 VSDK 示例的特定需求设置更多路径。 8)点击完成 9) 在项目资源管理器中右键单击该项目。选择“属性” 10) 转到“C/C++ 构建”部分 11)转到“行为”选项卡,在“构建”旁边的字段中输入: ISP 示例:' allsub ' APEX 示例:' APU_COMP=nxp allsub ' 12)转到“构建器设置”选项卡,在“构建位置”部分更改“构建目录”的路径。点击“工作区... ”按钮 13) 在文件夹选择菜单中,选择子文件夹“ build-v234ce-gnu-linux-d ”,然后单击“确定” 14)转到“环境”部分 15)选择环境变量“ PATH ”,然后单击“编辑... ” 16)将路径变量添加到值字段,每个变量用逗号“;”分隔 ${S32DS_ARM32_TOOLCHAIN_DIR} ${S32DS_ARM64_LINUX_TOOLCHAIN_DIR} ${S32DS_ARM64_TOOLCHAIN_DIR} ${S32DS_GCC_TOOCHAIN_DIR} 单击OK。 17) Click 'Add...' 18) 单击“添加... ”,然后输入变量名称“ APU_TOOLS ”和值“ ${S32DS_APU_TOOLCHAIN_DIR} ” 单击OK。 19)单击“确定”关闭“属性”菜单。 20)点击“构建” 21) 构建完成后,将创建二进制文件(ELF)
記事全体を表示
适用于 ARM 2018.R1 的 S32 Design Studio - 更新 4 现已发布 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />       产品发布公告 汽车微控制器和处理器 ARM ® 2018.R1 版 S32 设计工作室  Update 4          新增内容 适用于 S32K14x 的 S32 SDK 1.9.0 BETA 版。这是一个累积更新 - 它包含之前更新的所有内容(更新 1 、更新 2 、更新 3 ) 要在新项目向导中选择新的 SDK,必须将工具链更改为“ARM Bare-Metal 32 位目标二进制工具链” 安装说明 此更新适用于 在线的 (通过 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 文件。 选择所有可用项目并单击“下一步”按钮。   这将启动更新安装过程。 概述
記事全体を表示
Single channel ABS SB0401 Monitoring Module Issue Hello @nxp , I’m using the SB0401 Single-Channel ABS module IC with an NXP S32K31xEVB-Q48 MCU as the SPI master. I transmit the monitoring/module data once every 10 ms, but the SB0401 monitoring module appears to reset/restart repeatedly (about once every 50 ms). Along with this, my SPI “error count” increases on every SPI transfer. Below are the setup and my specific questions. HW/SW setup MCU (SPI Master): S32K31xEVB-Q48 (S32K31x family) Device: SB0401 (Single-Channel ABS module IC) Interface: SPI (LPSPI) (DMA based transfers) Periodic transmission: every 10 ms Observed issue: SB0401 monitoring module reset/restart every ~50 ms (see attached logs) Observed behavior The error counter increments for every SPI byte/word transfer. I read AR (seed) from SB0401 message 18 and calculate MR based on that AR. Despite sending frames periodically, the SB0401 monitoring module resets/restarts. Questions MR calculation vs AR (Message 18) My error count increases on every SPI transfer. I calculate MR using the AR value received from SB0401 message 18. Is it expected that an error counter would increment on every transfer in this condition, or does it indicate MR/AR logic is incorrect? Please confirm the correct MR computation flow/timing relative to AR (message 18) and any common pitfalls (e.g., using stale AR, wrong byte/bit extraction, timing window, counter alignment). ACK position when writing Message 0 If I write data into Message 0 at TxBuf[0], where should I check the acknowledgement? Example: For a write in TxBuf[0], does the ACK appear in RxBuf[0] (same word) or in RxBuf[1] (next word)? If there is a defined “ACK occurs in the following SPI word/frame” rule, please share the exact mapping. Reference SW / CDD driver Is there any reference CDD / example driver for SB0401 (C source or AUTOSAR-style CDD integration) that can be shared for guidance? If not shareable, can you recommend the official SB0401 software package / app note / reference implementation details to follow? Re: Single channel ABS SB0401 Monitoring Module Issue Hi Is possible to show your company and project information here? Re: Single channel ABS SB0401 Monitoring Module Issue Hi @guoweisun     yeah ok.     Company:  Ettiksoft technologies Pvt ltd.     project:  Two-wheeler single channel ABS.  Re: Single channel ABS SB0401 Monitoring Module Issue This part doesn't have CDD or other software drive and the reference schematic also need customer sign NDA then share. Re: Single channel ABS SB0401 Monitoring Module Issue Let me check again for the reference code about this special part. Re: Single channel ABS SB0401 Monitoring Module Issue For the example code I can't post here, could you please submit ticket from case port? Home Re: Single channel ABS SB0401 Monitoring Module Issue hello @guoweisun    ok.  Any other reference code is there, like this module behaviour. 
記事全体を表示
LS1028A 2.5G SGMII 以太网无法与 QCA8081 配合使用 我们在 LS1028A 的 Serdes Lane A 上使用 QCA8081 PHY 实现 2.5G SGMII。 我们启用了 QCA8081 驱动程序 (CONFIG_QCA808X_PHY=y),并更新了 rcw(rcw_1500_sdboot.rcw) 和 dts(ls1028a-rdb.dts)如下图所示。 rcw: SRDS_PRTCL_S1_L0=1 SRDS_PRTCL_S1_L1=5 SRDS_PRTCL_S1_L2=11 SRDS_PRTCL_S1_L3=11 dts: &enetc_mdio_pf3 { sgmii_phy0: ethernet-phy@24 { reg =<0x18>; }; }; &enetc_port0 { phy-handle =<& sgmii_phy0>; phy-mode ="2500base-x"; status ="okay"; }; 观察结果: Ping 在 2.5G 模式下不起作用。但 1G 模式正常。 2.5G 的 Ethtool 输出: root@ls1028ardb:/home/user# ethtool eno0 eno0 的设置: 支持的端口:[ ] 支持的链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full 支持暂停帧使用:对称只接收 支持自动协商:是 支持 FEC 模式:未报告 广告链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full 广告暂停帧使用:对称只接收 广告自动协商:是 宣传的 FEC 模式:未报告 链接伙伴宣传的链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full 链接伙伴宣传的暂停帧使用:对称只接收 链路合作伙伴宣传的自动协商:是 链路合作伙伴宣传的 FEC 模式:未报告 速度:2500Mb/s 双工:全 自动协商:开 主从配置文件:首选从 主从状态:从 端口:双绞线 PHYAD:24 收发器:外部 MDI-X:关(自动) 支持唤醒:g 唤醒:d 检测到链接:是 Dmesg 日志: root@ls1028ardb:/home/user# dmesg | grep eno0 [ 13.165970] fsl_enetc 0000:00:00.0 eno0: 从 eth0 重命名 [ 13.721100] fsl_enetc 0000:00:00.0 eno0: PHY [0000:00:00.3:18]驱动程序 [Qualcomm QCA8081] (irq=POLL) [ 13.722673] fsl_enetc 0000:00:00.0 eno0: configuring for phy/2500base-x link mode [ 17.813736] fsl_enetc 0000:00:00.0 eno0: Link is Up - 2.5Gbps/Full - flow control rx/tx 如有遗漏,请提出宝贵意见。 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 感谢您的答复。 是的,我们还尝试了 SRDS_PRTCL_S1_L0 的 1 和 6 请参见所附 RCW 文件: /* * SerDes 协议 - 0x85bb * * 频率: * 内核 -- 1500 MHz * 平台 -- 400 MHz * DDR -- 1600 MHz * DDR 数据速率 -- 1.600 GT/s */ #include<../ls1028asi/ls1028a.rcwi> SYS_PLL_RAT=4 MEM_PLL_RAT=16 CGA_PLL1_RAT=15 CGA_PLL2_RAT=12 HWA_CGA_M1_CLK_SEL=1 HWA_CGA_M2_CLK_SEL=7 HWA_CGA_M3_CLK_SEL=6 HWA_CGA_M4_CLK_SEL=3 DDR_REFCLK_SEL=2 DRAM_LAT=1 BOOT_LOC=21 FLASH_CFG1=3 SYSCLK_FREQ=600 IIC2_PMUX=6 IIC3_PMUX=2 IIC4_PMUX=2 IIC5_PMUX=2 IIC6_PMUX=3 CLK_OUT_PMUX=2 EC1_SAI4_5_PMUX=5 EC1_SAI3_6_PMUX=5 USB3_CLK_FSEL=39 ENETC_RCW=3 GTX_CLK125_PMUX=2 SRDS /* PCIe 控制器的勘误表 */ #include<../ls1028asi/a008851.rcw> #include<../ls1028asi/a010477.rcw> #include<../ls1028asi/a009531.rcw> /* 增加 FSPI 时钟频率 */ #include<../ls1028asi/fspi_speed.rcw 我们为 Serdes 接口使用 100MHz 的参考时钟。 用于 QSGMII(2.5G)的 Serdes 通道 B分布式 4 端口)正在工作。 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 SRDS_PRTCL_S1_L0=1 SRDS_PRTCL_S1_L1=5 SRDS_PRTCL_S1_L2=11 SRDS_PRTCL_S1_L3=11 配置是否 srds_prtcl_s1_l0=0x1 srds_prtcl_s1_l1=0x5 srds_prtcl_s1_l2=0xb srds_prtcl_s1_l3=0xb   能否请您提供输入和 RCW 设置的 PLL 频率信息? 谢谢! Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 我们还使用125MHz的参考时钟进行了测试,并观察到了相同的结果。 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 亲爱的 June-Lu 我们计划对 SerDes 配置进行以下修改,以支持 SerDes 通道 A 上的 2.5G SGMII 操作: 按照 2.5G SGMII 操作的要求,将 SD1_REF_CLK1_P/N 和 SD1_REF_CLK2_P/N 的 SerD es 参考时钟更改 为 156.25 MHz 。 (目前我们使用的时钟发生器相同的时钟频率,仅测试 SerDes Lane A ) 将 SerDes PLL 参考时钟选择位[945:944] 从现有值 “00” 更新 为“10”。 你能帮我们做这个改变吗? 更改 协议选择至 "65BB用于所需的 SerDes 通道配置。 请确认是否需要进行其他更改(PLL 设置、SerDes 寄存器、RCW/DTS 更新或 PHY 相关配置)以支持这一更改? 期待您的支持。 同时附上我们的框图,供您参考。 谢谢 谨致问候 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 1.如果 SerDes 将 SD1_REF_CLK1_P/N 和 SD1_REF_CLK2_P /N 的参考时钟均设置为 156.25 MHz,那么如何实现 Q SGMII 和 PCIe。 2.SRDs_pll_ref_clk_sel_s1=2,请参阅 https://github.com/nxp-qoriq/rcw/blob/LSDK-21.08/ls1028asi/ls1028a.rcwi 由于这不是官方配置,您可以尝试一下。 谢谢!
記事全体を表示
发送时 CAN 忙 嗨,恩智浦社区、 我重定向了 CanIf_RxIndication 函数。当将 CAN 模块设置为环回模式时,测试成功,发送和接收的数据一致。 然而,当我退出环回模式时,却无法发送报文,Can_43_FLEXCAN_Write 函数返回 0x02(忙)。 MCU 的 tx 引脚与 rx 引脚数据同步,而不是预期发送的数据。Rx 数据比 tx 数据慢约 130ns,而且是连续发生的(大约每秒发送一帧)。 收发器是 TJA1043。我已将 STB 和 EN 引脚设置为高电平。CANH 和 CANL 保持不变。 下面是 ESR 寄存器的信息。请帮助排除可能的原因。 非常感谢! Re: CAN is busy when transmit Hi@Johnson97 在你提供的项目中,你的时钟配置完全错误。 您的 FXOSC 时钟为 20MHz 您设置的 MFI 为 120,ODIV2 为 4,超出了 PLL VCO 输出频率(240)的范围。 您必须遵循参考手册中的要求: 供你参考: 最后,不要忘记重新配置 FlexCan 的波特率设置。 Re: CAN is busy when transmit 抱歉,为该项目购买的 Autosar 软件包已指定使用此版本的 RTD。 因此,我需要根据该版本配置 mcal,并验证其是否无误。 您能安装这个版本并帮我排除故障吗? Re: CAN is busy when transmit Hi@Johnson97 您能否将 RTD 更新到新版本,或者修改 S32 DS 上的测试例程,以便我为您进行检查?(我还没有安装 RTD 版本)。 Re: CAN is busy when transmit 请查看随附的文件。RTD 软件包的版本是 sw32k3_s32m27x_rtd_rtd_r21-11_4.0.0_p19_d2403 Re: CAN is busy when transmit Hi@Johnson97 请分享您的项目,我将花一些时间为您进行审查。 Re: CAN is busy when transmit 非常感谢。问题已经解决。 除上述问题外,CAN 波特率相关寄存器的配置也与手册中规定的有效值不符。 微控制器 tx 引脚的波形符合预期。随后的问题应与收发器有关。 再次感谢您!
記事全体を表示
D1が赤く点灯しているため、S32K146EVB-Q144ボードをフラッシュできません 当初は正常に動作していた S32K146EVB-Q144 評価ボードを持っています。 Lin スタックを実装したデバッグ セッション中に、動作が停止しました。 コントローラをリセットすると、D1 の赤いライトが点灯し続け、他の 2 つの緑のライトも点灯したままになります。 USB ソースからの電源を選択するために、位置 2-3 の J10 と J107 を使用し、OpenSDA アプリのフラッシュ モードを選択するために、位置 2-3 の J104 を使用しました。 現在、私のコントローラは S32DS によってまったく検出されません。 症状はまったく同じであるように思われたので、以下の投稿に記載されている手順を試してみました。 Re: S32K144 D2 赤色 LED が常時点灯 - NXP コミュニティ ここで、P&E Kinetics Recovery Tool を使用して OpenSDA でプロセッサを停止できましたが、それでも新しいアプリケーションをフラッシュすることはできませんでした。 停止に成功しても再度点滅させることができず、赤色のライトが点灯したままになります。 コントローラはジャンパー J104 を調整することでブートローダーモードに入ることもでき、実際にブートローダーアプリをフラッシュすることもできました。しかし、どういうわけか私は再びフラッシュを書き込むことができず、サンプルの.srecをフラッシュしようとするとファイルでは、D2 は定期的に点滅し続けます (通常、正常に点滅すると 1 回点滅してからアプリの実行が開始されます)。 つまり、簡単に言うと: - コントローラがメインに到達できない、または継続的にリセットされる - コントローラはフラッシュに再度書き込むことができません (セキュリティ上の問題である可能性があります)。 私はデバッグ プローブを持っていないため、SEGGER-JLINK に関連するものを除き、上記の Thread で言及されているテクニックを試しました。私は PE Multilink Universal を持っていますが、フラッシュを回復/消去することはできません。 ボードの詳細は次のとおりです。 ボード名: S32K146EVB-Q144 MicroBootカーネルバージョン: 1.08 ブートローダーのバージョンは: 1.13 インストールされたアプリケーション: PEMicro EVB-S32K144 マスストレージ/デバッグアプリ アプリケーションのバージョン: 1.25 DUID は: 39A33939-91818199-37539805-F97AE678 EUID は: 4141A238-1BDB8733-1854BA22-D38368D6 TUID: 74823938-47328196-8576CC9B-0242983E TOAは次のとおりです: 86B6E505-56F042E0-79B2A114-62BA758F TOA2 は: 86B6E505-EB1A8A7C-AF6E54B6-43532420 SUID は: 86B6E505-5BA18877-37239804-8003EC65 MCU は永久にロックされますか? そうでない場合、どうすればボードを回復できますか? ハードウェアに障害があると思われますか?(参考までに、D2とD3が緑色に点灯しているのは、5Vと3.3Vの電源レールが正常に動作していることを意味していると思います) 物理的に大量消去する方法はありますか?(ボードがまったく検出されないため、S32DS 緊急キネティクス オプションは使用できません)。 OpenSDA チップの任意のピンを接地すると、フラッシュ メモリが消去されますか? Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red クリスマス休暇期間中は、サポートの応答時間は通常より長くなる場合がありますのでご了承ください。場合によっては、ご要望への対応が新年以降になることもあります。ご理解のほどよろしくお願いいたします。 Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red ハイ P&E リカバリ ユーティリティがMCU を停止したら、ツールを閉じます。 次にステップ3に進みます または ステップ4 S32K146 を再プログラムします。 これが原因かどうかは分かりませんが、 アプリケーションのバージョン: 1.25 。リセットボタンSW5を押したまま、USBケーブルを挿入して MSD-DEBUG-S32K146EVB-Q144_Pemicro_v121.SDA BOOTLOADER ドライブに挿入します。これにより、 アプリケーションバージョンを1.21に。 また添付しました lpit_periodic_interrupt_s32k146.srec 。 ちなみに、外付けのSegger J-Linkは必要ありません。ステップ6に従う場合: SW5を押しながらJ7を挿入すると、OpenSDAがブートローダーモードになります。そして、 SEGGER J-Linkアプリケーションファームウェア( OpenSDA_V1.bin )をOpenSDA_V1.binにコピーします。 オンボード デバッガーは J-Link になります。 よろしくお願いします、 ロビン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「解決策として承認」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red こんにちは、ロビン。 迅速なご返信ありがとうございます。MSD -DEBUG-S32K146EVB-Q144_Pemicro_v121.SDAにロールバックしてみましたが、 同じように動作します。ブートローダーアプリはフラッシュされますが、D1はまだ赤く点灯しており、.srecをフラッシュできません。kinetis 回復ツールを使用して停止した後のファイル。コントローラが srec をフラッシュしようとしているが、D2 が定期的に点滅するため失敗していることがわかります (通常は 3 ~ 4 回だけ点滅し、アプリがフラッシュされます)。 その後、ブートローダーをOpenSDA_V1.bin に切り替えて、その後 J-Link コマンダーを使用して接続を試みましたが、次のログが表示されました。 SEGGER J-Link Commander V8.94 (2025年12月10日 14:50:47 にコンパイル) DLLバージョンV8.94、2025年12月10日14:49:54にコンパイル USB経由でJ-Linkに接続しています...OK ファームウェア: J-Link OpenSDA コンパイル日: 2023年1月31日 13:42:36 ハードウェアバージョン: V1.00 J-Link の稼働時間(起動以降): 0d 00h 00m 28s シリアル番号: 621000000 VTref=3.300V ターゲット接続を確立するには「connect」と入力し、ヘルプを表示するには「?」と入力します J-Link>接続 デバイス/コアを指定してください。 : S32K146 選択ダイアログに「?」と入力してください デバイス>S32K146 ターゲットインターフェースを指定してください: J) JTAG (デフォルト) S) SWD T) cJTAG TIF>SWD 対象インターフェース速度[kHz]を指定します。 : 4000 kHz 速度>100 デバイス「S32K146」が選択されました。 SWD経由でターゲットに接続する ConfigTargetSettings() の開始 ConfigTargetSettings() 終了 - 22us かかりました InitTarget() 開始 SWDが選択されました。JTAG -> SWD 切り替えシーケンスを実行しています。 CPU の停止中にタイムアウトが発生しました。 InitTarget() 終了 - 392 ミリ秒かかりました ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 APマップをスキャンして利用可能なすべてのAPを見つける AP[2]: APマップの終端に達したため、APスキャンを停止しました AP[0]: AHB-AP (IDR: 0x24770011, ADDR: 0x00000000) AP[1]: JTAG-AP (IDR: 0x001C0000, ADDR: 0x01000000) APマップを反復処理して使用するAHB-APを見つける AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 FPUnit: 6 つのコード (BP) スロットと 2 つのリテラル スロット CoreSight コンポーネント: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7 [0][1]: E0001000 CID B105E00D PID 003BB002 DWT [0][2]: E0002000 CID B105E00D PID 002BB003 FPB [0][3]: E0000000 CID B105E00D PID 003BB001 ITM [0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU 126976バイトの作業用RAM(0x1FFF0000)を初期化しています リセットタイプ: NORMAL ( https://kb.segger.com/J-Link_Reset_Strategies ) リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: AIRCR.SYSRESETREQ 経由でデバイスをリセットします。 リセット: S_RESET_ST はクリアされません。CPU は永久にリセット状態のままになっているようです。 リセット: フォールバックを使用: ピンをリセットします。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした リセット: コアはリセット後に停止せず、WDT を無効にしようとしました。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした リセット: 失敗しました。リセット ピンを切り替えてリセット戦略を再度試します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: AIRCR.SYSRESETREQ 経由でデバイスをリセットします。 リセット: S_RESET_ST はクリアされません。CPU は永久にリセット状態のままになっているようです。 リセット: フォールバックを使用: ピンをリセットします。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした リセット: コアはリセット後に停止せず、WDT を無効にしようとしました。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした CPUを停止できませんでした CPUを停止できませんでした ****** エラー: CPU を停止できませんでした。 メモリゾーン: ゾーン: 「デフォルト」 説明: デフォルトのアクセスモード Cortex-M4 が識別されました。 J-Link> Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red オシロスコープを使用してリセットピンの波形を観察し、波形を送信してリセット期間とハイレベル幅を教えてください。場合によっては回復不可能となり、S32K1 チップを交換しなければならないこともあります。   接続戦略と回復手順: 目標: デバッガーにコアを停止し、問題のあるファームウェアを無効にする機会を与えます。 A. SWD速度を下げる + 「リセット時に接続」 J-Link Commanderの場合: J-Link> device S32K146 J-Link> if SWD J-Link> speed 1000 ; start at 1 MHz; if still failing, drop to 100 kHz J-Link> connect それでも失敗する場合は、手動の connect‑under‑reset を使用します。 RESET_b を外部的に低く保持し、ボードに電源を投入します。 Commander で connect を実行します。 リセットを解除し、直ちに次の操作を実行します。 J-Link> r J-Link> h J-Link> halt 特に 100 kHz SWD 速度ではタイミングが重要になる可能性があるため、何度か試してください。 B. J-Linkリセット戦略の変更 リセット戦略の値によって動作が異なります。Commander の場合 (正確な ID はバージョンによって異なる場合があります): J-Link> SetResetType = 3 ; a common “connect under reset / halt after reset”; Try 2 / 4 / 12 etc. depending on your J-Link version J-Link> r J-Link> halt または、J-Link Commander で「リセット状態で接続」を選択してみてください。 Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red S32K146EVB-SPF-29844-RB.pdfによると: J104 1-2 OpenSDAからのリセット信号 J10 2-3 P5V0 外部の 9V または 12V 電源がある場合は、 J107 1-2 P5V_SBC を接続することもできます。PEMicro Multilinkなどの外部デバッガーをお持ちの場合は、それを使用して、S32K146 用のプログラムをダウンロードできるかどうかを確認してください。 最後にダウンロードされたプロジェクトは何ですか?CSEc は有効になっていますか? 前回の質問に答えて、オシロスコープを使用して測定したリセット信号を提供してください。
記事全体を表示
S32K358 多核调试器 我 按照文件 S32K32X_Multicore_Project_Quick_Start_Guide.pdf 中的说明 删除了 路径 C:\NXP\S32DS.3.6.0\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_5.9.2.202409131555\supportFiles_ARM\NXP\S32K3xx 中的 s32K358.mac 文件 ,但 core2 仍然无法调试。能否请您帮助排除故障并找出问题所在? 回复: S32K358 multicore Debug 您能帮我调试一下项目吗? 回复: S32K358 multicore Debug 已经解决了,是启动文件错了
記事全体を表示
EB Tresos: 「DriverConfig」の複数の定義 こんにちは、 EB Tresos で BMS SDK Gen2 を使用しています。初期化中に Bjb_D1xx ドライバと Bcc_774a ドライバに構成構造体を渡したいので、両方のモジュールで「Config Variant: VariantPostBuild」を選択する必要があります。 ただし、各ドライバは DriverConfig 変数を含めて生成されるため、コンパイル エラーが発生します。 [ビルド] /workspaces/template/EBTresosProjectFiles/NextGen_RevA/generate/include/CDD_Bjb_D1xx_Cfg.h:48 からインクルードされたファイルで、 [ビルド] /workspaces/template/S32DSProjectFiles/BMS_GEN2_0.9.1_CD01/Bjb_D1xx_TS_TxDxM9I1R0/include/CDD_Bjb_D1xx.h:46 から、 [ビルド] /workspaces/template/S32DSProjectFiles/BMS_GEN2_0.9.1_CD01/Bms_common_TS_TxDxM9I1R0/src/CDD_Bms_common.c:60 から: [ビルド] /workspaces/template/EBTresosProjectFiles/NextGen_RevA/generate/include/CDD_Bjb_D1xx_PBcfg.h:85:44:エラー: 'DriverConfig' の型が競合しています [ビルド] 85 | extern const Bjb_D1xx_DriverConfigType DriverConfig; [ビルド] | ^~~~~~~~~~~~~ [ビルド] /workspaces/template/EBTresosProjectFiles/NextGen_RevA/generate/include/CDD_Bjb_D1xx_PBcfg.h:85:44:注: マクロ 'BJB_D1XX_INITCONFIG_PB' の定義内 [ビルド] 85 | extern const Bjb_D1xx_DriverConfigType DriverConfig; [ビルド] | ^~~~~~~~~~~~~ [ビルド] /workspaces/template/S32DSProjectFiles/BMS_GEN2_0.9.1_CD01/Bjb_D1xx_TS_TxDxM9I1R0/include/CDD_Bjb_D1xx.h:1013:1:注: マクロ 'BJB_D1XX_CONFIG_EXT' の展開 [ビルド] 1013 | BJB_D1XX_CONFIG_EXT [ビルド] | ^~~~~~~~~~~~~~~~~~~~~ [ビルド] /workspaces/template/EBTresosProjectFiles/NextGen_RevA/generate/include/CDD_Bcc_774a_Cfg.h:49 からインクルードされたファイルで、 [ビルド] /workspaces/template/S32DSProjectFiles/BMS_GEN2_0.9.1_CD01/Bcc_774a_TS_TxDxM9I1R0/include/CDD_Bcc_774a.h:46 から、 [ビルド] /workspaces/template/S32DSProjectFiles/BMS_GEN2_0.9.1_CD01/Bms_common_TS_TxDxM9I1R0/src/CDD_Bms_common.c:54 から: [ビルド] /workspaces/template/EBTresosProjectFiles/NextGen_RevA/generate/include/CDD_Bcc_774a_PBcfg.h:86:44:注: 'DriverConfig' の以前の宣言はここにありました [ビルド] 86 | extern const Bcc_774a_DriverConfigType DriverConfig; [ビルド] | ^~~~~~~~~~~~~ [ビルド] /workspaces/template/EBTresosProjectFiles/NextGen_RevA/generate/include/CDD_Bcc_774a_PBcfg.h:86:44:注: マクロ 'BCC_774A_INITCONFIG_PB' の定義内 [ビルド] 86 | extern const Bcc_774a_DriverConfigType DriverConfig; [ビルド] | ^~~~~~~~~~~~~ [ビルド] /workspaces/template/S32DSProjectFiles/BMS_GEN2_0.9.1_CD01/Bcc_774a_TS_TxDxM9I1R0/include/CDD_Bcc_774a.h:851:1:注: マクロ 'BCC_774A_CONFIG_EXT' の展開 [ビルド] 851 | BCC_774A_CONFIG_EXT [ビルド] | ^~~~~~~~~~~~~~~~~~~~~ コンパイル エラーを発生させずにビルド後のパラメータ化を可能にするために、両方のドライバを構成するにはどうすればよいでしょうか? Re: EB Tresos: Multiple definitions of "DriverConfig" クリスマス休暇期間中は、サポートの応答時間は通常より長くなる場合がありますのでご了承ください。場合によっては、ご要望への対応が新年以降になることもあります。ご理解のほどよろしくお願いいたします。 Re: EB Tresos: Multiple definitions of "DriverConfig" こんにちは@PhilippH 、 個人的にお伝えしたとおり、このCASEは開発チームによって検討中でした。 彼らは次のような回答をしました。 この問題を解決するには、これらの変数の前にモジュール名を付けます(例:生成されたコードには、 Bcc_774a_とBjb_D1xx_が含まれます。この変更はテスト目的でのみ使用され、本番環境では使用されないことに注意してください。 よろしくお願いいたします。 ダニエル
記事全体を表示