各内存实验的相关性分析:
1、SRAM实验中使用了testnum[]来存储和写入数据到SRAM中。
2、内存管理实验中使用了mymalloc和myfree函数直接对内存进行管理,当然还涉及到了内存池、内存管理表、内存控制器相关的概念。
3、SD卡实验中,将SD卡中扇区的内容读到mymalloc分配的SRAM内存中。
4、FATS实验中,将SD卡和FLASH分别挂载到FATS文件系统上,通过其自带的函数进行操作。
main.c
->fs_mount(fs[1],"1:",1) //作用是将逻辑块给挂载到相应注册区
FRESULT fs_mount(FATFS* fs,const TCHAR* path,BYTE opt)
->get_ldnumber(&rp)
int get_ldnumber(const TCHAR** path)
->res = find_volume(&fs, &path,0)
PRESULT find_volume(FATFS** rfs,const TCHAR** path,BYTE wmode)
->if(fs->fs_type) //如果fs->fs_type = 1,即已经挂载 后面的程序都不需要执行啦
{
stat = disk_status(fs->drv);
if(!(stat & STAT_NOINIT))
{
if(!_FS_READONLY && wmode && (stat & STA_PROTECT))
return FR_WRITE_PROTECTED;
return FR_OK;
}
}
->stat = disk_initialize(fs->drv); //根据fs->drv初始化SD卡或FLASH
disk_ioctl1(fs->drv,GET_SECTOR_SIZE,&SS(fs)) //从不同命令,根据fs->drv得到内存的参数 //sector size等。
1、SRAM实验中使用了testnum[]来存储和写入数据到SRAM中。
2、内存管理实验中使用了mymalloc和myfree函数直接对内存进行管理,当然还涉及到了内存池、内存管理表、内存控制器相关的概念。
3、SD卡实验中,将SD卡中扇区的内容读到mymalloc分配的SRAM内存中。
4、FATS实验中,将SD卡和FLASH分别挂载到FATS文件系统上,通过其自带的函数进行操作。
main.c
->fs_mount(fs[1],"1:",1) //作用是将逻辑块给挂载到相应注册区
FRESULT fs_mount(FATFS* fs,const TCHAR* path,BYTE opt)
->get_ldnumber(&rp)
int get_ldnumber(const TCHAR** path)
->res = find_volume(&fs, &path,0)
PRESULT find_volume(FATFS** rfs,const TCHAR** path,BYTE wmode)
->if(fs->fs_type) //如果fs->fs_type = 1,即已经挂载 后面的程序都不需要执行啦
{
stat = disk_status(fs->drv);
if(!(stat & STAT_NOINIT))
{
if(!_FS_READONLY && wmode && (stat & STA_PROTECT))
return FR_WRITE_PROTECTED;
return FR_OK;
}
}
->stat = disk_initialize(fs->drv); //根据fs->drv初始化SD卡或FLASH
disk_ioctl1(fs->drv,GET_SECTOR_SIZE,&SS(fs)) //从不同命令,根据fs->drv得到内存的参数 //sector size等。