Changes from v2.7.7 to v2.7.8:
[feat]:upgrade patch tool to v3.8 [opt]:opt code generate process display [opt]:opt login logic [opt]:opt ghs support [opt]:add MC03 ghs support如下图所示,工具界面中默认开启了 -ffunction-sections 和 -fdata-sections。
原因: 生成的 cmake/gcc.cmake 脚本中使用 SET(CMAKE_C_FLAGS ...) 强制重置了编译参数,导致工具传入的这些标志被覆盖丢失。
后果: 链接器无法正确剔除未使用的代码(Dead Code Elimination)
关联问题:
https://forum.ytmicro.com/topic/1302/同样的工程vscode-gcc编译的二进制文件远远大于keil-mdk生成的?_=1763805564704
65761351-0095-445c-b8bd-577719c47dfd-image.png
c0a0e3cc-1b9e-4e8c-a7eb-9c0610679f16-image.png
void test_spi(void)
{
uint8_t tx_buffer[4] = {0};
uint8_t rx_buffer[4] = {0};
tx_buffer[0] = READ_TEMP_CMD;
tx_buffer[1] = 0x00;
tx_buffer[2] = 0x00;
tx_buffer[3] = calculate_crc8(tx_buffer,3);
// SPI_DRV_MasterDeinit(0);
}
Hello all,
I’ve recently observed an issue related to the eTMR interrupt.
When the MCU is running and I provide a PWM input, sometimes the interrupt does not occur at the edge transition as expected.
Below are pictures illustrating both the normal and abnormal cases for reference.
Normal case:
e4c98584-e12f-4404-8d4b-1308ca2b5046-image.png
Abnormal case 1:
3e995f9c-347b-4cdb-a4d9-d0b671401f0c-image.png
Abnormal case 2:
6a5f00be-fa68-47bf-b39d-361706a1a331-image.png
Could you please provide some advice on this issue?
行业内对CAN采样点的测量,基本都是使用Vector VH6501。经常会发生一种情况:按要求设置的采样点,为什么测量结果会差别很大,甚至会差别10%以上呢?
测量误差
三部分组成:VH6501每次缩短或增长的步进长度,用∆𝑡𝑀𝑒𝑠𝐻𝑤表示;网络的时延,用∆𝑡𝑅𝑒𝑐表示;重同步的误差,用∆𝑡TQ表示。
即测量误差 = ∆𝑡𝑀𝑒𝑠𝐻𝑤 + ∆𝑡𝑅𝑒 + ∆𝑡TQ
其中∆𝑡𝑀𝑒𝑠𝐻𝑤 , ∆𝑡𝑅𝑒误差一般比较小,CAN-FD采样点测试中会考虑;∆𝑡TQ是测量误差“看起来”大的主要因素。
∆𝑡TQ重同步误差
同步段(Sync Segment)是CAN 协议为减少累计误差而设计的,在任何情况下均仅为 1 个 TQ 长度。但是CAN协议并没有规定重同步后跳变沿一定要在同步段(Sync Segment) 的哪个位置,从同步段(Sync Segment) 的开始到结束均可以,因此这会带来 1 个 TQ 的误差。
例如:只有10个TQ,运气不好,你有几次测量在同步段(1个TQ)的末尾才识别到同步,这样计算采样点时,就少1个TQ,误差10%。
总结
测量误差大部分是由于 CAN 协议本身所带来的误差。“看起来”误差大,实际上只要设置正确,采样点是不会错的。当然,知道误差分布,可以尽可能改进,减少测量误差。
详细的分析参考Vevtor 官方的文档《VH6501 采样点测试误差及影响因素分析》0002_VH6501_采样点测试误差及影响因素分析.pdf
根据EFM应用手册, 代码如下:
e5d06a67-707a-4437-9453-a1f2d6c6c344-image.png
实际得出的MAC值与第三方不一致:
854f3bc4-6c9c-4006-98f5-90f5794c4e8a-301990fa21c0cbedaf55036d58c482fa.png 0eed32cf-46d9-4d5f-8ffd-12583f05f3d3-image.png
是不是load的硬件key不对?
CUS_KEY寄存器中的match==1
e3850e1e-ba9d-4c02-99af-43bbf38c2d9c-image.png
40a655bc-2833-417d-b6a0-ed78d856f1f0-image.png
更换字节顺序也无效
demo工程如下
Flash_Demo.zip
调用的写入擦除函数分别是FLASH_DRV_Program FLASH_DRV_EraseSector
2.6.3以后的YCT工具支持加载用户自己申请的离线License(之前的离线license到期后不再可用),申请步骤如下:
获取电脑的Machine ID9446bf68-5323-4169-944d-7ea50da933a1-image.png
在自己的账号下绑定并申请license注意事项
每个账号只能绑定一个Machine-ID,一旦绑定不能更改(推荐绑定固定的离线电脑,其他电脑用账号登陆) 账号第一次申请的时候需要输入Machine-ID,以后申请不用再次输入 生成的离线License权限和当前账号拥有的权限相同7c08ac32-4a71-4533-8824-fb7e1fc7b315-image.png
点击生成License,保持文件到自己的电脑,然后复制License到离线电脑导入即可。
-
Announcements
Announcements regarding our community
-
Discussion & Question
A place to talk about whatever you want or ask a question
-
Blogs
Blog posts from individual members
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...