跳转至内容

YTM32B1M系列

Questions about YTM32B1M seires

527 主题 2.4k 帖子
  • 0 赞同
    12 帖子
    831 浏览
    DigaD

    https://forum.ytmicro.com/topic/1492/如何对编译生成的-hex-srec-s19-文件进行补全

  • A/B SWAP 程序中,写FLASH地址使用哪个?

    17
    0 赞同
    17 帖子
    1k 浏览
    YQHY

    WangPeiying 是的

  • Utility_print_init()

    12
    0 赞同
    12 帖子
    1k 浏览
    HAIYANGH

    luxiaoguo 再重新生成一下demo看看

  • 在VSCode的环境下如何分析程序进入hardfault的原因

    5
    0 赞同
    5 帖子
    611 浏览
    jiankang_wangJ

    看起来是空指针访问触发的BusFault。
    VSCode在调试方面感觉还是没OZone好的,只是debug好看一些。

  • YTM32B1ME0_Errata_Sheet E220002 EFM。

    2
    0 赞同
    2 帖子
    390 浏览
    majorM

    意思是如果A Block执行了写地址操作,但是后续并没有发Flash操作的命令,此时对B Block执行写地址操作,然后执行命令,此时命令会作用于两个Block。为了规避这种异常可以增加MPU保护,避免对Flash进行非预期的地址写操作,另外SDK和MCAL中也通过先执行NOP命令清除之前的写操作,这些都是可以规避这种异常现象的。

  • MD14 rsa2048

    2
    0 赞同
    2 帖子
    389 浏览
    yt0069Y

    65cbf0b3df07ac3a30b2653c876f80ed.png

  • 提供MD14系列mcu的 RSA2048的算法及样例demo工程

    6
    0 赞同
    6 帖子
    623 浏览
    ljmL

    好的,这个rsa4096也是软件实现的吗?

  • YTM32B1MD14 - MPU Configuration - Can I grant permission rw-|r-- for a memory section?

    5
    0 赞同
    5 帖子
    492 浏览
    nguyan2N

    Diga 在 YTM32B1MD14 - MPU Configuration - Can I grant permission rw-|r-- for a memory section? 中说:

    ARMv7 can support your case. YTM32B1HA01's core is CORTEX-M7 with ARMv7.
    b514bd3a-96f7-4073-8763-eca5918191c8-image.png

    Thanks for your suggestion but unfortunately we can't change the chipset.

    Is there any mechanism or any demo code to switch between Supervisor mode and User mode for YTM32B1MD14?

  • 0 赞同
    2 帖子
    547 浏览
    yt0503Y

    image.png

  • ME05 电源跌落实验

    4
    0 赞同
    4 帖子
    585 浏览
    MrluM

    问题补充:
    1、实验方法:
    在系统电源12V上施加如下脉冲信号,循环施加次数:5000次;
    image.png

    2、正常情况:
    MCU会随着测试脉冲周期(500ms),周期重启,MCU_3.3V和MCU_reset波形如下:
    image.png

    3、异常现象:
    在试验过程中,有一台机器会概率出现卡死后无法重启(测试脉冲不停止),需停止测试脉冲,且系统供电12V掉电再上电,MCU方可重启!

    请问,此异常是否因为MCU_3.3V触发POR功能导致的?假设MCU的电源保护触发后,怎样操作可以退出?

  • 配置TP参数的时候,没有“P2扩展时间”的选项

    2
    0 赞同
    2 帖子
    487 浏览
    jiankang_wangJ

    是CANTP吗?
    CANTP 是按照 ISO 15765-2:2016 开发的,里面的时间参数不叫 P2,你可以对照着看看在 15765 定义的是什么。这里的 P2 应该是 N_Bs 时间

  • ME0 MbedTLS中间件

    3
    0 赞同
    3 帖子
    553 浏览
    qinzhaoQ

    有个基于demo修改的增加函数
    int aes_CFB_test(void) {
    psa_status_t status;
    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
    psa_key_id_t key_id = 0;
    size_t output_length;
    psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT;
    uint8_t iv[16] = {
    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
    0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}; // Initialization vector for
    // CFB mode

    /* Set key attributes for AES-CFB*/
    psa_set_key_usage_flags(&attributes,
    (PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT));
    psa_set_key_algorithm(&attributes, PSA_ALG_CFB);
    psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
    psa_set_key_bits(&attributes, 128);

    /* Import the key*/
    status = psa_import_key(&attributes, aes_key, sizeof(aes_key), &key_id);
    if (status != PSA_SUCCESS) {
    PRINTF("Key import failed! (status = %d)\n\r", status);
    return status;
    }

    /* Performing encryption*/
    CM33_DWT_Start(); // Start timing for encryption
    status = psa_cipher_encrypt_setup(&operation, key_id, PSA_ALG_CFB);
    if (status != PSA_SUCCESS) {
    PRINTF("Encryption setup failed! (status = %d)\n\r", status);
    psa_destroy_key(key_id);
    return status;
    }

    status = psa_cipher_set_iv(&operation, iv, sizeof(iv));
    if (status != PSA_SUCCESS) {
    PRINTF("Setting IV failed! (status = %d)\n\r", status);
    psa_cipher_abort(&operation);
    psa_destroy_key(key_id);
    return status;
    }

    status = psa_cipher_update(&operation, plaintext, sizeof(plaintext),
    ciphertext, sizeof(ciphertext), &output_length);
    if (status != PSA_SUCCESS) {
    PRINTF("Encryption update failed! (status = %d)\n\r", status);
    psa_cipher_abort(&operation);
    psa_destroy_key(key_id);
    return status;
    }

    status =
    psa_cipher_finish(&operation, ciphertext + output_length,
    sizeof(ciphertext) - output_length, &output_length);
    if (status != PSA_SUCCESS) {
    PRINTF("Encryption finish failed! (status = %d)\n\r", status);
    psa_cipher_abort(&operation);
    psa_destroy_key(key_id);
    return status;
    }

    // Stop timing and calculate encryption time
    uint32_t encryption_cycles = CM33_DWT_Stop();
    PRINTF("AES CFB encryption took %u cycles\r\n", encryption_cycles);
    PRINTF("CPU core clock frequency: %u Hz\r\n", cpu_freq);
    PRINTF("AES CFB encryption time: %.6f seconds\r\n",
    (float)encryption_cycles / cpu_freq);

    print_buf("Key", aes_key, DATA_LENGTH);
    print_buf("IV", iv, DATA_LENGTH);
    print_buf("Plaintext", plaintext, DATA_LENGTH);
    print_buf("Ciphertext", ciphertext, DATA_LENGTH);

    /Performing decryption/
    uint8_t decrypted[DATA_LENGTH];
    status = psa_cipher_decrypt_setup(&operation, key_id, PSA_ALG_CFB);
    if (status != PSA_SUCCESS) {
    PRINTF("Decryption setup failed! (status = %d)\n\r", status);
    psa_destroy_key(key_id);
    return status;
    }

    status = psa_cipher_set_iv(&operation, iv, sizeof(iv));
    if (status != PSA_SUCCESS) {
    PRINTF("Setting IV failed! (status = %d)\n\r", status);
    psa_cipher_abort(&operation);
    psa_destroy_key(key_id);
    return status;
    }

    status = psa_cipher_update(&operation, ciphertext, sizeof(ciphertext),
    decrypted, sizeof(decrypted), &output_length);
    if (status != PSA_SUCCESS) {
    PRINTF("Decryption update failed! (status = %d)\n\r", status);
    psa_cipher_abort(&operation);
    psa_destroy_key(key_id);
    return status;
    }

    status = psa_cipher_finish(&operation, decrypted + output_length,
    sizeof(decrypted) - output_length, &output_length);
    if (status != PSA_SUCCESS) {
    PRINTF("Decryption finish failed! (status = %d)\n\r", status);
    psa_cipher_abort(&operation);
    psa_destroy_key(key_id);
    return status;
    }

    print_buf("Decrypted", decrypted, DATA_LENGTH);

    if (buf_cmp(plaintext, decrypted, DATA_LENGTH) != 0) {
    PRINTF("Decryption failed! (status = %d)\n\r", status);
    psa_destroy_key(key_id);
    return -1;
    }

    /* Destroy the key*/
    psa_destroy_key(key_id);
    return 0;
    }可以参考一下。
    image.png

  • ME0 MbedTLS中间件 分享

    12
    0 赞同
    12 帖子
    2k 浏览
    hjkjH

    请问下能否做一个AES-CFB的demo?

  • 0 赞同
    17 帖子
    958 浏览
    MonsterM

    @junhanhuang 在 LPTMR和LINFlex2同时打开,uart能发送数据,但是lptmr无法进入中断,超时判断卡主 中说:

    这个是基于你的yct做的最简lptmr程序,我这边可以正常进中断,你刷这个代码试试
    003.zip

  • 0 赞同
    1 帖子
    302 浏览
    尚无回复
  • -2 赞同
    9 帖子
    774 浏览
    MonsterM

    添加ldf失败
    image.png
    16_BCM_R_LIN4_EP_v2.0.0-20251013.zip帮忙看一下这个ldf为啥不行

  • YTM32B1MD14 - MPU Configuration for CorTst

    2
    0 赞同
    2 帖子
    466 浏览
    jiankang_wangJ

    These two sections cannot be placed in the same MPU region. Specifically:

    .cortst_ram_data_target0 should be placed in MPU_M33_PRIV_RWX_UNPRIV_RWX .cortst_ram_data_target1 should be placed in MPU_M33_PRIV_RW_UNPRIV_NONE

    For more information, refer to CorTst_Demo. In the demo, the corresponding sections and their locations are as follows:

    cdad0734-1b40-401c-a535-080746140f3a-image.png

    eb69771a-637d-44c8-8648-be3662a64b1d-image.png

    a0a520ff-226f-4746-848e-2bee31033565-image.png

  • Crypto模块MACL配置手册能提供一下吗

    4
    0 赞同
    4 帖子
    878 浏览
    houjun_xiaoH

    云途MCAL配置与使用详解之CryptoDrivers模块.pdf这是MCAL crypto模块使用的一些解释,你看是否对你有帮助。

  • 配置时钟异常导致MCU起不来

    2
    0 赞同
    2 帖子
    584 浏览
    李富贵

    彻底断电,等待几分钟,让芯片内部电荷释放一下先。用万用表测下电源地间电阻,看看短路了没

  • 5路CAN通信,3路CAN通信失败

    3
    0 赞同
    3 帖子
    649 浏览
    lxwL

    ganyongchao 已解决,和配置项相关

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • Online Users