icecool 发表于 2006-8-30 11:42:06

Mega32上运行uCOS的问题

源代码是从www.ucos-ii.com上下载的M128的版本,在ICCV7上分别编译为M128,M64,M32都没什么大问题,但是在avrstudio 4.12里面调试仿真的时候,M128和M64都非常正常,但到M32一RESET就出现堆栈溢出的问题,看了下SRAM,对照M64和M128,发现内容是一样的,而且有空间剩余着,所以不知道堆栈为什么会出问题,还请搞过的兄弟指点下,我用的uCOS 2.8的kernel.跑的例子是LED TOGGLE的那个。

AuToCTRL 发表于 2006-8-30 12:01:11

不知道你运行了几个任务,任务栈的大小是多少。

如果任务栈和中断栈不分离的话,估计2KRAM的M32 跑2.8版的够呛。

你可以试着在os_cfg.h中减少

OS_LOWEST_PRIO

OS_MAX_EVENTSapplication

OS_MAX_

OS_MAX_MEM_PART

OS_MAX_QS

OS_MAX_TASKS

禁用一些信号量、消息、队列什么的来减少系统本身对RAM的需求

icecool 发表于 2006-8-30 12:07:05

运行了3个任务,包括IDLE的话就是4个,我现在是只允许信号量,而且在ICCV7上编译没一点问题,具体到avrstudio里看,确实SRAM还是足够的

icecool 发表于 2006-8-30 12:08:48

楼上给个邮箱,我发份你看看

AuToCTRL 发表于 2006-8-30 12:14:21

记下了吧
-----此内容被AuToCTRL于2006-08-30,12:21:11编辑过

icecool 发表于 2006-8-30 12:16:53

一会发给你,现在在外面

有QQ么?可以交流请教下

AuToCTRL 发表于 2006-8-30 12:28:13

~~~~~~~~~~~~
-----此内容被AuToCTRL于2006-08-30,12:43:40编辑过

icecool 发表于 2006-8-30 13:53:30

完,刚回来,呵呵,我QQ:3813627

你能再发一下不
页: [1]
查看完整版本: Mega32上运行uCOS的问题