当前位置: 首页 > news >正文

昆山专业简历制作网站网站开发与设计的总体思想

昆山专业简历制作网站,网站开发与设计的总体思想,开发游戏学什么专业,阿里云linux安装wordpress[写作为了记忆,个人最终输出的内容往往是遗忘后最容易捡起的内容,故以此作文] 目录 [写作为了记忆,个人最终输出的内容往往是遗忘后最容易捡起的内容,故以此作文] 前提 内容 认识 基于ARTPI的文件系统的挂载 ROMFS与LFS. #xff08;默认自动挂载,romfs可读不可写) 搭…[写作为了记忆,个人最终输出的内容往往是遗忘后最容易捡起的内容,故以此作文] 目录 [写作为了记忆,个人最终输出的内容往往是遗忘后最容易捡起的内容,故以此作文] 前提 内容 认识 基于ARTPI的文件系统的挂载 ROMFS与LFS. 默认自动挂载,romfs可读不可写) 搭建RAMFS文件系统快可读可写掉电丢失数据) ARPI使用外部SPI FLASH搭建外部文件系统(可读可写) 总结 前提 首先RT-Thread官网对文件系统已经有非常详细的文档了这得益于rtt的强大给力的社区团队. 更何况我用的还是rtt官方的开发板 ART PI,A代表第一个,RT代表RT-Thread,不知道以后会不会是BRT-PI ,CRT-PI哈哈哈.本次的搭建文件系统收益于官方给出的BSP的快速开发.ARTPI也是一个极其经典的开发板了. 内容 认识 认识文件系统以经典的话来总结文件系统是一层软件用来对真实的设备如FLASH,RAM,SD卡以文件的形式进行操作或者直接对设备进行访问等。一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型 (Abstract data type)是一种用于向用户提供底层数据访问的机制.后面这一段加粗的正是官方给的定义. 各种不同的文件系统通过多层的封装可以像linux那样通过open,write,read这些函数进行操作处理。 文件系统的初始化过程一般分为以下几个步骤 初始化 DFS 组件。初始化具体类型的文件系统。在存储器上创建块设备。格式化块设备。挂载块设备到 DFS 目录中。当文件系统不再使用可以将它卸载。 DFS是虚拟文件系统组件dfs为什么文件系统被冠以虚拟二字? 1. 提供标准化的文件/设备访问API。通过标准的open/read/write等接口访问不同的文件系统和设备。 2. 支持多种文件系统和设备的挂载。如FATFS、RomFS、RAMFS以及字符设备、块设备等。 3. 通过统一的接口处理不同文件系统的差异性。对上层透明,方便应用端口。 4. 支持不同文件系统间的操作。如可以读取RomFS上的文件写入FATFS。 5. 异步化设计,API可工作在中断服务例程中。 6. 相关源代码在components/dfs目录下。使用VFS的好处是方便移植不同的文件系统,对访问文件系统的应用程序透明,使应用程序可以应用于不同的RTOS上。RT-Thread中的VFS实现了POSIX风格的文件和设备访问API,可以支持FatFS、LittleFS、RomFS等多种文件系统,也可以访问各种设备,使用起来方便灵活。  简而言之DFS是一层软件来管理具体的文件系统其他的具体的文件系统都要注册到dfs中这样就能使用统一的接口进行操作. 基于ARTPI的文件系统的挂载 dfs提供了根目录 / . ROMFS与LFS. 默认自动挂载,romfs可读不可写) 一般romfs会在根目录下创建几个目录,用来给别的文件系统挂载文件系统必须要挂载在存在的目录下面.ARTPI开启了对应的文件系统后初始化和注册都是自动完成的.romfs在ARTPI中自动初始化了并挂载在了根目录下.并创建了几个其他的目录. 若是需要新增其他的目录则自行更改_romfs_root[]数组. 在mount_init中自动挂载romfs,并根据宏判断是否挂载LFS或SDCARD_FS int mount_init(void) {if (dfs_mount(RT_NULL, /, rom, 0, (romfs_root)) ! 0){LOG_E(rom mount to / failed!);}#ifdef BSP_USING_SPI_FLASH_FSstruct rt_device *flash_dev RT_NULL;#ifndef RT_USING_WIFIfal_init();#endifflash_dev fal_mtd_nor_device_create(filesystem);if (flash_dev){//mount filesystemif (dfs_mount(flash_dev-parent.name, /flash, lfs, 0, 0) ! 0){LOG_W(mount to /flash failed! try to mkfs %s, flash_dev-parent.name);dfs_mkfs(lfs, flash_dev-parent.name);if (dfs_mount(flash_dev-parent.name, /flash, lfs, 0, 0) 0){LOG_I(mount to /flash success!);}}else{LOG_I(mount to /flash success!);}}else{LOG_E(Cant create block device filesystem or bt_image partition.);}#endif#ifdef BSP_USING_SDCARD_FSrt_thread_t tid;rt_pin_mode(SD_CHECK_PIN, PIN_MODE_INPUT_PULLUP);tid rt_thread_create(sd_mount, sd_mount, RT_NULL,2048, RT_THREAD_PRIORITY_MAX - 2, 20);if (tid ! RT_NULL){rt_thread_startup(tid);}else{LOG_E(create sd_mount thread err!);}#endifreturn RT_EOK; } INIT_APP_EXPORT(mount_init);这里的是BSP写好的,使能SPI filesystem后则自动在NOR SPI flash 上挂载LFS.正如上面的代码一样.有两种方式可以使用lfs 通过MTD框架创建mtd nor flash设备,然后在该设备上挂载LFS文件系统。正如上面一样使用mtd框架创建mtd nor flash设备好处是再一次进行抽象不用自己去实现norflash的操作接口..直接与NOR Flash芯片进行交互,实现LFS需要的4个操作接口,然后可以直接在NOR Flash上创建LFS文件系统,不需要mtd设备。第二种方式可以减少一次抽象层,但需要自己处理底层NOR Flash的操作。 搭建RAMFS文件系统快可读可写掉电丢失数据) 这个就相当于使用内部的ram来作为文件系统ARTPI内部有1M的ram. 使用1K来挂载RAMFS在根目录下 void myramstest1(void) {dfs_unmount(/); //unmounted romvoid * ret rt_malloc(1024);if(ret NULL){rt_kprintf(malloc error\r\n);return ;}if (dfs_mount(RT_NULL, /, ram, 0, dfs_ramfs_create(ret,1024)) 0){rt_kprintf(RAM file system initializated!\n);}else{rt_kprintf(RAM file system initializate failed!\n);}}ARPI使用外部SPI FLASH搭建外部文件系统(可读可写) ARTPI有一个NOR SPI接口的FLASH,还有一个qspi接口的flash,这两个FLASH都挺大的,在它的bsp中默认把这个nor spi flash进行了分区: 在fal.cfg.h下定义了分区表 在norflash0设备的filesystem分区(12M)下挂载fat文件系统到/flash目录下,/flash目录是由romfs创建的一个目录. /*** mount fat filesystem* */#include fal.h #include dfs_file.h #define FS_PARTITION_NAME filesystem #define mymountpoint /flashvoid MountFAT(void ) {// tate flash partition to block devicestruct rt_device *flash_dev fal_blk_device_create(FS_PARTITION_NAME);if (flash_dev NULL){rt_kprintf(Cant create a block device on %s partition.\n, FS_PARTITION_NAME);}else{rt_kprintf(Create a block device on the %s partition of flash successful.\n, FS_PARTITION_NAME);}if(rt_device_find(FS_PARTITION_NAME) ! RT_NULL){rt_kprintf(find device\r\n);//mount in the first timeif(dfs_mount(FS_PARTITION_NAME, mymountpoint, elm, 0, 0) ! RT_EOK){//not find file system then init fike system and formatingdfs_mkfs(elm, FS_PARTITION_NAME);//try again to mountif(dfs_mount(FS_PARTITION_NAME, mymountpoint, elm, 0, 0) RT_EOK){rt_kprintf( elm filesystem mount to %s\n,mymountpoint);}else{rt_kprintf(elm filesystem mount to %s failed!\n,mymountpoint);}}// last exist fat file system ,ignore dfs_mkfselse{rt_kprintf( elm filesystem mount to %s\n,mymountpoint);}}else{rt_kprintf(find filesystem portion failed\r\n);}return RT_EOK; } INIT_APP_EXPORT(MountFAT); 总结 ARTPI是极好的开发板M7的处理器大容量的FLASH,有基于RT-Thread完善的软件包和组件有BSP,极大能够让人快速面向bsp进行开发.实现了上层应用与底层的解耦.
http://www.dnsts.com.cn/news/44540.html

相关文章:

  • 电子商务网站建立全屋定制十大公认品牌有哪些
  • 网站排名下降怎么上去在哪个网站可以学做淘宝详情
  • 大型资讯门户网站怎么做排名华为应用市场下载安装
  • 微信公众号php网站开发google广告投放技巧
  • 做旅游网站的目的是什么购买手机网站推荐
  • 网站关键词策略团购网站模块
  • 黄村做网站哪家快互联网家装公司
  • 购物网站那个信用好又便宜白云商城型网站建设
  • 网站广告联盟怎么做的邯郸网站设计建设
  • 福州网站建设流程网站没有icp备案是不是就是骗子
  • 商城网站商家入驻功能公司网站做的好的
  • 广东珠海网站建设网站建设展示型是什么
  • 韩国企业网站模板下载免费签名logo设计
  • 公司怎么注册网站免费wordpress本地更换为网站域名
  • 创建网站需要注意什么wordpress 视频不播放
  • 简述网站开发的工作流程网站个人中心页面设计
  • 网站建设业务流程wordpress横向导航菜单主题
  • 进行网站建设网站参考页面设计
  • 河北网站备案系统最新军事新闻军事最新新闻
  • 海南电子商务网站vr 全景 网站建设
  • 建设主题网站的顺序是什么备案不关闭网站的方法
  • 做网站的功能是什么郑州建站多少钱
  • 太原网站制作机构网页视频下载到电脑
  • 网站制作咨询湖南网站排名优化公司
  • 餐饮行业做网站的好处建设银行网址
  • php网站建设工程师网站建设总体流程
  • 家具网站建设公司wordpress进的慢
  • 扁平配色网站网站建设专题页面
  • seo网站优化快速排名软件wordpress不填标题无法发布
  • 化隆网站建设公司网站建设推广总结