完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
之前一直使用matlab2018a 通过matlab自带的函数 rtw.asap2SetAddress('File.a2l','File.elf')去提取matlab生成的A2L的地址 ,Simulink生成的A2L中,每个变量后会有一个占位符,帮助定位提取的地址要修改的位置,地址提取完成后 占位符会消失
在开发过程中发现 2019a以及2020a的版本在提取地址时会发生崩溃闪退 但是有个值得注意的点是: 若Simulink模型里用到了某个全局变量,生成C代码时,会将其放在内存.data段 若这个全局变量,在模型里定义了未使用,它仍然会体现在A2L里 但是IDE在编译SImulink生成的代码时,编译器会忽略这个全局变量,因为未使用 因此在MAP以及ELF中不会有该变量的地址 在2018a中,使用rtw.asap2SetAddress提取地址时会产生报错,因为找不到对应的变量的地址 此时,根据报错信息,在A2L中将未用到的全局变量的测量量描述和标定量描述删除就好了 然而在2020a中,不会提示报错,而是将空白A2L中的关于该变量的占位符删除 但此时,该变量的地址仍然是空白状态下的0x0000,若使用该A2L进行标定 有可能产生报错,因为该地址很可能不存在,这点需要自己根据实际情况,通过MAP文件找到未使用的全局变量,将其在A2L中的描述删除。 |
|
|
|
只有小组成员才能发言,加入小组>>
3326 浏览 9 评论
3006 浏览 16 评论
3503 浏览 1 评论
9079 浏览 16 评论
4096 浏览 18 评论
1208浏览 3评论
617浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
607浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2345浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1905浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-1 20:24 , Processed in 0.741072 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号