little_flash.lua 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. --[[
  2. 本demo是 Air780EHM + spi_flash. 以 Air780EHM核心板为例, 接线如下:
  3. Air780EHM SPI_FLASH
  4. GND(任意) GND
  5. VDD_EXT VCC
  6. GPIO8/SPI0_CS CS,片选
  7. SPI0_SLK CLK,时钟
  8. SPI0_MOSI DI,主机输出,从机输入
  9. SPI0_MISO DO,主机输入,从机输出
  10. ]]
  11. --使用spi0,cs接在gpio8上
  12. local spi_id,pin_cs = 0,8
  13. function little_flash_func()
  14. sys.wait(1000)
  15. log.info("lf", "SPI", spi_id, "CS PIN", pin_cs)
  16. spi_flash = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,0) --以对象的方式初始化spi_flash
  17. log.info("lf", "spi_flash", spi_flash)
  18. little_flash_device = lf.init(spi_flash) --初始化 little_flash
  19. if little_flash_device then
  20. log.info("lf.init ok",little_flash_device)
  21. else
  22. log.info("lf.init Error")
  23. return
  24. end
  25. if lf.mount then
  26. local ret = lf.mount(little_flash_device,"/little_flash") --挂载 little_flash lfs文件系统
  27. log.info("lf.mount", ret)
  28. if ret then
  29. log.info("little_flash", "挂载成功")
  30. log.info("fsstat", fs.fsstat("/little_flash")) --获取lfs文件系统信息
  31. -- 挂载成功后,可以像操作文件一样操作
  32. local f = io.open("/little_flash/test", "w")--以写模式打开文件,并返回文件句柄,io接口含义可参考lua5.3手册https://wiki.luatos.com/_static/lua53doc/contents.html
  33. f:write(os.date())--写入当前时间到文件中
  34. f:close()--关闭文件
  35. log.info("little_flash", io.readFile("/little_flash/test"))--读取文件内容并打印
  36. -- 文件追加
  37. os.remove("/little_flash/test2")
  38. io.writeFile("/little_flash/test2", "LuatOS")
  39. local f = io.open("/little_flash/test2", "a+")
  40. f:write(" - " .. os.date())
  41. f:close()
  42. log.info("little_flash", io.readFile("/little_flash/test2"))
  43. else
  44. log.info("little_flash", "挂载失败")
  45. end
  46. end
  47. end
  48. --创建并且启动一个task
  49. --运行这个task的主函数little_flash_func
  50. sys.taskInit(little_flash_func)