OpenEdv-开源电子网

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

为什么我的SRAM定义超过1k多一点的数组就不正常了,不是1M空间吗

[复制链接]

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-9-25
在线时间
13 小时
发表于 2016-12-5 11:23:11 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include "stm32f4xx.h"
#include "fsmc.h"
#include "uart.h"
#include "delay.h"
#include <stdio.h>
int main(void)
{
        u32 i=0;
        u8 data_buf[1024+450]  __attribute__((at(0X68000000)));
        u8 *p=(u8 *)"qwertyuiop";
        NVIC_SetPriorityGrouping(7-2);
        systick_init(168);
        uart_init(115200);
        fsmc_init();
//        printf("hello\r\n");
        for(i=0;i<1024;i++)
        {
                printf("%d\r\n",i);
                data_buf='\0';
        }
        for(i=0;*p!='\0';i++,p++)
        {
                data_buf=*p;
        }
        while(1)
        {
                printf("%s\r\n",data_buf);
                delay_ms(1000);
        }
}
[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

data_buf 是局部变量,从栈上分配,与强制指定地址相冲突。 自行查阅map文件确认真相!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2016-12-5 11:23:12 | 显示全部楼层
data_buf 是局部变量,从栈上分配,与强制指定地址相冲突。
自行查阅map文件确认真相!
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-9-25
在线时间
13 小时
 楼主| 发表于 2016-12-5 11:25:55 | 显示全部楼层
定义1k+440个字节时还能1秒打印一次,定义+450就开始不停地刷,无间隔,然后定义2K直接就不打印了
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-9-25
在线时间
13 小时
 楼主| 发表于 2016-12-5 11:53:31 | 显示全部楼层
aozima 发表于 2016-12-5 11:38
data_buf 是局部变量,从栈上分配,与强制指定地址相冲突。
自行查阅map文件确认真相!

谢谢!改成全局变量就没问题了。map文件不会看啊,搜不到data_buf这个变量
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-11 03:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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