[STM32F2]

用SK-STM32F207的板子,写外部SRAM数据重叠,请大神看下

[复制链接]
1627|5
手机看帖
扫描二维码
随时随地手机跟帖
qzwx741|  楼主 | 2014-7-14 10:08 | 显示全部楼层 |阅读模式
u16 testsram1[32767] __attribute__((at(0X64000000)));
u16 testsram2[32768] __attribute__((at(0X64010000)));
u16 testsram3[32768] __attribute__((at(0X64020000)));
u16 testsram4[32768] __attribute__((at(0X64030000)));
u16 testsram5[32768] __attribute__((at(0X64040000)));
u16 testsram6[32768] __attribute__((at(0X64050000)));
u16 testsram7[32768] __attribute__((at(0X64060000)));
u16 testsram8[32768] __attribute__((at(0X64070000)));
u16 testsram9[32768] __attribute__((at(0X64080000)));
u16 testsram10[32768] __attribute__((at(0X64090000)));
u16 testsram11[32768] __attribute__((at(0X640a0000)));
u16 testsram12[32768] __attribute__((at(0X640b0000)));
u16 testsram13[32768] __attribute__((at(0X640c0000)));
u16 testsram14[32768] __attribute__((at(0X640d0000)));
u16 testsram15[32768] __attribute__((at(0X640e0000)));
u16 testsram16[32768] __attribute__((at(0X640f0000)));
u16 testsram17[32768] __attribute__((at(0X64100000)));
u16 testsram18[32768] __attribute__((at(0X64110000)));
u16 testsram19[32768] __attribute__((at(0X64120000)));
u16 testsram20[32768] __attribute__((at(0X64130000)));
u16 testsram21[32768] __attribute__((at(0X64140000)));
u16 testsram22[32768] __attribute__((at(0X64150000)));
u16 testsram23[32768] __attribute__((at(0X64160000)));
u16 testsram24[32768] __attribute__((at(0X64170000)));
u16 testsram25[32768] __attribute__((at(0X64180000)));
u16 testsram26[32768] __attribute__((at(0X64190000)));
u16 testsram27[32768] __attribute__((at(0X641a0000)));
u16 testsram28[32768] __attribute__((at(0X641b0000)));
u16 testsram29[32768] __attribute__((at(0X641c0000)));
u16 testsram30[32768] __attribute__((at(0X641d0000)));

#define  Write_Read_Addr_offset   0x10000
        u8 i;
        u8 k=0;
        u16 dat[32];
        if(Write_Sram_Flag==1)
        {
                Write_Sram_Flag=0;       
                        for(i=0;i<30;i++)
                        {
                                for(k=0;k<32;k++)
                                {
                                 dat[k]=i+1;
                                }
                    SRAM_WriteBuffer(&dat[0], i*Write_Read_Addr_offset+(zzz-1)*64, 32);
                        }       
                        zzz++;
                        if(zzz>=1000)
                                zzz=1000;
        }
具体现象是testsram26、testsram27、testsram28、testsram29、testsram30的数据和中间一些是对的;有部分数据都被覆盖了,比如testsram8和testsram16的数据都是16,请大神指点下,谢谢
qzwx741|  楼主 | 2014-7-14 10:10 | 显示全部楼层

使用特权

评论回复
qzwx741|  楼主 | 2014-7-14 10:13 | 显示全部楼层
2楼图没传好
截图00.jpg

使用特权

评论回复
qzwx741|  楼主 | 2014-7-14 10:17 | 显示全部楼层
在线等,请版主来看看,谢谢

使用特权

评论回复
mmuuss586| | 2014-7-14 12:47 | 显示全部楼层
看程序和硬件连接没错啊;
每写完一个数据,再读出来比对下,先判断数据是否正确,一步步查下原因;

使用特权

评论回复
qzwx741|  楼主 | 2014-7-14 12:55 | 显示全部楼层
如果只用其中没有重叠的区域,那么数据读写都是正确的,问题是硬件不知道怎么查啊,这个是SK-STM32F207的开发板,硬件只能看原理图,这个没问题,线也测量是正确的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

79

帖子

1

粉丝