通过.map文件填写XCP标定需要的A2L文件

本文介绍了一种使用Python脚本自动从编译后的.map文件中提取信息并更新A2L文件的方法,主要关注测量变量的更新。通过自定义内存分区和链接脚本,确保生成的.map文件包含必要的测量变量信息。

首先你得有一个模板,通过python脚本打开编译后的.map文件自动填写到A2L文件对应位置,目前只实现了填写Mesurement 区域,但是这个填写主要是更新变量名和对应的ECU ADRRESS,因为.map文件不包含更多的信息。

  • 首先你得对你得MCU(我的是基于MPC5744)内存进行分区,修改S32DS中的链接脚本(该脚本为GCC格式,与Keil不同),在.sdata后添加这样一个段
 .sdata : AT (__SDATA_ROM)
    {
   
   
        . = ALIGN(4);
        __SDATA_RAM = .;
        __sdata_start__ = .; /* Create a global symbol at sdata start. */
        *(.sdata)
        *(.sdata.*)
        . = ALIGN(4);
        __sdata_end__ = .; /* Define a global symbol at sdata end. */
    } > m_data
    __SDATA_END = __SDATA_ROM + (__sdata_end__ - __sdata_start__);

	.mesurement_sec : AT (__SDATA_END)
    {
   
   
        . = ALIGN(4);
        __me_start__ = .; /* Create a global symbol at sdata start. */
        *(.mesurement_work_page)
        *(.mesurement_work_page.*)
        . = ALIGN(4);
        __me_end__ = .; /* Define a global symbol at sdata end. */
    } > m_data
    __ME_END = __SDATA_END + (__me_end__ - __me_start__);

这样生成的.map文件中

.mesurement_sec
                0x40001474       0x18 load address 0x0100ccc8
                0x40001474                . = ALIGN (0x4)
                0x40001474                __me_start__ = .
 *(.mesurement_work_page)
 .mesurement_work_page
                0x40001474       0x18 ./Sources/main.o
                0x40001474                test1
                0x40001484                adc_test
                0x40001488                hehe
 *(.mesurement_work_page
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值