Matlab 2019a、2020a 使用elf文件提取地址到A2L报错的解决方法

之前一直使用matlab2018a 通过matlab自带的函数 rtw.asap2SetAddress('File.a2l','File.elf')去提取matlab生成的A2L的地址 ,Simulink生成的A2L中,每个变量后会有一个占位符,帮助定位提取的地址要修改的位置,地址提取完成后 占位符会消失

 

在开发过程中发现

2019a以及2020a的版本在提取地址时会发生崩溃闪退

 

2020.11.26

 通过更新了matlab 2020a的 update5解决了问题

Matlab update包地址:https://ww2.mathworks.cn/downloads/web_downloads/download_update_installers/R2019a

https://ww2.mathworks.cn/downloads/web_downloads/download_update_installers/R2020a

 

但是有个值得注意的点是:

若Simulink模型里用到了某个全局变量,生成C代码时,会将其放在内存.data段

若这个全局变量,在模型里定义了未使用,它仍然会体现在A2L里

但是IDE在编译SImulink生成的代码时,编译器会忽略这个全局变量,因为未使用

因此在MAP以及ELF中不会有该变量的地址

在2018a中,使用rtw.asap2SetAddress提取地址时会产生报错,因为找不到对应的变量的地址

此时,根据报错信息,在A2L中将未用到的全局变量的测量量描述和标定量描述删除就好了

 

然而在2020a中,不会提示报错,而是将空白A2L中的关于该变量的占位符删除

但此时,该变量的地址仍然是空白状态下的0x0000,若使用该A2L进行标定

有可能产生报错,因为该地址很可能不存在,这点需要自己根据实际情况,通过MAP文件找到未使用的全局变量,将其在A2L中的描述删除。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值