你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32在UCOS下定义数组问题

[复制链接]
haihuang-402384 提问时间:2014-12-20 17:27 /
阅读主题, 点击返回1楼
收藏 评论14 发布时间:2014-12-20 17:27
14个回答
haihuang-402384 回答时间:2014-12-23 09:33:12
晓枫VS枯叶 发表于 2014-12-22 16:40
楼主可以把gpsRevData添加到watch窗口看看到底这个数组里面的数值是否发生变化! ...

我昨天试了下用ucos内存管理的内存申请方式定义了一个二维数组,然后再去get一个内存块,发现跟之前一样会自己变化,然后接收到数据就段错误,但是我发现之前定义的一维数组正常了,地址跟之前的不一样,之前的那块地址会变,现在被二维数组占用了,所以它有新的地址,然后新的地址正常。那块地址到底是怎么回事?如果复位后,那个一维数组会不会可能申请到那块会变的地址?那这样的话程序不就有时好有时坏,难道要我指定地址才行?谁来解释一下为什么
321.png
小贾-370388 回答时间:2014-12-23 14:09:10
按理说是不应该的,定义数组后会由系统自动分配内存的,分配的内存不会冲突的,除非是你那里操作了这个地址
haihuang-402384 回答时间:2014-12-23 14:36:52
小贾-370388 发表于 2014-12-23 14:09
按理说是不应该的,定义数组后会由系统自动分配内存的,分配的内存不会冲突的,除非是你那里操作了这个地址 ...

我就是想不通,我写的部分确实没对其进行操作,那就只可能是操作系统了,我有空再调调看具体是哪些语句导致它变化的
damiaa 回答时间:2015-1-4 14:17:55
内存溢出, 数组出界 你在这两者之间找问题。那个数组的gpsRevDataSub要在调用之前判断一下是否小于90-1 ,然后调用 gpsRevData[gpsRevDataSub++]
haihuang-402384 回答时间:2015-1-6 10:57:30
damiaa 发表于 2015-1-4 14:17
内存溢出, 数组出界 你在这两者之间找问题。那个数组的gpsRevDataSub要在调用之前判断一下是否小于90-1 , ...

问题已经找到了,是我自己创建任务时,任务堆栈的栈顶地址传错了
12

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版