请教F429IGT6 SDRAM,原子电路,跑实验 38.内存管理实验, 用外部方式申请 u8 sramx=1,时,出现失败!

2019-07-20 06:10发布

int main(void)
{
    u8 paddr[20];                                    //存放P Addr:+p地址的ASCII值
        u16 memused=0;
        u8 i=0;            
        u8 *p=0;
        u8 *tp=0;
        u8 sramx=1;                                            //默认为内部sram

    HAL_Init();                     //初始化HAL库   
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
    delay_init(180);                //初始化延时函数
    uart_init(115200);              //初始化USART
    usmart_dev.init(90);                     //初始化USMART       
       
        printf("串口初始化成功! ");

    SDRAM_Init();                   //初始化SDRAM

        my_mem_init(SRAMIN);                    //初始化内部内存池
        my_mem_init(SRAMEX);                    //初始化外部内存池
        my_mem_init(SRAMCCM);                    //初始化CCM内存池

         
         
        printf("初始化内存 ");
                        memused=my_mem_perused(SRAMIN);
                        sprintf((char*)paddr,"%d.%01d%%",memused/10,memused%10);
                        printf("SRAMIN:%s ", paddr);
               
                        memused=my_mem_perused(SRAMEX);
                        sprintf((char*)paddr,"%d.%01d%%",memused/10,memused%10);
                        printf("SRAMEX:%s ", paddr);
               
                        memused=my_mem_perused(SRAMCCM);
                        sprintf((char*)paddr,"%d.%01d%%",memused/10,memused%10);
                        printf("SRAMCCM:%s ", paddr);
                       

                                printf("申请内存 ");
                                p=mymalloc(sramx,2048);//申请2K字节
                                if(p!=NULL)sprintf((char*)p,"Memory Malloc Test%03d",i);//向p写入一些内容
                                if(p!=NULL)
                                {
                                        sprintf((char*)p,"Memory Malloc Test%03d",i);//更新显示内容          
                                        //LCD_ShowString(30,270,200,16,16,p);                         //显示P的内容
                                        printf("读:%s ", p);
                                }
                if(tp!=p&&p!=NULL)
                {
                        tp=p;
                        sprintf((char*)paddr,"P Addr:0X%08X",(u32)tp);
                        printf("paddr:%s ", paddr);
                        if(p)
                                printf("%s ", p);
                    else
                                printf("Null! ");
                }
                        memused=my_mem_perused(SRAMIN);
                        sprintf((char*)paddr,"%d.%01d%%",memused/10,memused%10);
                        printf("SRAMIN:%s ", paddr);
               
                        memused=my_mem_perused(SRAMEX);
                        sprintf((char*)paddr,"%d.%01d%%",memused/10,memused%10);
                        printf("SRAMEX:%s ", paddr);
               
                        memused=my_mem_perused(SRAMCCM);
                        sprintf((char*)paddr,"%d.%01d%%",memused/10,memused%10);
                        printf("SRAMCCM:%s ", paddr);
}








#########################打印如下:############################
串口初始化成功!
初始化内存
SRAMIN:0.0%
SRAMEX:100.0%
SRAMCCM:0.0%
申请内存
SRAMIN:0.0%
SRAMEX:100.0%
SRAMCCM:0.0%

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
ymkfbj
1楼-- · 2019-07-20 12:04
################# 已解决 #################
重新焊了下SDRAM就好了

################ 打印如下 ################
初始内存完成!
ExMemory Size:32KB
ExMemory Size:64KB
ExMemory Size:96KB
ExMemory Size:128KB
ExMemory Size:160KB
ExMemory Size:192KB
ExMemory Size:224KB
ExMemory Size:256KB
ExMemory Size:288KB
ExMemory Size:320KB
ExMemory Size:352KB
ymkfbj
2楼-- · 2019-07-20 17:20
有人用过SDRAM吗,方便帮发下例程不呢
ymkfbj
3楼-- · 2019-07-20 19:45
 精彩回答 2  元偷偷看……

一周热门 更多>