学习笔记ESP32——下载SDIO并且启动consale

一、关闭文件系统,加入SD卡文件

先把文件系统关掉,把CMakeList里和app_main里注释掉

#spiffs_create_partition_image(storage ../spiffs_image FLASH_IN_PROJECT)

把sd卡驱动和配套的cmd驱动放进自己的工程的component里

阿里云盘分享

 上述文件添加过后,在main.c文件里,包含cmd和sd卡的头文件,并初始化

void app_main(void)
{
    init_Sdcard();
    cmd_esp32_init();
}

编译后 

 

出现这个报错是没有添加console配置,没有定义 CONFIG_CONSOLE_MAX_COMMAND_LINE_LENGTH;

二、添加console配置

在idf环境路径下可以找到

C:\Espressif\frameworks\esp-idf-v4.4.4\examples\system\console\basic\main

 把 Kconfig.projbuild 文件放进自己工程的main文件夹里,用来保存cmd的历史命令

 已经更新到工程里了,再次编译下载

 可以运行

三、导入测试代码

static int sys_stack_cmd(int argc, char **argv)//获取任务栈
{
    char *CPU_RunInfo;

    CPU_RunInfo  = malloc(512);
    if( CPU_RunInfo == NULL )
    {
        ESP_LOGE( "SYS", "内存申请失败" );
    }
    memset(CPU_RunInfo,0,512);				//信息缓冲区清零

    cmd_printf("---------------获取系统堆信息----------------\r\n");
    cmd_printf("current size of free heap memory: %u\n", esp_get_free_heap_size());
    cmd_printf("min heap size                   : %u\n", heap_caps_get_minimum_free_size(MALLOC_CAP_DEFAULT));

    vTaskList((char *)CPU_RunInfo);  //获取任务运行时间信息
    // cmd_printf("---------------------------------------------\r\n");
    // cmd_printf("X:running B:blocked R:ready D:deleted S:suspended\r\n");
    cmd_printf("---------------------------------------------\r\n");
    cmd_printf("任务名      任务状态 优先级   剩余栈 任务序号\r\n");
    cmd_printf("%s", CPU_RunInfo);
    cmd_printf("---------------------------------------------\r\n");
    free( CPU_RunInfo );

    return 0;
}
static int sys_used_cmd(int argc, char **argv)//获取任务使用率
{
    char *CPU_RunInfo;

    CPU_RunInfo  = malloc(512);
    if( CPU_RunInfo == NULL )
    {
        ESP_LOGE( "SYS", "内存申请失败" );
    }
    memset(CPU_RunInfo,0,512);				//信息缓冲区清零

    vTaskGetRunTimeStats((char *)CPU_RunInfo);

    cmd_printf("任务名          运行计数      利用率\r\n");
    cmd_printf("%s", CPU_RunInfo);
    cmd_printf("---------------------------------------------\r\n\n");
    free( CPU_RunInfo );

    return 0;
}
void app_main(void)
{
    init_Sdcard();
    cmd_esp32_init();
    CONSOLE_REGISTER( "sys_stack","获取各任务的栈使用率" ,NULL, sys_stack_cmd);
    CONSOLE_REGISTER( "sys_used" ,"获取各任务的cpu使用率",NULL, sys_used_cmd);
    // esp_vfs_spiffs_conf_t conf = {
    //   .base_path = "/spiffs",
    //   .partition_label = NULL,
    //   .max_files = 5,
    //   .format_if_mount_failed = false
    // };

    // // Use settings defined above to initialize and mount SPIFFS filesystem.
    // // Note: esp_vfs_spiffs_register is an all-in-one convenience function.
    // esp_err_t ret = esp_vfs_spiffs_register(&conf);

    // if (ret != ESP_OK) {
    //     if (ret == ESP_FAIL) {
    //         ESP_LOGE(TAG, "Failed to mount or format filesystem");
    //     } else if (ret == ESP_ERR_NOT_FOUND) {
    //         ESP_LOGE(TAG, "Failed to find SPIFFS partition");
    //     } else {
    //         ESP_LOGE(TAG, "Failed to initialize SPIFFS (%s)", esp_err_to_name(ret));
    //     }
    //     return; 
    // }

    // size_t total = 0, used = 0;
    // ret = esp_spiffs_info(NULL, &total, &used);
    // if (ret != ESP_OK) {
    //     ESP_LOGE(TAG, "Failed to get SPIFFS partition information (%s)", esp_err_to_name(ret));
    // } else {
    //     ESP_LOGI(TAG, "Partition size: total: %d, used: %d", total, used);
    // }

//  xTaskCreate(&lv_task, "lv_task", 1024*8, NULL, 5, NULL);
}

同时,需要配置FreeRTOS,进入menuconfig,勾选上下列配置

 编译下载成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值