找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 4300|回复: 5

[CSR8系列] CSR8670如何加大堆栈stack size到1k words?

[复制链接]
连续签到天数:1天
签到总天数:4天
签到总奖励:20金币
发表于 2016-11-4 23:20:55 | 显示全部楼层 |阅读模式
1. 芯片:CSR8670

2. 开发环境:
ADK4.0

3. 开发工程:
Sink -> Headset

4. 遇到问题:
手动配置Properties里面手动设定stack size,如果超过160,烧进去程序就会运行不了了。错误提示:烧进去的程序和Disk上的程序mismatch。(英文原文忘记了);如果只是把stack size改回155,代码一点都不改,程序就运行正常。

5. 我为何想加大堆栈?
自己写的程序里用了function pointer,发现编译器自动计算堆栈会失败,然后编译器就用了一个大小为82的默认大小的堆栈(编译器编译后有提示),烧进去以后,程序就会异常停止。改成手动设置堆栈为155,155是加function pointer之前,compiler自己计算出来的,我照用,程序即刻正常。好明显,是stack溢出造成的。手动设置155 stack大小虽然暂时能用,但我怕之后程序写多了,变量多了,stack又会溢出,stack肯定是越大越好啦,自己试到最大只能设定到160,再大程序烧进去就会停止!

6. 有问题当然是去找文档看,然后找到了CS-110364-AN.pdf这个文档,找到了很多答案。看了CS-110364-AN.pdf VM Memory Mapping and Memory Usage这篇应用文档,感觉如果开发8670还是很有必要的。
文档里明确说:用了函数指针或迭代算法,堆栈计算就会失败。
文档里面讲的stack空间地址为0x00FF~0x04FF,即共有4个256 words的slot,合计共1k words的stack空间。那么为何工程只能设置160的堆栈空间呢???我想把它全部用掉啊!反正留着也不能另作他用。难道我理解有误?


想问各位坛友如果全部用掉1k words的stack空间该怎样做?




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
连续签到天数:30天
签到总天数:2827天
签到总奖励:72504金币
发表于 2016-11-5 03:23:45 | 显示全部楼层
本帖最后由 fmancylee 于 2016-11-5 03:37 编辑

怎麼會放不進去?!?!?

积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:337天
签到总奖励:9829金币
发表于 2016-11-5 08:44:58 | 显示全部楼层
确定是1k的字,区域,木有包含其他的。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:4天
签到总奖励:20金币
 楼主| 发表于 2016-11-5 10:58:49 | 显示全部楼层
yang1 发表于 2016-11-5 08:44
确定是1k的字,区域,木有包含其他的。

那该如何在Properties里面设定呢?
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:1052天
签到总奖励:14870金币
发表于 2016-11-9 12:04:56 | 显示全部楼层
找fae解决吧
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:149天
签到总奖励:2099金币
发表于 2019-4-19 10:37:12 | 显示全部楼层
楼主这个问题解决了吗?
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-28 02:46 , Processed in 0.187815 second(s), 18 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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