搜索
bottom↓
回复: 19

纯轮子能申请开源项目么。。。

[复制链接]

出0入362汤圆

发表于 2021-7-20 16:59:28 | 显示全部楼层 |阅读模式
打算自己实现一个romfs的库,主要用于在spiflash里放点字库、图片、声音之类方便些。
以前做过一个管理spiflash文件的库, 链接: https://github.com/tomzbj/flasher.py
后来觉得要不光能在pc上管理,最好在mcu上用着也方便一点,还需要扩充,不过再扩充就成fs了。既然这样,不如还是找个现成的fs用起来,只读即可,简单点最好。fatfs和spiffs功能过于强大,没必要。
romfs刚合适,只读,而且文件内容连续储存,只是没找到合适的库。
github上找了一个,https://github.com/litwr2/a-romfs-driver, 它的缺点一是只能从地址空间读取,直接把需要的资源编译到mcu内部flash用,没问题,放spiflash就不行了。得把底层的读功能改成回调函数,由用户提供。二是不支持子目录。

目前开了个头,实现了opendir和readdir,做了个简单的demo, 可以列出img里的文件 (ls和ll命令)
微信截图_20210720165437.png

支持切换目录 (pwd和cd命令, 目前仅限一层子目录)
微信截图_20210720165554.png

之后计划依次实现cat, hexview, crc32, 再加个文件导出功能。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2021-7-20 22:37:48 | 显示全部楼层
支持,然后来个上位机,可以GUI界面下载和管理flash文件

出0入362汤圆

 楼主| 发表于 2021-7-20 22:41:53 | 显示全部楼层
shower.xu 发表于 2021-7-20 22:37
支持,然后来个上位机,可以GUI界面下载和管理flash文件

之前那个flasher.py是有上位机的, 不过只有命令行界面.

gui就算了, 凡是有gui的场合, 基本要在gui上浪费80%的时间...

出16170入6148汤圆

发表于 2021-7-20 23:12:24 来自手机 | 显示全部楼层
好,大家讨论一下,看看是否多人感兴趣。

出0入0汤圆

发表于 2021-7-20 23:13:54 来自手机 | 显示全部楼层
是nandflash还是nor flash?spi

出10入284汤圆

发表于 2021-7-21 00:09:45 来自手机 | 显示全部楼层
我做过W25Q系列的简易烧写器,GUI用python不难写,pyqt大法好

出0入362汤圆

 楼主| 发表于 2021-7-21 09:09:16 | 显示全部楼层
eeehua 发表于 2021-7-20 23:13
是nandflash还是nor flash?spi

随便, 底层的读操作由用户提供回调函数.

出0入4汤圆

发表于 2021-7-21 09:10:53 | 显示全部楼层
支持造轮子, 有些技能树只有不断的造轮子才能点开的.

出0入0汤圆

发表于 2021-7-21 09:17:54 | 显示全部楼层
支持造轮子.

出10入0汤圆

发表于 2021-7-21 10:17:45 | 显示全部楼层

出0入17汤圆

发表于 2021-7-21 14:22:26 | 显示全部楼层
支持,弄个简易的正如楼主所说的,MCU放少量文件的场合。有个项目,官方SDK里面的配置是json, mcu苦于没有轻量的文件系统,还得用电脑写工具先转成数组。

出0入362汤圆

 楼主| 发表于 2021-7-21 22:18:26 | 显示全部楼层
think_a_second 发表于 2021-7-21 14:22
支持,弄个简易的正如楼主所说的,MCU放少量文件的场合。有个项目,官方SDK里面的配置是json, mcu苦于没有 ...

转数组倒没必要, 可以用objcopy转成.o然后链接进来, 或者建个汇编然后.incbin包含进来

出615入1076汤圆

发表于 2021-7-22 00:29:46 来自手机 | 显示全部楼层
本帖最后由 dukelec 于 2021-7-22 01:45 编辑

提個小建議,直接用通用的 msgpack 格式,類似 json,不同的是支持二進制數據、對 mcu 比較友好。可以用 dict 字典形式存儲文件,key 是文件名,value 是文件二進制內容。可以用多級 dict 當做目錄。文件名長度也沒限制。

電腦上用目錄存放文件,cat、hexdump 之類的直接在目錄中操作,用電腦自帶的不用自己寫,只要寫一個工具把指定目錄及子目錄打包成 msgpack 單個文件就好了,可以添加 crc 字段,打包過程中生成。mcu 端找一個開源的 msgpack 庫,或者自己寫一個小解析工具。

我寫的 CDEncrypt 開源加密工具等,都是用 msgpack 打包文件。

用 msgpack,除了可以存文件,還可以代替 json 用做 iot 等通訊場合,開銷比 json 小多了。而且 api 接口由 json 改為 msgpack 很方便,甚至可以同時兼容兩者。

出200入0汤圆

发表于 2021-7-22 02:20:29 | 显示全部楼层
原来轮子是底层的意思,我还以为是车轮子呢。

能有人做底层当然好了,支持哦。

出0入362汤圆

 楼主| 发表于 2021-7-22 21:25:06 来自手机 | 显示全部楼层
dukelec 发表于 2021-7-22 00:29
提個小建議,直接用通用的 msgpack 格式,類似 json,不同的是支持二進制數據、對 mcu 比較友好。可以用 di ...

好啊, 你也弄一个呗~

出0入0汤圆

发表于 2021-7-22 22:19:51 | 显示全部楼层
搞轮子就跟搞基础医学一样,伟大

出0入0汤圆

发表于 2021-7-22 22:29:25 | 显示全部楼层
挺支持的,之前也是想法有,苦于每天杂七杂八事太琐碎。很多想法还没实现就磨平了。到时看看能不能贡献点代码。

出0入12汤圆

发表于 2021-7-23 08:20:57 | 显示全部楼层
有没有适合铁电的数据存储查询的东西,大概300条参数读写,还有每天4个数据存储1年可查询可修改。

出0入362汤圆

 楼主| 发表于 2021-7-23 09:21:32 | 显示全部楼层
waterx3 发表于 2021-7-23 08:20
有没有适合铁电的数据存储查询的东西,大概300条参数读写,还有每天4个数据存储1年可查询可修改。 ...

KV存储? 看看flashdb/easyflash? 本站似乎有他的专栏

出0入362汤圆

 楼主| 发表于 2021-7-30 10:57:21 | 显示全部楼层
本帖最后由 tomzbj 于 2021-7-30 11:16 编辑

初步完成基本功能和简单的demo (win32环境, mingw编译)
目前有以下api:

  1. int zr_init(zr_fs_t* fs);
  2. int zr_open(zr_fs_t* fs, const char* path);
  3. int zr_close(zr_fs_t* fs, int fd);
  4. int zr_read(zr_fs_t* fs, int fd, void* buff, zr_u32_t nbytes);
  5. int zr_lseek(zr_fs_t* fs, int fd, zr_u32_t offset);
  6. zr_u32_t zr_tell(zr_fs_t* fs, int fd);
  7. int zr_stat(zr_fs_t* fs, const char* path, zr_finfo_t* finfo);

  8. int zr_opendir(zr_fs_t* fs, zr_dir_t* dir, const char* path);
  9. int zr_readdir(zr_fs_t* fs, zr_dir_t* dir, zr_finfo_t* finfo);
复制代码


用户初始化时提供读函数和起始位置即可.

demo里实现了一个简单的命令行界面, 支持ls, ll, pwd, cd, cat, stat, hexview, crc32, export, help命令。

晚些时候我再移植到stm32+spiflash上试试。

github链接: https://github.com/tomzbj/zromfs
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-23 19:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表