[匠人手记] 《两轮小车DIY》之《STM32 堆栈溢出的问题》(问题解决,已

[复制链接]
 楼主| 程序匠人 发表于 2009-3-16 00:08 | 显示全部楼层 |阅读模式
更多相关内容连接:<font color=#3366CC>《两轮小车DIY》主贴</font>&nbsp;<br /><br />前几天写了LCD1602程序(其实也就不过是移植篡改啦),今晚调试。一开始当然是问题多多啦,幸好大多数都是一些笔误原因造成的。再加上匠人神勇无敌,一路过关斩将,大小妖精逐个斩杀,把匠人高兴得,“欧耶”了好几回。最后总算把错误排除,满以为可以正常工作了。结果,进入仿真后又遇到这么个超级变态的终极BOSS:<br /><br /><br />“Sun&nbsp;Mar&nbsp;15&nbsp;23:08:56&nbsp;2009:&nbsp;The&nbsp;stack&nbsp;'CSTACK'&nbsp;is&nbsp;filled&nbsp;to&nbsp;100%&nbsp;(1024&nbsp;bytes&nbsp;used&nbsp;out&nbsp;of&nbsp;1024).&nbsp;The&nbsp;warning&nbsp;threshold&nbsp;is&nbsp;set&nbsp;to&nbsp;90.%”<br /><br />还没几行指令,堆栈就溢出啦?哈哈,这下彻底倒塌。<br /><br />先坦白一下匠人做的“坏事”。基本上是在原有DEMO(流水灯)的基础上修改:<br />1、增加LCD模块。<br />2、增加了一个延时函数模块,其中又用到了SysTick中断。(基本上是按照香斑竹在《STM32F10x常见应用解析.pdf》中介绍的方法)<br /><br />先开个贴,相当于“自首”。待香斑竹来“提审”。看还需要匠人交待什么,再一并“坦白”。<br />
 楼主| 程序匠人 发表于 2009-3-16 00:19 | 显示全部楼层

另外1个讨论贴

<br />另外1个相关讨论贴子地址如下(可惜都没有讨论出什么结果来,所以就不转帖啦,给个地址吧):<br /><br />我在调试USART1的时出现的一个运行错误<br /><a href="http://group.**/619/10215.aspx?page=1" target=_blank>http://group.**/619/10215.aspx?page=1</a>
香水城 发表于 2009-3-16 14:12 | 显示全部楼层

经确认应该是匠人所用的驱动有问题

匠人的问题是最早ST-LINK驱动的问题,请在ST网站下载更新的驱动,就不会出现这个堆栈溢出的问题了。<br /><br />STM32&nbsp;微控制器系列<br />&nbsp;&nbsp;&nbsp;开发工具&nbsp;(Development&nbsp;Tools)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ST-Link2使用指南&nbsp; IAR&nbsp;EWARM&nbsp;4.42A&nbsp;驱动&nbsp; Keil&nbsp;MDK&nbsp;3.22&nbsp;驱动
 楼主| 程序匠人 发表于 2009-3-16 16:08 | 显示全部楼层

香斑竹的“严刑拷打”及匠人的“口供”笔录

为了此帖的完整性,避免网友们看到4楼的帖子后一头雾水。特公开一下香斑竹的“严刑拷打”及匠人的“口供”笔录:<br /><br /><br />&nbsp;程序匠人&nbsp;发给&nbsp;香水城&nbsp;于&nbsp;2009-3-16&nbsp;12:31:50&nbsp;&nbsp;&nbsp;<br />又要请教啦:http://bbs.21ic.com/club/bbs/list.asp?boardid=63&page=1&t=3265094&tp=%u300A%u4E24%u8F6E%u5C0F%u8F66DIY%u300B%u4E4B%u300ASTM32%20%u5806%u6808%u6EA2%u51FA%u7684%u95EE%u9898%u300B%uFF08%u52A8%u6001%u66F4%u65B0%uFF09&nbsp;<br /><br /><br />&nbsp;香水城&nbsp;发给&nbsp;程序匠人&nbsp;于&nbsp;2009-3-16&nbsp;12:48:18&nbsp;&nbsp;&nbsp;<br />这应该是IAR的软件问题,最近很久没有人文这个问题了。<br />请问你用的是什么版本的调试软件?要不要我找人帮你看看?<br /><br />&nbsp;程序匠人&nbsp;发给&nbsp;香水城&nbsp;于&nbsp;2009-3-16&nbsp;13:02:28&nbsp;&nbsp;&nbsp;<br />版本是IAR&nbsp;EWARM&nbsp;4.42A。这个版本来自于当初万利板的配套<br />光盘。因为年前安装了。后来这次拿到新的板子后,我试了一下可以用,就没有重新安装IAR。<br /><br />&nbsp;香水城&nbsp;发给&nbsp;程序匠人&nbsp;于&nbsp;2009-3-16&nbsp;14:13:45&nbsp;&nbsp;&nbsp;<br />《STM32堆栈溢出的问题》是驱动的问题,请在ST网站下载更新驱动,URL在你的帖子中。<br /><br />程序匠人&nbsp;发给&nbsp;香水城&nbsp;于&nbsp;2009-3-16&nbsp;14:26:07&nbsp;&nbsp;&nbsp;<br />谢谢!研究一下,再回复<br /><br />&nbsp;<br />&nbsp;<br /><br /><br />&nbsp;<br />&nbsp;<br />
kbgyzp 发表于 2009-3-16 21:21 | 显示全部楼层

晕,匠人这大牛还用仿真器啊?!

直接用串口下程序加调试就可以了,哪里不对直接把内存数据用指针发出来瞧瞧,从不用仿真器
hotpower 发表于 2009-3-16 21:22 | 显示全部楼层

6楼比匠人牛~~~

  
 楼主| 程序匠人 发表于 2009-3-16 22:33 | 显示全部楼层

向香斑竹报喜!欧耶!

第1喜:匠人重新把新的配套光盘里面的&quot;installSTLink.exe&quot;文件重新按装了一遍,堆栈溢出的问题解决了。<br /><br />第2喜:在秒杀了终极BOSS后,1602LCD显示屏程序已经顺利调通了。本着开源的精神。稍后上图,并上源程序。<br /><br />双喜临门啊,欧耶!
hotpower 发表于 2009-3-16 22:34 | 显示全部楼层

匠人总在玩呼啦圈~~~俺有时间也转转看晕乎不~~~

  
 楼主| 程序匠人 发表于 2009-3-16 23:01 | 显示全部楼层

上图

<br /><img src="http://bbs.21ic.com/upfiles/img/20093/2009316225655867.jpg">&nbsp;<br />&nbsp;<br /><img src="http://bbs.21ic.com/upfiles/img/20093/2009316225845238.jpg">
香水城 发表于 2009-3-16 23:03 | 显示全部楼层

哈哈,鼓掌祝贺

今晚大家都可以睡个好觉了,俺也不怕半夜被匠人吵醒了≈≈≈≈≈&nbsp;^_^
 楼主| 程序匠人 发表于 2009-3-16 23:11 | 显示全部楼层

哈哈,谢谢香斑竹。就此结贴!欧耶!

下回再骚扰您。呵呵。<br /><br /><br /><br />补充一句,LCD的驱动程序见:<font color=#3366CC>《两轮小车DIY》之《LCD模块》(动态更新)</font>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

734

主题

11156

帖子

683

粉丝
快速回复 在线客服 返回列表 返回顶部

734

主题

11156

帖子

683

粉丝
快速回复 在线客服 返回列表 返回顶部