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

枣庄手机网站建设可以做宣传的网站有哪些

枣庄手机网站建设,可以做宣传的网站有哪些,赣州管理中心网站,怎么做网站的界面继上一篇笔记#xff0c;成功启动了liteos_m内核#xff0c;可以创建线程了#xff0c;也能看到shell控制台了。 今天研究文件系统#xff0c;让控制台相关文件命令如mkdir和ls能工作。 liteos_m内核支持fatfs和littlefs两个文件系统#xff0c; fatfs适用于SD卡#xff…继上一篇笔记成功启动了liteos_m内核可以创建线程了也能看到shell控制台了。 今天研究文件系统让控制台相关文件命令如mkdir和ls能工作。 liteos_m内核支持fatfs和littlefs两个文件系统 fatfs适用于SD卡 littlefs适用于NORFLASH如W25Qxx系列。 我的板子上刚好有W25Q64试试接入littlefs文件系统。 基于之前的研究经验进入make menuconfig看看文件系统相关选项先把它选上 当启用文件系统后LOS_KernelInit会调用OsVfsInit进行初始化 OsVfsInit又会调用LfsInit初始化littlefs并把littlefs注册到vfs的类型列表。 那我们怎么使用它呢怎么让littlefs读写我们的SPIFLASH呢 经过调查我们需要使用mount函数进行挂载操作来绑定文件系统和FLASH设备。 那就在bsp目录新建littlefs.c参考代码 #include stdio.h #include spiflash.h #include lfs.h #include los_fs.hstatic int LittlefsRead(int partition, UINT32 *offset, void *buf, UINT32 size) {spiflash_read(*offset, buf, size);return LFS_ERR_OK; }static int LittlefsProg(int partition, UINT32 *offset, const void *buf, UINT32 size) {spiflash_write(*offset, buf, size);return LFS_ERR_OK; }static int LittlefsErase(int partition, UINT32 offset, UINT32 size) {spiflash_erase(offset, size);return LFS_ERR_OK; }static void LittlefsPartiton(void) {int lens[1]{1024*1024};int addr[1]{0};LOS_DiskPartition(flash0, littlefs, lens, addr, 1); }static void LittlefsMount(void) {int ret;struct PartitionCfg lfs_cfg;lfs_cfg.readFunc LittlefsRead;lfs_cfg.writeFunc LittlefsProg;lfs_cfg.eraseFunc LittlefsErase;lfs_cfg.readSize 64;lfs_cfg.writeSize 256;lfs_cfg.blockSize 4096;lfs_cfg.blockCount 256;lfs_cfg.cacheSize 4096;lfs_cfg.partNo 0;lfs_cfg.lookaheadSize 64;lfs_cfg.blockCycles 100;ret mount(NULL, /flash, littlefs, 0, lfs_cfg);printf(LittlefsInit ret%d\n, ret); }int LittlefsInit(void) {printf(LittlefsInit enter\n);spiflash_init();printf(SPIFLASH flash id0x%x\n, spiflash_read_id());LittlefsPartiton();LittlefsMount();return LFS_ERR_OK; }LittlefsInit函数是初始化文件系统函数在main里面完成LOS_KernelInit之后再调用。 spiflash_init是我们实现的W25QXX的驱动W25QXX使用的是STM32F407的SPI接口。 使用HAL库完成SPI驱动并用SPI读写W25QXX的部分就不在这里过多介绍了。 只要实现spiflash的init(初始化),read(读),write(写),erase(擦除)这4个函数就行。 LittlefsPartiton这个函数是定义1个磁盘分区不然mount会失败。 具体原因是liteos_m适配的代码lfs_adapter.c里面littlefs_block_xxx函数要用LfsGetStartAddr来寻找分区超始地址。LfsGetStartAddr会查找我们定义的分区表。 LittlefsMount函数则是调用mount函数挂载littlefs分区最后1个参数指定FLASH驱动参数。 mount函数最终会调用lfs_adapter.c里面的LfsMount函数。 LfsMount函数的最后1个参数会被LfsConfigAdapter((struct PartitionCfg *)data, cfg)转换为struct lfs_config结构传递给lfs_mount函数。 其它几个函数则就对FLASH读写操作进行封装就行了。 mount的第2个参数是挂载路径可以自定义但是用/我这里测试不行只能是/xxx目录。 写完代码按照之前的方法修改BUILD.gn一切顺利的话编译通过。 下载到板子可以看到LittlefsInit ret0的日志。 敲ls命令会报错但是cd /flash切换目录后就没有问题了。 需要读写文件的话#includefnctl.h使用open,read,write,close函数就可以了。
http://www.w-s-a.com/news/364952/

相关文章:

  • 做中医药网站有前景吗企业网站优化公司
  • 四川建设设计公司网站海南澄迈县
  • 邳州做网站梵克雅宝项链官网价格图片
  • dede网站收录滦平县建设局网站
  • 上海网站建设开发公注册公司要求什么条件
  • 安徽汽车网网站建设wordpress 知乎
  • 网站建设的功能都需要有哪些在线平台
  • 湖南岳阳网站开发网络公司石家庄做网站的公司哪个好
  • 西安市做网站的公司门户网站对应序号是什么
  • 太原网站域名开发什么是网页界面设计
  • 做产品类网站有哪些做一百度网站吗
  • 在线视频网站建设国外最新创意产品网站有哪些方面
  • 在一个网站下建设多个子网站宣传册画册设计公司
  • 潍坊网站建设公司排名网站建设预付
  • 手机和wap网站建设crm客户管理系统模板
  • 微商城网站建设市场唐山地方志网站建设
  • 想象力做网站网站301跳转代码
  • 做暧暧小视频有声音的网站太原网页搜索排名提升
  • 公众号链接的手机网站怎么做动易2006学校网站
  • 网站网上推广网站推他网站
  • 如何进行网站建设分析济宁做企业网站
  • 长沙网站seo技巧wordpress插件头像
  • appserv做网站教程微信信息流广告案例
  • 前端网站开发兼职长春火车站地下停车场收费标准
  • 苏州推广网站建设概况大连公交app
  • 移动互联网站开发与维护招聘网站建设计入什么费用
  • 郑州营销型网站建设erp系统有什么用
  • 公司网站开发费怎么入账投放广告网站
  • 企业网站开发文献综述加盟网网站建设策划书
  • 最便宜的网站空间网站建设和app开发