rt-thread studio 开启easyflash(env)

2023-05-16

文章目录

  • 前言
  • 一、启用外部norflash
  • 补充说明


前言

提示:这里可以添加本文要记录的大概内容:

环境:
Art-pi开发板
bsp版本1.2.1
RT-Thread 4.0.3(否则添加不了fal软件包)


步骤

一、启用外部norflash

在这里插入图片描述

开启后编译下载,list_device 看到norflash说明成功。
在这里插入图片描述

开启easyflash
在这里插入图片描述
保存编译后会出现很多问题。studio老问题了,ports文件夹不见了,把ports改成port

在这里插入图片描述
改完右键刷新工程
在这里插入图片描述
这个问题参考
RT-Thread-添加文件夹失败是为什么?RT-Thread问答社区 - RT-Thread
删除ef_sfud_port.c,保留ef_fal_port.c
在这里插入图片描述
编译下载,发现没有初始化
在这里插入图片描述
在main函数里添加easyflash_init()。main.c可以添加#include “easyflash.h”,避免有警告,不加也可以。

在这里插入图片描述
编译下载后会报错。
在这里插入图片描述
el_fal_port.c 修改FAL_EF_PART_NAME的值
//#define FAL_EF_PART_NAME “ef”
#define FAL_EF_PART_NAME “easyflash”
在这里插入图片描述
编译下载,恭喜你,启动成功
在这里插入图片描述
添加启动次数函数

static void BootTimes(void) {
    uint32_t i_boot_times = NULL;
    char *c_old_boot_times, c_new_boot_times[11] = {0};

    /* get the boot count number from Env */
    c_old_boot_times = ef_get_env("boot_times");
    assert_param(c_old_boot_times);
    i_boot_times = atol(c_old_boot_times);
    /* boot count +1 */
    i_boot_times ++;
    rt_kprintf("The system now boot %d times\n\r", i_boot_times);
    /* interger to string */
    rt_sprintf(c_new_boot_times,"%ld", i_boot_times);
    /* set and store the boot count number to Env */
    ef_set_env("boot_times", c_new_boot_times);
    ef_save_env();
}

ef_fal_port.c 可以设置默认的环境变量


补充说明

如果保留ef_sfud_port.c
在这里插入图片描述
编译会报错
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rt-thread studio 开启easyflash(env) 的相关文章

  • 无线传感网WSN

    第一章 绪论 WSN定义 无线传感网络是由大量的静止或移动的传感器以自组织和多跳的方式构成的无线网络 WSN系统组成 传感器节点 汇聚节点和管理节点 WSN的三个基本要素 传感器 感知对象 用户 观测者 WSN特点 1 自组织性 2 以数据
  • Android的消息处理机制(图+源码分析)——Looper,Handler,Message

    百度二面的时候 觉得自己源码分析太差 没有深入 面试官估计觉得我很不爽 恩 来吧 自己结合这篇文章 基本上把android消息机制给弄清楚了 http www androidzz com 2011 09 android looper han
  • java中的锁池和等待池

    在java中 每个对象都有两个池 锁 monitor 池和等待池 wait notifyAll notify 三个方法都是Object类中的方法 锁池 假设线程A已经拥有了某个对象 注意 不是类 的锁 而其它的线程想要调用这个对象的某个sy
  • yield和join方法的使用。

    join方法用线程对象调用 如果在一个线程A中调用另一个线程B的join方法 线程A将会等待线程B执行完毕后再执行 yield可以直接用Thread类调用 yield让出CPU执行权给同等级的线程 如果没有相同级别的线程在等待CPU的执行权
  • C#-Async关键字(异步方法)

    async关键字 异步方法 async关键字是C 特有的 Java没有这玩意 async在C 世界里是上下文关键字 它只有在修饰一个方法的时候才自动被编译器识别为关键字 在代码的其他位置上可以被用作变量名等其他任何用途 async关键字用来
  • 0.net-跨线程使用CSocket

    CSocket断言错误 ASSERT pState gt m hSocketWindow NULL 起因 在套接字处于连接或者发送状态时 试图关闭套接字 于是在这个断言语句处发生中断 原因分析 微软官方解释如下 http support m
  • 多线程问题分析thread

    多线程 进程概述 A 进程 进程指正在运行的程序 确切的来说 当一个程序进入内存运行 即变成一个进程 进程是处于运行过程中的程序 并且具有一定独立功能 简而言之 当前正在运动的程序 一个应用程序在内存中的执行区域 B 线程 线程是进程中的一
  • Java 线程创建方法

    除了继承Thread 实现Runnable Callable三种创建线程方式外的第四种创建方式 实现java util concurrent ThreadFactory接口 实现newThread Runnable r 方法 这种方式应用于
  • JSVC简介之快速入门

    1 JSVC简介 Apache基金会会common 类似于guava 项目下的项目 2 为什么要使用JSVC java应用增加一种启动方式 Java的缺点 只能用main方法启动 应用能使用1024以下端口 为啥tomcat可以指定端口 系
  • VC 如何使程序运行后自己删除自己

    VC 如何使程序运行后自己删除自己 有时候 我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序 很明显如果一个进程通过直接调用DeleteFile 来删除自己是不可能的 必须另想办法 经过本人在网上参考很多资料后实际测试并集众家
  • SuspendThread 造成程序死锁的一个例子

    msdn对SuspendThread 的说明 This function is primarily designed for use by debuggers It is not intended to be used for thread
  • surfaceDestroyed什么时候被调用

    今天看别人的代码 突然有个疑问 surfaceDestroyed这个函数什么时候被调用呢 上网搜了一番 基本都说是surface被销毁的时候 才会调用surfaceDestroyed 问题又来了surface什么时候被销毁呢 大家都知道su
  • python中的GIL详解

    python中的GIL详解 参考Python GIL 锁简述 GIL是什么 首先需要明确的一点是GIL并不是Python的特性 它是在实现Python解析器 CPython 时所引入的一个概念 就好比C 是一套语言 语法 标准 但是可以用不
  • 关于RT-Thread中优先级翻转问题的简记

    最近在学习RT Thread的相关知识 记录一下心得 优先级翻转 是指当一个高优先级线程试图通过信号量机制访问共享资源时 如果该信号量已被低优先级线程持有 而这个低优先级线程在运行过程中可能又被其他一些中等优先级的线程抢占 从而造成高优先级
  • gradle全下载

    http services gradle org distributions
  • android studio从git上克隆项目显示the directory already exists and it is not empty

    英文的意思能看懂 文件夹已存在并且不为空 但是网上百度了一下貌似没有完完整整是这句话的问题 我还纳闷怎么克隆不下来 我是想把项目克隆下来到workspace里面 workspace里面本来就还有其他项目在 原来克隆操作不会帮你生成跟目录 你
  • POSIX线程:API

    一 线程创建与取消 1 线程创建 1 1 线程与进程 相对进程而言 线程是一个更加接近于执行体的概念 它可以与同进程中的其他线程共享数据 但拥有自己的栈空间 拥有独立的执行序列 在串行程序基础上引入线程和进程是为了提高程序的并发度 从而提高
  • 无线传感网必知必会

    一 填空题 传感器网络三大基本要素 传感器 感知对象 用户 观测者 传感器节点的基本功能模块包括 数据采集模块 数据处理和控制模块 通信模块 供电模块 四个 其中 通信模块 能量消耗最大 传感器节点通信模块的工作模式有 发送 接收 空闲 睡
  • env: python\r: 没有这样的文件或目录

    我的Python脚本beak包含以下 shebang usr bin env python 当我运行脚本时 beak I get env python r No such file or directory 我之前从存储库中提取了这个脚本
  • 如何找到运行代码的 conda 环境的名称?

    我正在寻找一种好方法来从正在运行的代码或交互式 python 实例中找出我所在的 conda 环境的名称 用例是我通过 miniconda 安装运行带有 Python 2 和 Python 3 内核的 Jupyter 笔记本 默认环境是Py

随机推荐

  • STM32H743,基于LL库实现adc采样(ADC+DMA+TIM)

    买了一块正点原子的阿波罗H743开发板 xff0c 最近在调试ADC采样 xff0c 由于CubeMx生成的是HAL库格式的代码 xff0c HAL库使用时太占用资源了不喜欢 xff0c 个人比较喜欢LL库 xff0c 这个库和STD库有点
  • 芯片热阻的理解

    基本概念 xff1a Ta xff1a Temperature Ambient 环境温度 Tc xff1a Temperature Case外壳温度 Tj xff1a Temperature Junction节点温度 热阻Rja xff1a
  • HDC1080传感器使用

    HDC1080温湿度传感器的驱动链接 xff08 函数都封装好了 xff0c 稍微改改就能用了 xff09 xff1a https download csdn net download qq 27718231 12656947 没有积分的小
  • 日常所用的耳机接口定义

    耳机插座在我们日常生活中是比较常见的一种电子元件 xff0c 其耳机插座的类型规格也区分有四段式耳机插座 三段式耳机插座等 三段式和四段式耳机的引脚定义如下 xff1a 四段式耳机插座接线的方法 xff0c 其只是比一般三段式的耳机插座增加
  • SX1268 SX1262中文数据手册

    在使用SX1268的时候 xff0c 只有英文数据手册 xff0c 中文手册没有人翻译 xff0c 现提供SX1262的中文手册方便大家在开发SX1268程序时使用 xff0c 这两款芯片使用上几乎一样的 xff0c 只是SX1268支持中
  • 用IO口模拟串口(外部中断+定时器)--附程序附测试结果

    给大家分享一下我用IO口模拟串口的一种方法 xff0c 经测试使用这种方法发送能支持115200波特率 xff0c 接收9600波特率测试没问题 xff0c 接收波特率能否提高受制于用户应用场景是否能允许微妙级别的频繁中断了 xff0c 我
  • gazebo和moveit联合机械臂运动规划仿真(包含realsense视觉点云)

    1 gazebo仿真环境搭建 最终的场景 xff1a 使用的机械臂 xff1a AR3工业六轴机械臂 系统环境 xff1a ubuntu18 43 ros melodic 注 xff1a 机械臂description包在github上下载的
  • 串口接收中断+空闲中断实现多个数据帧接收与处理

    在一些应用场合中 xff0c 要求串口接收的数据不能丢同时又方便帧解析 xff0c 我之前的做法是定义一个二维数组data n m m的大小要大于最大帧长度 xff0c n用来指定帧缓存个数 xff0c 每次接收到一帧数据二维数组下标n加1
  • 使用STM32L4系列SPI字节收发异常原因查找

    使用STM32F1 F4 xff0c L1等系列MCU的SPI时 xff0c 不用hal库自带的收发函数时我们会用下面这种收发函数 xff1a 收发一个字节 uint8 t SPI Rw Byte uint8 t data while HA
  • Qt学习总结之QMessageBox

    QMessageBox主要用来通知用户或者请求用户提问和接收应答一个模态对话框 一 对话框的构成 图标是有标准图标的 xff0c 可以直接调用 我们声明的消息框 xff0c 初始状态都是模态的 阻塞程序 xff0c 这里就不演示了 xff0
  • 嵌入式MCU工程师毕业1年,接下来要学的东西有:

    刚毕业 nbsp 1 nbsp 年多了 接下来感觉有好多东西要学习 一 单片机方面的 比如 COSii和 COSiii 还有FreeRTOS等微型操作系统 除了操作系统之外 还要学习诸如emwin界面设计 还想搞一下Wifi 以太网 蓝牙B
  • RT-THREAD 线程同步与通讯:信号量、互斥量、事件、邮箱、队列、信号

    线程同步包括 xff1a 信号量 互斥量 事件 线程通讯包括 xff1a 邮箱 队列 信号 rt thread源文件说明 xff1a ipc c xff1a 信号量 xff08 sem xff09 互斥信号 xff08 mutex xff0
  • easyflash 教程

    可以看easyflash下的docs文档 xff0c 万一你们手头没有文档呢 这里我就直接黏贴了 API 说明文档 xff1a docs zh api md 通用移植文档 xff1a docs zh port md EasyFlash AP
  • 微秒(us)延时 程序

    微秒级的延时最好用systick 1 来计算 使用方法3 xff08 wait loop index xff09 时间变动会比较大 函数10us100us500us900usus delay111 2101 2501 3901 2us de
  • 发送一个字节数据要花多少时间,串口每秒可以发送多少数据

    以波特率250000为力 1s 250 000 61 4us 不是很严谨的以下图反推 xff0c 一个bit的时间正好就是4usec 波特率的单位应该就是比特每秒bit s bsp不好说明到底是bit 还是 byte 每个字节包含11个bi
  • lwip组播实现和原理-STM32F407

    实现 在lwipopts h中定义LWIP IGMP define LWIP IGMP 1LWIP初始化添加进入组播代码 span class token class name err t span err span class token
  • RTT WK2412 spi-uart

    1 添加软件包 xff0c 打开硬件 2 代码里根据硬件配置spi span class token macro property span class token directive hash span span class token
  • gazebo导入sdf模型

    模型文件 模型文件结构 xff1a simple car model config model sdf model config span class token operator lt span span class token oper
  • MOS管的<控制电路>与<防反接电路>

    为了方便记忆 xff0c 我不管D与S xff0c 只说MOS管中的二极管方向 另外G是控制端 这是一篇只管结果的文章 xff0c 大家只要记住就行 懂原理vs记结果 懂原理以分析一切现象 xff0c 但每次使用都要分析一次 xff1b 记
  • rt-thread studio 开启easyflash(env)

    文章目录 前言一 启用外部norflash补充说明 前言 提示 xff1a 这里可以添加本文要记录的大概内容 xff1a 环境 xff1a Art pi开发板 bsp版本1 2 1 RT Thread 4 0 3 否则添加不了fal软件包