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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版