You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
EasyLogger/demo/os/nuttx-spiflash
zohar f39726143e [demo/nuttx_spiflash] 新增nuttx平台的demo,Easyflash支持spi flash 3 years ago
..
apps [demo/nuttx_spiflash] 新增nuttx平台的demo,Easyflash支持spi flash 3 years ago
README.md [demo/nuttx_spiflash] 新增nuttx平台的demo,Easyflash支持spi flash 3 years ago

README.md

Nuttx SPI Flash demo


1、简介

通过 apps/examples/easylogger/elog_main.ctest_elog() 方法来测试日志的输出,默认开启了异步输出模式,用户可以接入终端来控制日志的输出与过滤器的设置。 test_env() 方法来演示环境变量的读取及修改功能每次系统启动并且初始化EasyFlash成功后会调用该方法。

  • 平台环境NuttX-12.0.0NuttX-10.X.X需要修改Makefile里的include的配置方法
  • 硬件环境STM32F103Nuttx的apps层无视硬件平台
  • Flash环境W25QXXNuttx支持的SPI Flash请查阅nuttx/drivers/mtd的配置文件)

2、使用方法

编译和下载完成后在nsh控制台输入elog回车启动脚本并观察输出结果。

ElogNuttxSpiFlashDemo

3、文件说明

源文件(夹) 描述
apps nuttx-apps应用层目录
apps/examples/ nuttx应用层示例代码目录
apps/examples/easylogger/elog_main.c Easylogger和Easyflash的Example Demo代码
apps/system/ nuttx应用层系统库目录
apps/system/easylogger/inc/elog_cfg.h Easylogger配置文件
apps/system/easylogger/port/elog_port.c Easylogger移植参考文件
apps/system/easyflash/inc/ef_cfg.h Easyflash配置文件
apps/system/easyflash/port/ef_port.c Easyflash移植参考文件

4、其他说明

4.1、移植说明

1、把根目录EasyLogger/里的以下这些文件拷贝到指定位置;

cd EasyLogger/
cp easylogger/inc/elog.h demo/os/nuttx-spiflash/apps/system/easylogger/inc
cp easylogger/plugins/flash/elog_flash.* demo/os/nuttx-spiflash/apps/system/easylogger/plugins/flash/
cp -R easylogger/src/ demo/os/nuttx-spiflash/apps/system/easylogger/

2、拷贝apps下所有目录覆盖到nuttx的apps目录下。

3、nuttx目录中清除并更新apps目录结构缓存。

make apps_distclean
make menuconfig

4、make menuconfig选择以下配置打开Easylogger Demo Example

CONFIG_EXAMPLES_EASYLOGGER=y

将自动打开配置

CONFIG_MTD_W25=y

5、添加mtd ioctl的指令ID如果关闭Easyflash功能可以省略

  • 打开nuttx/include/nuttx/mtd/mtd.h文件,并添加:
#define MTDIOC_GETMTDDEV  _MTDIOC(0x000c)

6、暴露w25的mtd设备节点如果关闭Easyflash功能可以省略

  • 打开nuttx/drivers/mtd/w25.c文件
  • 添加变量声明:
static FAR struct mtd_dev_s *mtd_w25;
  • 找到w25_ioctl函数,在switch (cmd)里面添加:
      case MTDIOC_GETMTDDEV:{
          FAR struct mtd_dev_s **mtd =
            (FAR struct mtd_dev_s *)((uintptr_t)arg);
          DEBUGASSERT(*mtd != NULL);
          *mtd = mtd_w25;
          ret = OK;
      }break;
  • 找到w25_initialize函数,在ret = w25_readid(priv)读ID正确返回的括号里添加
mtd_w25=&priv->mtd;

7、编译make -j4下载到板子后在NSH控制台输入elog,即可查看输出结果。