CN107861726A - 一种基于NandFlash的文件处理***的实例化方法 - Google Patents
一种基于NandFlash的文件处理***的实例化方法 Download PDFInfo
- Publication number
- CN107861726A CN107861726A CN201711343802.2A CN201711343802A CN107861726A CN 107861726 A CN107861726 A CN 107861726A CN 201711343802 A CN201711343802 A CN 201711343802A CN 107861726 A CN107861726 A CN 107861726A
- Authority
- CN
- China
- Prior art keywords
- file
- storage device
- nandflash
- handling system
- document handling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于NandFlash的文件处理***的实例化方法,可实现在MCU上通过与NandFlash的通信把NandFlash实例化成FAT16/FAT32格式的文件***,实例化的文件***支持识别多个存储设备及可进行多个分区,并可以实现存储设备的同步挂载与卸载操作;在存储图片、文本时可实现直接从PC端拖拉到实例化的NandFlash文件***中进行修改,显示等操作,无需把图片或文件编译到源代码中即可直接使用,优化代码的可移植性及运行速度。
Description
技术领域
本发明属于文件处理***的技术领域,尤其涉及一种基于NandFlash的文件处理***的实例化方法。
背景技术
现有的MCU在使用图片的显示,及调用文本数据时采用的是直接将图片或文本编译进源代码,在代码调用过程中在RAM中开辟内存用来缓存图片数据及文件内容,当需要显示图片或读取文本内容时从RAM中调用相应的图片数据或文件数据以实现LCD的显示。此方案的缺陷:1)采用上面的方式来实现在图片数据或文本数据保存,会破坏代码的模块化,特别是当图片或文本的数据量大时代码会更臃肿浪费RAM空间;2)上面的方式上无法方便的实现图片的替换,修改,增加,影响代码的灵活性,没有办法做到真正的内容可定制化;3)程序在不同机型上移植难度大,不利于公司多机型开发。
发明内容
本发明主要解决的技术问题是提供一种基于NandFlash的文件处理***的实例化方法,可实现在MCU上通过与NandFlash的通信把NandFlash实例化成FAT16/FAT32格式的文件***,实例化的文件***支持识别多个存储设备及可进行多个分区,并可以实现存储设备的同步挂载与卸载操作;在存储图片、文本时可实现直接从PC端拖拉到实例化的NandFlash文件***中进行修改,显示等操作,无需把图片或文件编译到源代码中即可直接使用,优化代码的可移植性及运行速度。
为解决上述技术问题,本发明采用的一个技术方案是:提供了一种基于NandFlash的文件处理***的实例化方法,包括以下具体步骤:
a、首先在文件处理***中对存储设备进行初始化的操作,读取存储设备的基本信息,统计存储设备的容量大小;
b、根据自定义的分区容量大小对存储设备过行格式化设备,判断存储设备的剩余容量大小并在PC端给出提示信息;
c、把存储设备以文件的形式挂载到文件处理***当中供程序调用图片或文件内容;
d、从PC端操作存储设备内的所有图片或文件内容;
e、把源代码程序与操作的图片或文本内容分开,实现内容的可定制化及功能模块的可移植化。
在本发明一个较佳实施例中,所述的文件处理***把NandFlash实例化成FAT16/FAT32格式的文件***。
本发明的有益效果是:本发明的基于NANDFLASH的文件处理***的实例化方法,可实现在MCU上通过与NandFlash的通信把NandFlash实例化成FAT16/FAT32格式的文件***,实例化的文件***支持识别多个存储设备及可进行多个分区,并可以实现存储设备的同步挂载与卸载操作;在存储图片、文本时可实现直接从PC端拖拉到实例化的NandFlash文件***中进行修改,显示等操作,无需把图片或文件编译到源代码中即可直接使用,优化代码的可移植性及运行速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1 是现有技术中基于NandFlash的文件处理***的实例化方法一较佳实施例的流程图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例包括:
一种基于NandFlash的文件处理***的实例化方法,包括以下具体步骤:
a、首先在文件处理***中对存储设备进行初始化的操作,读取存储设备的基本信息,统计存储设备的容量大小;
b、根据自定义的分区容量大小对存储设备过行格式化设备,判断存储设备的剩余容量大小并在PC端给出提示信息;
c、把存储设备以文件的形式挂载到文件处理***当中供程序调用图片或文件内容;
d、从PC端操作存储设备内的所有图片或文件内容;
e、把源代码程序与操作的图片或文本内容分开,实现内容的可定制化及功能模块的可移植化。
/*******************
文件***对存储设备中内容的操作。
******************/
typedef struct file_op_S
{
// 打开文件
INT (*fopen)(FILE_T *,CHAR *,CHAR *);
// 读取文件数据
INT (*fread)(FILE_T *, UINT8 *,INT, INT *);
// 写数据到文件
INT (*fwrite)(FILE_T *, UINT8 *, INT, INT*);
// 关闭文件
INT INT(*fclose)(FILE_T *);
// 修改文件大小
INT (*fsizing)(FILE_T *,INT64);
// 设置文件指针位置
INT 64 (*fseek)(FILE_T *, INT64);
// 获取文件状态
INT (*fget_stat)(FILE_T *, FILE_STAT_T *);
// 设备文件状态
INT (*fset_stat)(FILE_T *, FILE_STAT_T *);
// 搜索存储设备内的文件
INT (*find_first)(FILE_T *, FILE_FIND_T *);
//搜索下一个文件
INT (*find_next)(FILE_T *, FILE_FIND_T *);
// 结束搜索
INT (*find_close)(FILE_T *, FILE_FIND_T *);
// 文件***特殊操作
INT (*fioctl)(FILE_T *, INT, VOID *);
}。
上述中,所述的文件处理***把NandFlash实例化成FAT16/FAT32格式的文件***。
本发明目的是提供一种执行操作的源代码与图片数据及文本数据等其它内容分开存储,从而使得代码执行的效率大大提高,代码的可扩展性及灵活性也会有很大的提高,图片及文本的内容随时可以进行修改,替换操作等优点。
为达到上述目的,本发明采用的软件代码如下:
/**********************
普通nand存储设备操作的结构体
***********************/
struct ndrv_t gnand_disk_driver = {
nandInit0,
nandpread0,
nandpwrite0,
nand_is_page_dirty0,
nand_is_valid_block0,
nand_ioctl,
nand_block_erase0,
nand_chip_erase0,
0
};
/////运行函数
INT initalize_file_system_gnand_usb(void)
{
//块设备的空间大小
UINT block_size,
//存储设备可使用的空间大小
UINT free_size,
//分区的空间大小
UINT disk_size;
//存储设备的总共空间大小
UINT INT total_size,
//存储设备通信的时钟
UINT pll_out_Hz,
//外部的时钟源
UINT extern_freq;
//***获取外部时钟源
extern_freq = sysGetExternalClock();
//依据CPU的UPLL来获得当前需要的时钟
pll_out_Hz = sysGetPLLOutputKhz(eSYS_UPLL, extern_freq);
//初始化文件***
initalize_file_system();
//设置快速存储设备接口核心时钟
set_FMI_engine_clock(SIC_SET_CLOCK, pll_out_Hz);
//初始化快速存储接口设备
initlalize_FMI_device();
//初始化普通nand设备
if(initalize_gnand_device(&gnand_disk_driver, &gnand_info) < 0)
{
//初始化失败后跳转
goto nandboot_halt;
}
//初始化后的nand设备挂载到文件***
if(mount_nand_disk(&gnand_info) < 0)
{
//挂载失败则跳转
goto nandboot_halt;
}
//识别并统计存储设备的容量大小
total_size = (UINT32)((UINT64)gnand_info.nZone* gnand_info.nLBPerZone*gnand_info.nPagePerBlock*gnand_info.nPageSize/1024);
////判断字符C设备可使用的容量大小
if ((get_disk_free_space( 'C', &block_size, &free_size, &disk_size) <0) ||
//判断字符D设备可使用的容量大小
(get_disk_free_space( 'D', &block_size, &free_size, &disk_size) < 0)){
//判断存储设备剩余的容量大小,如果已经没有容量则按照自定义的分区空间大小来格式化存储设备。
if(fsTwoPartAndFormatAll((PDISK_T *)gnand_info.pDisk,NAND1_1_SIZE*1024,(total_size- NAND1_1_SIZE*1024)) < 0)
{//格式化存储设备失败后的跳转
goto nandboot_halt;
}
//字符C设备重命名在OS上显示
set_volume_label('C', "NAND1-1\n", strlen("NAND1-1\n"));
//字符D设备重命名在OS上显示
set_volume_label('D', "NAND1-2\n", strlen("NAND1-1\n"));
}
//延时操作
sysDelay(5);
//判断如果有USB设备***到此文件***,识别USB并在PC显示接口信息
if(udcIsAttached())
{//在PC机上通过USB显示文件的存储设备信息及接口
mass(&gnand_info, NULL, NULL, NULL, NULL, NULL, 0);
}
//返回成功信息
return Successful;
//失败跳转执行程序
nandboot_halt:
//一直等待并打印信息
sysprINTf("systen exit\n");
while(1);
}。
综上所述,本发明的基于NandFlash的文件处理***的实例化方法,可实现在MCU上通过与NandFlash的通信把NandFlash实例化成FAT16/FAT32格式的文件***,实例化的文件***支持识别多个存储设备及可进行多个分区,并可以实现存储设备的同步挂载与卸载操作;在存储图片、文本时可实现直接从PC端拖拉到实例化的NandFlash文件***中进行修改,显示等操作,无需把图片或文件编译到源代码中即可直接使用,优化代码的可移植性及运行速度。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (2)
1.一种基于NandFlash的文件处理***的实例化方法,其特征在于,包括以下具体步骤:
a、首先在文件处理***中对存储设备进行初始化的操作,读取存储设备的基本信息,统计存储设备的容量大小;
b、根据自定义的分区容量大小对存储设备过行格式化设备,判断存储设备的剩余容量大小并在PC端给出提示信息;
c、把存储设备以文件的形式挂载到文件处理***当中供程序调用图片或文件内容;
d、从PC端操作存储设备内的所有图片或文件内容;
e、把源代码程序与操作的图片或文本内容分开,实现内容的可定制化及功能模块的可移植化。
2.根据权利要求1所述的基于NandFlash的文件处理***的实例化方法,其特征在于,所述的文件处理***把NandFlash实例化成FAT16/FAT32格式的文件***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711343802.2A CN107861726A (zh) | 2017-12-15 | 2017-12-15 | 一种基于NandFlash的文件处理***的实例化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711343802.2A CN107861726A (zh) | 2017-12-15 | 2017-12-15 | 一种基于NandFlash的文件处理***的实例化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107861726A true CN107861726A (zh) | 2018-03-30 |
Family
ID=61706591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711343802.2A Pending CN107861726A (zh) | 2017-12-15 | 2017-12-15 | 一种基于NandFlash的文件处理***的实例化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107861726A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183337A (zh) * | 2007-12-12 | 2008-05-21 | 中兴通讯股份有限公司 | 基于nand flash移动终端存储介质的空间管理方法 |
US20090248963A1 (en) * | 2008-03-28 | 2009-10-01 | Takafumi Ito | Memory controller and memory system including the same |
CN104081391A (zh) * | 2012-01-25 | 2014-10-01 | 株式会社日立制作所 | 使用文件克隆的单实例化方法和利用该方法的文件存储*** |
-
2017
- 2017-12-15 CN CN201711343802.2A patent/CN107861726A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183337A (zh) * | 2007-12-12 | 2008-05-21 | 中兴通讯股份有限公司 | 基于nand flash移动终端存储介质的空间管理方法 |
US20090248963A1 (en) * | 2008-03-28 | 2009-10-01 | Takafumi Ito | Memory controller and memory system including the same |
CN104081391A (zh) * | 2012-01-25 | 2014-10-01 | 株式会社日立制作所 | 使用文件克隆的单实例化方法和利用该方法的文件存储*** |
Non-Patent Citations (1)
Title |
---|
野火_FIREGE: "第25章 串行FLASH文件***FatFs—零死角玩转STM32-F429系列", 《CSDN博客,HTTPS://BLOG.CSDN.NET/FLYLEAF91/ARTICLE/DETAILS/52325515》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572411B (zh) | 一种日志数据的处理方法及装置 | |
CN102541572B (zh) | 一种实现操作***内核引导的方法、***及装置 | |
US9098303B2 (en) | Portable computing device providing operating system for host devices | |
US9128893B2 (en) | Remote direct memory access socket aggregation | |
EP0930567A2 (en) | Method and apparatus for extending security model to native code | |
US20030233501A1 (en) | Device for transferring from a memory card interface to a universal serial bus interface | |
CN100365576C (zh) | 嵌入式操作***内存镜像启动优化的实现方法 | |
CN103092654B (zh) | 一种基于WebKit的WebOS实现方法和*** | |
CN107807827A (zh) | 一种支持多核cpu多操作***的方法 | |
CN105573910B (zh) | 受保护***的应用程序调试方法及智能终端 | |
CN104636159A (zh) | 对虚拟机中的软件进行升级的方法和装置 | |
US8489860B1 (en) | Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device | |
RU2616164C9 (ru) | Способы и устройство для работы браузерного движка | |
CN102402411B (zh) | 一种计算机、辅助显示设备以及信息显示方法 | |
EP1347380A2 (en) | SMbus notifications | |
CN201571108U (zh) | 嵌入式移动终端的操作平台 | |
CN105677418B (zh) | 在接入设备中实现多个不同语音协议的方法及*** | |
CN107861726A (zh) | 一种基于NandFlash的文件处理***的实例化方法 | |
CN109495910A (zh) | Wifi启动连接处理方法、移动终端及存储介质 | |
WO2022111664A1 (zh) | 打补丁的方法、相关设备及*** | |
CN111813333B (zh) | 在存储器内异步复制数据的方法、***和介质 | |
CN103699524A (zh) | 分词方法和移动终端 | |
WO2021238376A1 (zh) | 功能包的加载方法、装置、服务器和电子设备 | |
CN112765070A (zh) | 一种数据传输调试方法、***、电子设备及存储介质 | |
US20140089601A1 (en) | Managing a region cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180330 |
|
RJ01 | Rejection of invention patent application after publication |