需求:使用Stm32F103片内Flash进行数据存储

硬件平台:Stm32F103C8t6(由于Stm32F103C8t6的Flash标注为64k实际为128K,64KFlash在使用rt-thread+finsh后已经捉襟见肘 。因此在配置将其配置为Stm32F103Cb,将Flash扩至128K)

项目开发工具:Env+MDK5

代码要求:根据Stm32F103CB芯片信息制作出

一、Env配置

1、修改board目录下的Kconfig,增加下图选项

2、Env配置

3、保存后更新软件包

pkgs --update

4、生成MDK5项目

scons --target=mdk5

二、FAL概念与配置

本人是刚接触RT-Thread的新手,对FAL中涉及到的概念最初毫无了解。通过看资料和实践总结一下个人心得,欢迎拍砖交流。

1、Flash设备

在RT-Thread中串口、Pin等都被定义为设备。正常情况下设备都需要通过驱动程序在RT-Thread操作系统中注册,注册完成后就能查找、调用。片内Flash存储器按理说也应该注册,但实际上它并未在系统设备中注册(至于为什么没有注册,本人尚未搞明白)。

但是在移植过程中,还是有该Flash设备的定义的:

Flash设备对象是: stm32_onchip_flash,它的名称是:onchip_flash,具体参考:FAL的说明

以上这些都是系统配置后自动生成的,不需要修改。

2、Flash设备表
它的意义是指明系统中有哪些Flash设备,类似指明windows操作系统中有多少块硬盘(windows设备管理器里面的硬盘数量)。

将项目目录下的:\packages\fal-v0.5.0\samples\porting\fal_cfg.h 拷贝到:\packages\fal-v0.5.0\src\inc中,修改如下:

上图所示,我的系统中只有一个Flash设备(&stm32_onchip_flash),它就是在drv_flash_f1.c中定义的:stm32_onchip_flash

3、分区表

它的意义就是指定某个系统Flash设备上的存储空间分区情况,类似与电脑指明电脑中每个硬盘的分区情况。

如上图所示:我的系统中有一个分区,它的名字叫“easyflash”(其实也可以叫它“d:”);这个分区位于名字叫“onchip_flash”的Flash设备上;它的起始地址为:120*1024,大小为:8*1024字节。

通过上述信息,FAL的设备及分区信息就配置完成了。

4、运行查看信息:

在程序运行时调用:fal_init();

三、easyflash配置

1、将项目目录下的:\packages\EasyFlash-v4.1.0\ports\ef_fal_port.c 拷贝到:\packages\EasyFlash-v4.1.0\src下,修改如下:

指明:easyflash要使用的Fal的分区名称

2、在程序运行时调用:easyflash_init()

效果:

首次运行easyflash时会显示红色框中的警告信息

到此stm32f103上运行RT-Thread+FAL+easyflash就完成了。

stm32f103 rt-thread fal easyflash移植过程的更多相关文章

  1. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...

  2. OpenCV在ARM-linux上的移植过程遇到的问题3---共享库中嵌套库居然带路径【未解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题3-共享库中嵌套库居然带路径[未解决] 标签(空格分隔): [Linux开发] 移植opencv到tq2440 一.下载open ...

  3. SFUD+FAL+EasyFlash典型场景需求分析,并记一次实操记录

    SFUD+FAL+EasyFlash典型场景需求分析:用整个flash存储数据,上千条数据,读取得时候用easyflash很慢,估计要检索整个flash太慢了. 改进方法:分区检索. 1存数据时,根据 ...

  4. RT Thread 通过ENV来配置SFUD,操作SPI Flash

    本实验基于正点原子stm32f4探索者板子 请移步我的RT Thread论坛帖子. https://www.rt-thread.org/qa/forum.php?mod=viewthread& ...

  5. QT开发环境的建立以及QTE4.6.3、tslib1.4的移植过程

    1.首先是建立Linux开发环境1.1.在windowsXP下安装博创公司提供的虚拟机软件VMware Workstation,版本为VMware-workstation-full-7.0.1-227 ...

  6. STM32 + RT Thread OS 学习笔记[二]

    串口通讯例程 通过上面的练习,对STM32项目开发有了一个直观印象,接下来尝试对串口RS232进行操作. 1.   目标需求: 开机打开串口1,侦听上位机(使用电脑串口测试软件)发送的信息,然后原样输 ...

  7. 【cocos2d-x-3.1.1列2】cocos2d-x3.1.1 安卓移植过程

    Evernote的链接: http://app.yinxiang.com/l/AAXeIjFsjjFAC68i6hUQkiwFFZg3Maz-AkA/ cocos2d-x 3.1.1  win移植到a ...

  8. linux内核移植过程问题总结

    移植内核:2.6.30.4内核根目录下的.config为当前配置内核的且已经配置好的内核配置.make zImage以此为依据配置内核的过程:cd linux-2.6.30.4(进入Linux根目录) ...

  9. STM32 + RT Thread OS 串口通讯

    1.   创建项目 a)   禁用Finsh和console b)   默认情况下,项目文件包含了finsh,它使用COM1来通讯,另外,console输出(rt_kprintf)也使用了COM1.因 ...

  10. FS210开发板上Qt4.7.0移植过程

    作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...

随机推荐

  1. 本地训练,开箱可用,Bert-VITS2 V2.0.2版本本地基于现有数据集训练(原神刻晴)

    按照固有思维方式,深度学习的训练环节应该在云端,毕竟本地硬件条件有限.但事实上,在语音识别和自然语言处理层面,即使相对较少的数据量也可以训练出高性能的模型,对于预算有限的同学们来说,也没必要花冤枉钱上 ...

  2. React 中常用技术

    可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? 1. React 中导出和导入 1.1 ES6 解析 ES6 的模块化的基本规则或特点: 每一 ...

  3. React、Umi、RN 整体理解

    可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? React 1. React 起源和发展(是什么?) React 是用于构建用户界面的 Jav ...

  4. 从源码分析 Redis 异步删除各个参数的具体作用

    以前对异步删除几个参数的作用比较模糊,包括网上的很多资料都是一笔带过,语焉不详. 所以这次从源码(基于 Redis 7.0.5)的角度来深入分析下这几个参数的具体作用: lazyfree-lazy-u ...

  5. windows server 2019 2012 server 2022 无线网卡驱动安装报错,无线网卡驱动不能安装, inf服务安装段落无效

    windows server 2019 无线网络 服务安装段落无效 windows server 2019 无线网卡驱动安装报错,无线网卡驱动不能安装, inf服务安装段落无效 indows serv ...

  6. 【JSOI2008】火星人 (哈希+Splay)

    题目 这种含有修改操作的就难以用后缀数组实现了,求LCP这种区间相等的类型可以想到用hash判断,同时LCP的答案大小符合二分条件可以二分求出,如果只有修改可以用线段树维护,因为还有有插入操作所以想到 ...

  7. 使用 PyTorch FSDP 微调 Llama 2 70B

    引言 通过本文,你将了解如何使用 PyTorch FSDP 及相关最佳实践微调 Llama 2 70B.在此过程中,我们主要会用到 Hugging Face Transformers.Accelera ...

  8. Miller_Rabin 学习笔记

    费马小定理:对于任意一个质数满足:\(a^{p-1}\equiv1\pmod p\) 二次探测:对于任意一个奇质数满足:\(x^2\equiv1\pmod p\) 的解为 \(x=1\) 或 \(x= ...

  9. Redis工具类及Redis序列化

    导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  10. MySQL运维9-Mycat分库分表之枚举分片

    一.枚举分片 通过在配置文件中配置可能的枚举值,指定数据分布到不同数据节点上,这种方式就是枚举分片规则,本规则适用于按照省份,性别,状态拆分数据等业务 二.枚举分片案例 枚举分片需求:现有 tb_en ...