OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10958|回复: 10

STM32F407不能定义150k的数组

[复制链接]

12

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-3-25
在线时间
9 小时
发表于 2014-4-23 11:54:02 | 显示全部楼层 |阅读模式
我用的是F407的芯片,内部192k的SRAM,在程序中想定义一个全局变量uint8_t   USB_BUF[150*1024]; 编译后,debug下载后,程序自动运行了(正常应该是点击Run才会开始运行程序的),但是运行状态明显不正确,好像程序根本没执行一样。
我如果 把定义改为uint8_t   USB_BUF[120*1024]; 这样的话程序运行就正确了。
但是我程序需要必须得定义一个大数组啊,需要300k,我应该怎么办?
我用的开发板上有一个外部256k*16位字长的SRAM,我能使用到吗?地址为0x68000000应该怎么用啊?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-3-25
在线时间
9 小时
 楼主| 发表于 2014-4-23 14:04:19 | 显示全部楼层
有没有人能帮帮忙啊?
斑竹在吗?
回复 支持 反对

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-4-23 14:20:09 | 显示全部楼层
F407x里的RAM是多段的,64K+128K,显然满足不了你。
于20150522停用该账号:http://www.microstar.club
回复 支持 反对

使用道具 举报

12

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-3-25
在线时间
9 小时
 楼主| 发表于 2014-4-23 14:41:40 | 显示全部楼层
是的,满足不了我应该怎么办?
有外部的SRAM,可以用吗?应该怎么用?
回复 支持 反对

使用道具 举报

3

主题

2177

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3321
金钱
3321
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-4-23 14:49:37 | 显示全部楼层
LZ没看datasheet内部RAM是怎么回事吗?
112+16+64 默认分配的只是那个112k
回复 支持 反对

使用道具 举报

12

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-3-25
在线时间
9 小时
 楼主| 发表于 2014-4-23 15:52:34 | 显示全部楼层
但是可以用外部的SRAM当做内部的RAM使用吧?
可以这样使用吗?
回复 支持 反对

使用道具 举报

3

主题

2177

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3321
金钱
3321
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-4-23 16:50:33 | 显示全部楼层
回复【6楼】lxrhy198308:
---------------------------------
可以
参考官方外部SRAM加载实例
回复 支持 反对

使用道具 举报

12

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-3-25
在线时间
9 小时
 楼主| 发表于 2014-4-24 09:12:15 | 显示全部楼层
回复【7楼】ricefat:
---------------------------------
去哪里可以下载到这个加载实例啊?
麻烦再指教一下
回复 支持 反对

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2014-4-24 12:49:41 | 显示全部楼层
回复【8楼】lxrhy198308:
---------------------------------
既然说了官方的,那一般在官网上是可以下的到的。去官网上找找。
回复 支持 反对

使用道具 举报

12

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2014-3-25
在线时间
9 小时
 楼主| 发表于 2014-4-25 10:59:39 | 显示全部楼层
我的程序进行了相关配置和修改之后,可以定义大数组了,但是前提是我必须屏蔽掉一些调用的函数,不然程序无法正确运行。
不屏蔽的话程序总会进入HardFault_Handler()函数,不知道哪里出了问题啊。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-9-7
在线时间
0 小时
发表于 2014-9-24 08:51:33 | 显示全部楼层
回复【10楼】lxrhy198308:
---------------------------------
你一下子定义150K的数组,给堆栈和其他程序不留内存了吗?其他函数如果需要使用内存,却又申请不到内存就会出现硬件错误
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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