硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3882|回复: 7
收起左侧

[IAR] IAR调试时为何进不了MAIN

[复制链接]

38

主题

91

回帖

205

积分

高级会员

积分
205
发表于 2018-3-28 11:23:29 | 显示全部楼层 |阅读模式
IAR调试一直是OK,增加一个函数,编译OK,再调试,进不了MAIN,可能是什么原因?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-3-28 11:30:14 | 显示全部楼层
你的程序设计出问题了,排查是你新加函数的那步造成的。

ps:不要在嵌入式专题栏发帖子了,相应的问题在相应的版块发,谢谢支持
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-3-28 19:56:43 | 显示全部楼层
问题现象找到了,
#pragma location="EXT_SRAM"
uint8_t Mask[256][32]={0};
uint8_t IsMask(uint8_t i,uint8_t j)
{
    return MaskArray[i][Addr>>j] & (0x01 << (Addr%8));
}
只要调用 IsMask就进不了main函数,不调用就没有问题,Mask片内RAM也没有问题
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-3-28 19:59:22 | 显示全部楼层
将Mask修为使用片内RAM,调用 IsMask函数也没有问题
uint8_t Mask[256][32]={0};
回复

使用道具 举报

5

主题

196

回帖

211

积分

高级会员

积分
211
发表于 2018-3-28 21:30:08 | 显示全部楼层
startup环节里将函数重定位到ext ram的时候(即拷贝flash的固件中的rwdata部分到ext ram)出问题了。检查硬件或者memory map
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-3-29 08:47:00 | 显示全部楼层
将Mask定义在扩展RAM中,去掉定义时初始化,调用 IsMask函数也没有问题
#pragma location="EXT_SRAM"
uint8_t Mask[256][32];

扩展内存在.icf文件定义如下:
define symbol _EXT_SRAM_start1__  = 0xA0000000;
define symbol _EXT_SRAM_end1__    = 0xA0ffffff;
define region EXT_RAM_region1 = mem:[from _EXT_SRAM_start1__ to _EXT_SRAM_end1__];
do not initialize    { section EXT_SRAM};
place in EXT_RAM_region1 {readwrite section EXT_SRAM};
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2018-3-29 09:18:12 | 显示全部楼层
可能与硬件有关,同样的处理使用ST就没有问题,使用NXP就会出现这样的问题
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2019-1-28 18:21:02 | 显示全部楼层
了解一下啊,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-12 02:46 , Processed in 0.166187 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表