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

【STM32F303开发】+ 使用片内的CCMRAM缩短代码执行时间 精华  

[复制链接]
creep 提问时间:2015-6-18 22:32 /
阅读主题, 点击返回1楼
3 收藏 33 评论69 发布时间:2015-6-18 22:32
69个回答
埃斯提爱慕 回答时间:2015-6-23 22:14:57
提示: 作者被禁止或删除 内容自动屏蔽
smjnk 回答时间:2015-6-24 00:40:57
这个确实没用过,学习了
阿本 回答时间:2015-6-24 08:20:20
mark               
index219 回答时间:2015-7-1 09:33:57
你好,我也正使用F4的CCM,可是像你说的,一旦分配MCU变量到CCM区域就死机,请问F4的CCM还需要做什么修改。(变量已经在MAP文件下看过,分配到CCM区段了)
creep 回答时间:2015-7-1 10:08:18
index219 发表于 2015-7-1 09:33
你好,我也正使用F4的CCM,可是像你说的,一旦分配MCU变量到CCM区域就死机,请问F4的CCM还需要做什么修改。 ...

你看清楚我可没有说F4把变量分配到CCM区域会fault,我是说分配函数到CCM区域会fault。
index219 回答时间:2015-7-1 10:26:01
creep 发表于 2015-7-1 10:08
你看清楚我可没有说F4把变量分配到CCM区域会fault,我是说分配函数到CCM区域会fault。 ...

当变量长度少的时候(如buf【2】),分配到CCM是不会fault,但是当定义变量buf【64*1024】,大数组的时候就会fault。而且buf【2】的情况下,对变量初始化buf【1】=2后,代码实际运行,串口打印出buf【1】的值确实400多。 请教下,F4的CCM是否还需要做其他的配置?
creep 回答时间:2015-7-1 10:28:44
index219 发表于 2015-7-1 10:26
当变量长度少的时候(如buf【2】),分配到CCM是不会fault,但是当定义变量buf【64*1024】,大数组的时候 ...

首先你要确定你定义的数组size小于CCM的区域,不同的片子CCM的大小是不同的,根据这个大小来修改SCR里面的CCM的值,要不然肯定会出错。其他的设置和F3的一样。
qianfan 回答时间:2015-7-1 10:55:41
creep 发表于 2015-6-19 09:58
有金币送点金币
没金币捧点人气

表示不知道如何送金币啊
index219 回答时间:2015-7-1 10:56:05
creep 发表于 2015-7-1 10:28
首先你要确定你定义的数组size小于CCM的区域,不同的片子CCM的大小是不同的,根据这个大小来修改SCR里面 ...

第一:我是用的是F407,CCM大小64k。
第二:使用IAR编译环境,.icf文件下配置CCMRAM地址范围在0x10000000-0x1000ffff.
第三:在.map文件下查看到变量ucHeap【64*1024】 地址成功分配到0x10000000  0x10000

CCM的相关配置都是官方提供的F3参考文档,结果是程序实际跑起来,就会进入fault。
creep 回答时间:2015-7-1 11:16:19
QianFan 发表于 2015-7-1 10:55
表示不知道如何送金币啊

感谢版主,你这是要准备打赏我点金币吗?
creep 回答时间:2015-7-1 11:20:09
index219 发表于 2015-7-1 10:56
第一:我是用的是F407,CCM大小64k。
第二:使用IAR编译环境,.icf文件下配置CCMRAM地址范围在0x10000000- ...

1.我没有用过IAR测试CCM分配,所以我不知道是不是和keil的设置一致。
2.我感觉你应该先找到你上面说的把变量分频到CCM然后变量会出错的原因。
3.有空我试下在keil里分配64K的数组到CCM里面会不会有问题。
creep 回答时间:2015-7-1 11:42:55
index219 发表于 2015-7-1 10:56
第一:我是用的是F407,CCM大小64k。
第二:使用IAR编译环境,.icf文件下配置CCMRAM地址范围在0x10000000- ...

我刚测试了keil下把64K数组放在CCM,数组写进去的内容没有变化,数组内元素可以修改,程序正常运行不会fault。
qianfan 回答时间:2015-7-1 11:57:22
creep 发表于 2015-7-1 11:16
感谢版主,你这是要准备打赏我点金币吗?

表示版主不能打赏,只有管理员有这个权限。。。
index219 回答时间:2015-7-1 16:09:43
creep 发表于 2015-7-1 11:42
我刚测试了keil下把64K数组放在CCM,数组写进去的内容没有变化,数组内元素可以修改,程序正常运行不会fa ...

好的,非常感谢,我至少可以确认KEIL下可以。我在找找IAR原因。
wu1169668869 回答时间:2015-7-29 00:59:52
尝试去看keil的帮助文档没什么大收获
楼主这个方法还不错,不知道能不能用DMA来传输定义在SDRAM中的数据!!!?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版