首先你得有一个模板,通过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

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

被折叠的 条评论
为什么被折叠?



